Portal for ArcGIS se puede administrar simplemente mediante solicitudes a la API REST de ArcGIS. Incluso si se utiliza el sitio web de Portal for ArcGIS para administrar el portal, en el interior se realizan llamadas a la API. Para escribir secuencias de comandos que administren Portal for ArcGIS, 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 no requiere ningún software de Esri en el equipo en que se ejecuta la secuencia de comandos. Todo lo que se necesita es un entorno en el que se puedan realizar solicitudes HTTP al portal.
Introducción a la administración del portal 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. Una manera sencilla de familiarizarse con las operaciones administrativas disponibles y los parámetros requeridos es utilizar el ArcGIS Portal Directory.
Utilizar ArcGIS Portal Directory
ArcGIS Portal Directory está disponible a través de dos aplicaciones web y puede ayudarle a comprender cómo escribir secuencias de comandos de administración para su portal. Conceptualmente, ArcGIS Portal Directory es parecido al Directorio del administrador y el Directorio de servicios de ArcGIS Server. Las tareas disponibles varían entre las aplicaciones, tal como se describe en Acerca de ArcGIS Portal Directory. Las URL de las aplicaciones tienen el formato siguiente:
- https://webadaptorhost.domain.com/webadaptorname/portaladmin
- https://webadaptorhost.domain.com/webadaptorname/sharing/rest
Piense en ArcGIS Portal Directory como una lista de recursos de Portal for ArcGIS expuestos a través de la API REST. Puede navegar por los enlaces en ArcGIS Portal Directory para aprender las direcciones URL y los parámetros que se deben utilizar en las solicitudes de servicio web para administración. 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 ArcGIS Portal Directory 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 ArcGIS Portal Directory de forma interactiva para realizar tareas administrativas, se utiliza mejor como herramienta de aprendizaje para ayudarle a familiarizarse con la API REST. La aplicación web destinada a la administración del portal es el sitio web de Portal for ArcGIS.
Obtener y utilizar un token en scripts
Siempre que administre el portal a través de su sitio web o ArcGIS Portal Directory, deberá indicar el nombre de usuario y la contraseña de una cuenta que tenga los privilegios adecuados en el portal. Se aplica el mismo concepto cuando escriba secuencias de comandos.
Sin embargo, a diferencia de lo que ocurre cuando se accede al sitio web del portal o a ArcGIS Portal Directory, donde el navegador gestionará de forma transparente el proceso de autenticación, deberá comprender cómo tiene lugar la autenticación al usar scripts para administrar el portal.
Si el portal está configurado para usar cuentas integradas y autenticación mediante token, podrá usar sus secuencias de comandos con las mismas cuentas administrativas y URL que usaría desde ArcGIS Portal Directory. Si su portal está configurado con inicios de sesión corporativos y autenticación de nivel web, se recomienda hacer que las secuencias de comandos omitan Web Adaptor y usen la cuenta de administrador inicial creada tras la instalación de Portal for ArcGIS.
En cualquier caso, el portal devuelve un token, que es una cadena de caracteres especiales que comunica al portal que el usuario está autenticado para realizar ciertos tipos de acciones. Es necesario incluir este token en todas las solicitudes de servicio web que se realicen en el portal.
La siguiente función de Python solicita un token. La URL del portal, el nombre de usuario y la contraseña se indican como argumentos.
def generateToken(username, password, portalUrl):
'''Retrieves a token to be used with API requests.'''
parameters = urllib.urlencode({'username' : username,
'password' : password,
'client' : 'referer',
'referer': portalUrl,
'expiration': 60,
'f' : 'json'})
response = urllib.urlopen(portalUrl + '/sharing/rest/generateToken?',
parameters).read()
try:
jsonResponse = json.loads(response)
if 'token' in jsonResponse:
return jsonResponse['token']
elif 'error' in jsonResponse:
print jsonResponse['error']['message']
for detail in jsonResponse['error']['details']:
print detail
except ValueError, e:
print 'An unspecified error occurred.'
print e
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. Por lo general, tiene que solicitar un nuevo token cada vez que ejecute la secuencia de comandos (pero no cada vez que haga una solicitud). En algunos casos excepcionales, los tokens pueden caducar antes de que finalice la ejecución de su secuencia de comandos. Si su solicitud incluye un token caducado, la respuesta del servidor incluirá un error indicando que su token ha caducado. Si esto ocurre, actualice su token y continúe la ejecución de su secuencia de comandos.
Trabajar con solicitudes y respuestas
Para hacer una solicitud de servicio, es necesario formular la dirección URL correspondiente a la acción que se desea realizar, así como los parámetros requeridos para esa acción. Uno de los parámetros requeridos en un portal protegido es un token como el que se ha generado antes.
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 pueden 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 se envía programáticamente una solicitud a Portal for ArcGIS y cómo se trabaja con una respuesta.