Skip To Content

Skripterstellung mit der ArcGIS-REST-API

Portal for ArcGIS kann ausschließlich über die ArcGIS-REST-API verwaltet werden. Auch wenn Sie Ihr Portal mit der Portal for ArcGIS-Website verwalten, werden Aufrufe an die API im Back-End durchgeführt. Um Skripte zu schreiben, die Portal for ArcGIS 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. In den Beispielen in diesem Hilfesystem wird Python verwendet.

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

Erste Schritte mit der Portal-Verwaltung 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. Eine einfache Möglichkeit, sich mit den verfügbaren Verwaltungsvorgängen und ihren erforderlichen Parametern vertraut zu machen, ist das Verwenden des ArcGIS-Portalverzeichnis.

Verwenden des ArcGIS-Portalverzeichnis

Das ArcGIS-Portalverzeichnis ist über zwei Webanwendungen verfügbar und kann Ihnen die Vorgehensweise beim Schreiben von Verwaltungsskripten für Ihr Portal vermitteln. Das ArcGIS-Portalverzeichnis ähnelt im Konzept dem ArcGIS Server-Administratorverzeichnis und -Services-Verzeichnis. Die verfügbaren Aufgaben variieren in den einzelnen Anwendungen, wie unter Portal for ArcGIS-Verzeichnis beschrieben. Die URLs zu den Anwendungen sind folgendermaßen formatiert:

  • https://webadaptorhost.domain.com/webadaptorname/portaladmin
  • https://webadaptorhost.domain.com/webadaptorname/sharing/rest

Stellen Sie sich das ArcGIS Portalverzeichnis als eine Liste von Portal for ArcGIS-Ressourcen vor, die durch die REST-API bereitgestellt werden. Sie können durch die Links im ArcGIS-Portalverzeichnis 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 ArcGIS-Portalverzeichnis zum Ausführen einer Verwaltungsaufgabe. 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 ArcGIS-Portalverzeichnis interaktiv verwenden können, um diese Verwaltungsaufgaben durchzuführen, wird es am besten als Lernwerkzeug eingesetzt, um sich mit der REST-API vertraut zu machen. Die zur Portal-Verwaltung vorgesehene Webanwendung ist die Portal for ArcGIS-Website.

Abrufen und Verwenden eines Tokens in Skripten

Wenn Sie das Portal über die Website oder ArcGIS-Portalverzeichnis verwalten, müssen Sie den Benutzernamen und das Kennwort eines Kontos mit den entsprechenden Berechtigungen für das Portal angeben. Das gleiche Konzept gilt auch, wenn Sie Skripte schreiben.

Im Gegensatz zum Zugriff auf die Portal-Website oder auf ArcGIS-Portalverzeichnis, bei dem der Browser den Authentifizierungsprozess transparent behandelt, müssen Sie jedoch wissen, wie die Authentifizierung funktioniert, wenn Sie das Portal mit Skripten verwalten.

Wenn das Portal für die Verwendung integrierter Konten und der Token-Authentifizierung konfiguriert ist, können Sie Ihre Skripte mit den gleichen Administratorkonten und URLs verwenden, die Sie im ArcGIS-Portalverzeichnis verwenden würden. Wenn das Portal mit Enterprise-Anmeldenamen und der Authentifizierung auf Webebene konfiguriert ist, wird empfohlen, dass Web Adaptor von Ihren Skripten umgangen und das initiale Administratorkonto verwendet wird, das nach der Installation von Portal for ArcGIS erstellt wurde.

In beiden Fällen gibt das Portal einen Token zurück, also eine spezielle Zeichenfolge, die dem Portal mitteilt, dass Sie zum Durchführen bestimmter Aktionstypen berechtigt sind. Sie müssen dieses Token allen Web-Service-Anforderungen an das Portal hinzufügen.

Die folgende Python-Funktion erfordert ein Token. Die Portal-URL, der Benutzername und das Kennwort werden als Argumente bereitgestellt.

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

Das Token hat nur eine begrenzte Gültigkeit. Es wurde so entwickelt, dass es abläuft, damit es nicht gestohlen und unbegrenzt von einem bösartigen Benutzer verwendet werden kann. In der Regel müssen Sie jedes Mal, wenn Sie Ihr Skript ausführen, einen neuen Token anfordern (allerdings nicht bei jeder Anforderung). Token können in Ausnahmefällen ablaufen, bevor die Ausführung des Skripts beendet ist. Wenn Ihre Anforderung einen abgelaufenen Token aufweist, enthält die Antwort vom Server einen Fehler, der darauf hinweist, dass der Token abgelaufen ist. Aktualisieren Sie in diesem Fall das Token, und setzen Sie die Ausführung des Skripts fort.

Arbeiten mit Anforderungen und Antworten

Um eine Web-Service-Anforderung zu erstellen, müssen Sie die URL für die gewünschte Aktion sowie die erforderlichen Parameter angeben. In einem sicheren Portal 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 Python verfügen über Bibliotheken, die eine JSON-Antwort parsen 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 Portal for ArcGIS und zum Verwenden der Antwort finden Sie in den verschiedenen Codebeispielen in dieser Hilfe.