Skip To Content

Skripterstellung mit der ArcGIS REST API

ArcGIS Server wird ausschließlich über Web-Service-Anforderungen an die ArcGIS REST API verwaltet. (Auch wenn Sie den Server mit ArcGIS Server Manager verwalten, werden Aufrufe an die REST API auf dem Back-End durchgeführt.) Um Skripte zu schreiben, die ArcGIS Server verwalten, müssen Sie eine Skripterstellungssprache auswählen, die es Ihnen ermöglicht, URLs zu erstellen, HTTP-Anforderungen auszuführen und HTTP-Antworten zu analysieren. Die Beispiele in diesem Hilfesystem verwenden Python.

Beachten Sie, dass auf dem Computer, über den Sie das Skript ausführen, keine Esri Software installiert sein muss, um die ArcGIS-REST-API verwenden zu können. Sie benötigen nur eine Umgebung, in der Sie HTTP-Anforderungen an Ihren GIS-Server ausführen können.

Weitere Informationen zum ArcGIS-Server-Administratorverzeichnis

Erste Schritte mit der Serververwaltung unter Verwendung der ArcGIS-REST-API

Zum Verwenden der ArcGIS REST API erstellen Sie eine HTTP-Anforderung für den Vorgang, den Sie durchführen möchten, und schließen die erforderlichen Parameter für diesen Vorgang ein. Mit der folgenden HTTP-Anforderung wird beispielsweise ein neuer Computer zu Ihrer Site hinzugefügt:

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

Eine einfache Möglichkeit, sich mit den verfügbaren Verwaltungsvorgängen und ihren erforderlichen Parametern vertraut zu machen, ist das Verwenden des ArcGIS Server-Administratorverzeichnisses.

Verwenden des Administratorverzeichnisses (ArcGIS Server-Administratorverzeichnis)

Das ArcGIS Server-Administratorverzeichnis ist eine Webanwendung, mit der Sie Verwaltungsskripte für ArcGIS Server schreiben können. Das Administratorverzeichnis ist in der Regel unter https://gisserver.domain.com:6443/arcgis/admin verfügbar.

Stellen Sie sich das Administratorverzeichnis als Plan zu den ArcGIS Server-Ressourcen vor, die durch die REST API bereitgestellt wird. Sie können durch die Links im Administratorverzeichnis navigieren, um zu erfahren, welche URLs und Parameter in Ihren administrativen Web-Service-Anforderungen verwendet werden sollen. Sie können diese Anforderungen dann konvertieren und über HTTP mithilfe einer Skriptsprache Ihrer Wahl senden.

Verwenden Sie das Administratorverzeichnis zum Ausführen einer Verwaltungsaufgaben. Beachten Sie die Parameter, die Sie eingeben müssen, und sehen Sie sich die URL in der Adressleiste Ihres Browsers an, während Sie die Anforderung an den Server ausführen. Web-Entwickler-Werkzeuge, wie zum Beispiel Fiddler oder Firebug, können nützlich sein, um die Anforderungen und die Antwort vollständig anzuzeigen. Diese Informationen sind sehr wertvoll, wenn Sie versuchen, Ihre eigenen administrativen HTTP-Anforderungen über Python oder eine andere Skripterstellungssprache zu generieren.

Obwohl Sie das Administratorverzeichnis interaktiv verwenden können, um diese Verwaltungsaufgaben durchzuführen, wird diese Webanwendung am besten als Lernwerkzeug eingesetzt, um sich mit der ArcGIS REST API vertraut zu machen. Die für die ArcGIS Server-Verwaltung vorgesehene Webanwendung ist ArcGIS Server Manager.

Abrufen und Verwenden eines Tokens in Skripten

Wenn Sie sich an Manager oder am Administratorverzeichnis anmelden, müssen Sie den Benutzernamen und das Kennwort eines Kontos mit Administrator- oder Publisher-Rechten für ArcGIS Server angeben. Das gleiche Konzept gilt auch, wenn Sie Skripte schreiben. Sie müssen programmgesteuert einen Namen und ein Kennwort an den Server senden. Der Server gibt ein Token zurück, also eine spezielle Zeichenfolge, die dem Server beweist, dass Sie zum Durchführen bestimmter Aktionstypen berechtigt sind. Sie müssen dieses Token in allen Web-Service-Anforderungen an den Server einschließen.

Das Token hat nur eine begrenzte Gültigkeit. Es wurde so entwickelt, dass es abläuft, damit es nicht gestohlen und unbegrenzt von einem Benutzer mit böswilligen Absichten verwendet werden kann. Jedes Mal, wenn Sie Ihr Skript ausführen, müssen Sie ein neues Token anfordern (allerdings nicht bei jeder Anforderung).

Die folgende Python-Funktion erfordert ein Token. Der Servername, die Portnummer, der Benutzername und das Kennwort werden als Argumente bereitgestellt.

Fordern Sie ein administratives Token von ArcGIS Server an.

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']

Arbeiten mit Anforderungen und Antworten

Um eine Web-Service-Anforderung von ArcGIS Server zu erstellen, müssen Sie die URL für die gewünschte Aktion sowie die erforderlichen Parameter angeben. Auf einem sicheren Server ist einer der erforderlichen Parameter ein Token wie das oben erzeugte.

Alle Verwaltungsaktionen erzeugen eine Web-Service-Antwort, die Sie normalerweise im JSON-Format (JavaScript Object Notation) anfordern. Skripterstellungssprachen, wie zum Beispiel Python, verfügen über Bibliotheken, die eine JSON-Antwort analysieren oder lesen können. Manchmal möchten Sie einfach den HTTP-Statuscode abrufen, um herauszufinden, ob Ihre Anforderung erfolgreich war (der Code 200 bedeutet beispielsweise OK). In anderen Fällen enthält die Antwort möglicherweise Daten, wie zum Beispiel Protokollmeldungen, die Sie weiter analysieren und untersuchen möchten.

Weitere Informationen zum programmgesteuerten Senden einer Anforderung an ArcGIS Server und zum Verwenden der Antwort finden Sie in den verschiedenen Codebeispielen in dieser Hilfe.