Skip To Content

Script avec ArcGIS REST API

L’administration de ArcGIS Server s’effectue exclusivement par l’intermédiaire de demandes de services web adressées à ArcGIS REST API. (Même lorsque vous utilisez ArcGIS Server Manager pour administrer votre serveur, les appels vers l’API REST sont effectués sur le serveur principal.) Pour rédiger des scripts qui administrent ArcGIS Server, vous devez choisir un langage de script permettant de créer des URL, d’élaborer des requêtes HTTP et d’analyser les réponses HTTP. Les exemples utilisés dans ce système d'aide font appel au langage Python.

Il est important de noter que l'utilisation de l'API REST d'ArcGIS Server ne nécessite aucun logiciel Esri sur la machine à partir de laquelle vous exécutez le script. Vous avez simplement besoin d'un environnement dans lequel il est possible d'effectuer des demandes HTTP vers votre serveur SIG.

En savoir plus sur le répertoire administrateur ArcGIS Server

Prise en main de l'administration du serveur avec l'API REST d'ArcGIS

Pour utiliser ArcGIS REST API, vous devez créer une requête HTTP pour l’opération que vous souhaitez effectuer et inclure les paramètres requis pour cette opération, par exemple, la requête HTTP suivante joint une nouvelle machine à votre site :

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

L’utilisation du répertoire administrateur ArcGIS Server constitue une méthode facile pour vous familiariser avec les opérations d’administration disponibles et leurs paramètres requis.

Utilisation du répertoire d'administrateur

Le répertoire administrateur ArcGIS Server est une application web qui peut vous aider à écrire des scripts d’administration pour ArcGIS Server. Le répertoire d'administrateur est généralement disponible à l'adresse https://gisserver.domain.com:6443/arcgis/admin.

Vous pouvez comparer le répertoire administrateur à une feuille de route vers les ressources ArcGIS Server proposées via l’API REST. Vous pouvez accéder aux liens de ce répertoire pour connaître les URL et paramètres à utiliser dans vos demandes de services Web administratives. Vous pouvez ensuite formuler ces demandes et les envoyer via le protocole HTTP à l'aide du langage de script de votre choix.

Tâchez d'utiliser le répertoire d'administrateur pour effectuer une tâche d'administration. Prenez note des paramètres que vous êtes invité à saisir et examinez l'URL indiquée dans la barre d'adresse du navigateur lorsque vous effectuez la demande auprès du serveur. Les outils de développement Web, tels que Fiddler ou Firebug, peuvent se révéler utiles pour visualiser tout le contenu de la demande et de la réponse. Ces informations s'avèrent extrêmement précieuses lorsque vous tentez de créer vos propres demandes HTTP d'administration à l'aide de Python ou d'un autre langage de script.

Bien que vous puissiez utiliser le répertoire administrateur de manière interactive pour effectuer des tâches administratives, cette application web convient mieux comme outil d’apprentissage de ArcGIS REST API. L’application web destinée à l’administration de ArcGIS Server est ArcGIS Server Manager.

Obtention et utilisation d'un jeton dans des scripts

Lorsque vous vous connectez à Manager ou au répertoire administrateur, vous devez indiquer le nom d’utilisateur et le mot de passe d’un compte qui dispose de privilèges d’administrateur ou d’éditeur sur ArcGIS Server. Le même concept est d'application lors de l'écriture de scripts. Vous êtes invité à soumettre, par programmation, un nom et un mot de passe au serveur. Le serveur renvoie un jeton, c'est-à-dire une chaîne de caractères spéciale qui atteste auprès du serveur que vous avez été authentifié pour effectuer certains types d'actions. Vous devez inclure ce jeton dans toute demande de service Web adressée au serveur.

La durée du jeton est limitée pour éviter qu'il ne soit volé ou utilisé indéfiniment par un utilisateur malintentionné. Vous devez demander un nouveau jeton lors de chaque exécution de votre script (mais pas chaque fois que vous effectuez une demande).

La fonction Python ci-dessous demande un jeton. Le nom de serveur, le numéro de port, le nom d'utilisateur et le mot de passe sont fournis comme arguments.

Demandez un jeton d’administration auprès 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']

Utilisation de demandes et de réponses

Pour effectuer une demande de service web ArcGIS Server, vous devez formuler l’URL pour l’action à réaliser, ainsi que les paramètres requis qui lui sont associés. L’un des paramètres requis sur un serveur sécurisé est un jeton semblable à celui généré ci-dessus.

Toutes les tâches administratives génèrent une réponse de service Web, laquelle fait généralement l'objet d'une demande au format JSON (JavaScript Object Notation). Les langages de script tels que Python contiennent des bibliothèques capables d'analyser, ou de lire, une réponse JSON. Dans certains cas, vous souhaitez simplement obtenir le code d'état HTTP afin de déterminer si votre demande a abouti (le code 200, par exemple, signifie une réussite). Parfois, il se peut que la réponse comporte des données, telles que des messages de consignation, que vous souhaitez soumettre à une analyse plus approfondie.

Reportez-vous aux différents exemples de code de ce manuel pour bien comprendre comment envoyer, par programmation, une demande à ArcGIS Server et traiter une réponse.