Skip To Content

Skripterstellung mit der ArcGIS-REST-API

In diesem Thema

ArcGIS for Server wird ausschließlich über Web-Service-Anforderungen an die ArcGIS-REST-API verwaltet. (Auch wenn Sie Ihren Server mit ArcGIS Server Manager verwalten, werden Aufrufe an die REST-API auf dem Back-End durchgeführt.) Um Skripte zu schreiben, die ArcGIS for 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.

Hinweis:

Klicken Sie in der ArcGIS-REST-API-Referenz auf den Überblick über die Webversion.

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:

http://gisserver.domain.com:6080/arcgis/admin/machines/registermachineName=GISSERVER1.DOMAIN.COMadminURL=http://GISSERVER1.DOMAIN.COM:6080/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 Administrator Directory.

Verwenden des Administrator Directory (ArcGIS Server Administrator Directory)

Das ArcGIS Server Administrator Directory ist eine Webanwendung, mit der Sie Verwaltungsskripte für ArcGIS for Server schreiben können. Das Administrator Directory ist in der Regel unter http://gisserver.domain.com:6080/arcgis/admin verfügbar.

Stellen Sie sich das Administrator Directory als Plan zu den ArcGIS-Server-Ressourcen vor, die durch die REST-API bereitgestellt wird. Sie können durch die Links im Administrator Directory 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 Administrator Directory 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 Administrator Directory interaktiv verwenden können, um diese Verwaltungsaufgaben durchzuführen, wird diese Webanwendung am besten als Lernwerkzeug eingesetzt, um sich mit der REST-API vertraut zu machen. Die für die ArcGIS for Server-Administration vorgesehene Webanwendung ist ArcGIS Server Manager.

Abrufen und Verwenden eines Tokens in Skripten

Wenn Sie sich an Manager oder am Administrator Directory anmelden, müssen Sie den Benutzernamen und das Kennwort eines Kontos mit Administrator- oder Publisher-Rechten für ArcGIS for 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 for 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 für ArcGIS for 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 for Server und zum Arbeiten mit einer Antwort finden Sie in den verschiedenen Codebeispielen in dieser Hilfe.