Skip To Content

Scripts con la API REST de ArcGIS

ArcGIS Server se administra simplemente mediante solicitudes de servicio web a la API REST de ArcGIS. (Incluso si se utiliza ArcGIS Server Manager para administrar el servidor, las llamadas a la API REST se realizan en el back-end). Para escribir scripts que administren ArcGIS Server, debe elegir un lenguaje de script que permita construir las URL, realizar solicitudes de HTTP y analizar las respuestas de HTTP. Los ejemplos en este sistema de ayuda utilizan Python.

Es importante tener en cuenta que la API REST de ArcGIS no requiere ningún software de Esri en el equipo en que se ejecuta el script. Todo lo que necesita es un entorno en el que pueda realizar solicitudes de HTTP a su servidor SIG.

Más información sobre el Directorio de administrador de ArcGIS Server

Introducción a la administración del servidor usando la API REST de ArcGIS

Para utilizar la API REST de ArcGIS, se crea una solicitud HTTP de la operación que se desea realizar y se incluyen los parámetros requeridos para esa operación. Por ejemplo, la siguiente solicitud HTTP conecta un nuevo equipo a su sitio:

https://gisserver.domain.com:6443/arcgis/admin/machines/registermachineName=GISSERVER1.DOMAIN.COMadminURL=https://GISSERVER1.DOMAIN.COM:6443/arcgis/admin

Una manera sencilla para familiarizarse con las operaciones administrativas disponibles y sus parámetros requeridos es utilizar el Directorio de administrador de ArcGIS Server.

Utilizar el Directorio de administrador

El Directorio de administrador de ArcGIS Server es una aplicación web que puede ayudarle a escribir scripts administrativos para ArcGIS Server. Por lo general, el Directorio de administrador está disponible en https://gisserver.domain.com:6443/arcgis/admin.

Piense en el Directorio de administrador como una hoja de ruta para los recursos de ArcGIS Server expuestos mediante la API REST. Puede navegar por los enlaces en el directorio de Administrador para aprender qué direcciones URL y parámetros utilizar en las solicitudes de servicio Web administrativa. A continuación, puede formular esas solicitudes y enviarlas a través de HTTP utilizando un lenguaje de script de su elección.

Intente utilizar el Directorio del Administrador para realizar una tarea administrativa. Tenga en cuenta los parámetros que se requiere que introduzca y examine la dirección URL en la barra de direcciones del navegador cuando realiza la solicitud al servidor. Las herramientas de desarrollador Web como Fiddler o Firebug pueden ser útiles para ver todo el cuerpo de la solicitud y respuesta. Esta información es extremadamente valiosa cuando se están intentando construir sus propias peticiones a través de peticiones HTTP administrativas a través de Python o de otro lenguaje de script.

Aunque puede utilizar el Directorio de administrador de forma interactiva para realizar tareas administrativas, esta aplicación web se utiliza mejor como una herramienta de aprendizaje para ayudarle a familiarizarse con la API REST de ArcGIS. La aplicación web destinada a la administración de ArcGIS Server es ArcGIS Server Manager.

Obtener y utilizar un token en scripts

Siempre que inicie sesión en Manager o en el Directorio de administrador, deberá proporcionar el nombre de usuario y la contraseña de una cuenta con privilegios administrativos o de publicador en ArcGIS Server. Se aplica el mismo concepto cuando escriba scripts. Se requiere que presente un nombre y una contraseña para el servidor de forma programada. El servidor devuelve un token, que es una cadena de caracteres especiales que demuestra que el servidor han sido autenticado para realizar ciertos tipos de acciones. Debe incluir este token en cualquier solicitud de servicio Web que se realice en el servidor.

El token no dura para siempre; está diseñado para cierto tiempo a fin de que no pueda ser robado o utilizado de forma indefinida por un usuario malicioso. Tiene que solicitar un nuevo token cada vez que ejecute el script (pero no cada vez que hace una solicitud).

La siguiente función de Python solicita un token. Se proporcionan como argumentos el nombre del servidor, número de puerto, el nombre de usuario y la contraseña.

Solicite un token administrativo de ArcGIS Server.

def getToken(username, password, serverName, serverPort):
    # Token URL is typically http://server[:port]/arcgis/admin/generateToken
    tokenURL = "/arcgis/admin/generateToken"
    
    # URL-encode the token parameters:-
    params = urllib.urlencode({'username': username, 'password': password, 'client': 'requestip', 'f': 'json'})
    
    headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
    
    # Connect to URL and post parameters
    httpConn = httplib.HTTPConnection(serverName, serverPort)
    httpConn.request("POST", tokenURL, params, headers)
    
    # Read response
    response = httpConn.getresponse()
    if (response.status != 200):
        httpConn.close()
        print "Error while fetch tokens from admin URL. Please check the URL and try again."
        return
    else:
        data = response.read()
        httpConn.close()
           
        # Extract the token from it
        token = json.loads(data)        
        return token['token']

Trabajar con solicitudes y respuestas

Para hacer una solicitud de servicio web de ArcGIS Server, debe formular la URL para la acción que desea realizar, así como los parámetros requeridos para esa acción. Uno de los parámetros requeridos en un servidor protegido es un token como el que ha generado anteriormente.

Todas las acciones administrativas producen una respuesta de servicio Web que por lo general pide en formato JavaScript Object Notation (JSON). Los lenguajes de secuencia de comandos como Python tienen bibliotecas que puede analizar y leer respuestas JSON. A veces solo desea obtener el código de estado HTTP para averiguar si su solicitud ha tenido éxito (por ejemplo, un código 200 significa Ok). Otras veces, la respuesta puede tener datos, como mensajes de registro, que es preciso analizar y estudiar más en profundidad.

Consulte los diversos ejemplos de código en este libro de ayuda para comprender cómo enviaría mediante programación una solicitud a ArcGIS Server y cómo trabajaría con una respuesta.