Skip To Content

Utilizar secuencias de comandos 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 back-end). Para escribir secuencias de comandos que administren ArcGIS Server, debe elegir un lenguaje de secuencia de comandos que permita construir las direcciones 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 la secuencia de comandos. Todo lo que necesita es un entorno en el que pueda realizar solicitudes de HTTP a su servidor SIG.

Nota:

Haga clic en Descripción general de la versión web de la referencia de API REST de ArcGIS.

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:

http://gisserver.domain.com:6080/arcgis/admin/machines/registermachineName=GISSERVER1.DOMAIN.COMadminURL=http://GISSERVER1.DOMAIN.COM:6080/arcgis/admin

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

Utilizar el Directorio del administrador

El Directorio del administrador de ArcGIS Server es una aplicación web que puede ayudarle a escribir secuencias de comandos administrativos para ArcGIS Server. Por lo general, el Directorio del administrador está disponible en http://gisserver.domain.com:6080/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 en HTTP utilizando un lenguaje de secuencia de comandos 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 secuencia de comandos.

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. La aplicación Web de ArcGIS Server destinada a la administración es ArcGIS Server Manager.

Obtener y utilizar un token en secuencias de comandos

Cuando inicia sesión en el Administrador o el directorio de Administrador, deberá proporcionar el nombre de usuario y la contraseña de una cuenta que tenga privilegios administrativos o de editor para ArcGIS Server. Se aplica el mismo concepto cuando escriba secuencias de comandos. 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 la secuencia de comandos (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 dirección 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 desea analizar y estudiar más en profundidad.

Consulte los diversos ejemplos de código en este libro de ayuda para comprender cómo puede enviar una solicitud a ArcGIS Server de forma programada y trabajar con una respuesta.