Mit der HTTP-Ausgabe in ArcGIS Velocity können Sie Features und anderen Text per POST-, PUT- oder DELETE-Anforderungen an einen HTTP-Endpunkt senden. Für jedes an die Ausgabe gesendete Ausgabe-Feature wird eine Anforderung gesendet.
Beispiel
Ein Analyst konfiguriert eine HTTP-Ausgabe, um Features in einem benutzerdefinierten JSON-Format an einen angegebenen Webhook zu senden.
Verwendungshinweise
Beachten Sie beim Arbeiten mit der Ausgabe Folgendes:
- Beim Senden von JSON-Code als Anforderungstext müssen Sie den JSON-Code mit dem Text()-Ausdruck Arcade umschließen, um ein ordnungsgemäßes JSON-Format zu erzielen.
- Bei Verwendung der HTTP-Ausgabe ist es wichtig, die Geschwindigkeit der Daten zu kennen. Jeder an die Ausgabe gesendete Datensatz generiert eine separate Anforderung. Dies kann schnell zu einer Überlastung des Webservers in Bezug auf Kapazität bzw. Datenübertragungsrate führen. Verwenden Sie die HTTP-Ausgabe für Ereignisse, die voraussichtlich nur selten auftreten.
- Bei Verwendung der OAuth-Authentifizierung (Open Authorization) gilt Folgendes:
- Der Ausgabetyp "HTTP" unterstützt die Authentifizierung mit OAuth 2.0 für HTTP-Endpunkte, die mit den Gewährungstypen "Clientanmeldeinformationen" oder "Kennwort" arbeiten. Diese OAuth-Gewährungstypen folgen einem Muster, das die Konfiguration einer HTTP-Anforderung zum Abrufen eines Zugriffstoken und zusätzlichen Konfigurieren einer Anforderung zum Verwenden eines Aktualisierungstoken zum Abrufen neuer Zugriffstoken beinhaltet. Während der Konfiguration der Zugriffstokenanforderung werden Sie zur Angabe der JSON-Schlüsselfelder für Zugriffstoken und optional für Aktualisierungstoken sowie Ablauf aus der Antwort des OAuth-Autorisierungsservers aufgefordert. Wenn ein Ablauf ausgewählt wurde, müssen Sie den Ablauftyp (Dauer oder Zeitstempel) und die Einheiten definieren. Um einen Ablaufzeitstempel zu konfigurieren, der als Zeichenfolge ausgedrückt wird, legen Sie die Ablaufeinheit auf Andere fest, und geben Sie das Datumsformat an, indem Sie eine Formatierungszeichenfolge für das Ablaufdatum hinzufügen. Wenn ein Aktualisierungstoken ohne Ablaufdatum angegeben ist, versucht der Feed eine Aktualisierungstokenanforderung, wenn die Hauptdatenanforderung zweimal hintereinander fehlschlägt.
- Wenn in der Zugriffstokenanforderung ein Aktualisierungstoken gefunden wird, müssen Sie die globale Variable $refreshToken verwenden, um zu definieren, wo das Aktualisierungstoken in der Konfiguration der Aktualisierungstokenanforderung verwendet werden soll. Optional ist die globale Variable $accessToken zur Verwendung in der Aktualisierungstokenanforderung verfügbar. Sowohl die globale Variable $refreshToken als auch die globale Variable $accessToken sind für Verweise in den Parametern POST-Text, URL-Parameter und Benutzerdefinierte Header verfügbar.
- In der Konfiguration der Datenanforderung müssen Sie die globale Variable $accessToken verwenden, um zu definieren, wo das Zugriffstoken verwendet wird. Dies erfolgt häufig in einem benutzerdefinierten Authorization-Header mit dem Wert Bearer $accessToken.
- Zugriffstoken können als JSON Web Token (JWT) gespeichert werden. Wenn Sie ein JWT für das Zugriffstoken verwenden, aktivieren Sie die Option JWT-Format verwenden. Velocity decodiert das Token, und wenn die Payload einen exp-Anspruch enthält, wird dieser Wert automatisch als Ablaufzeit verwendet. exp ist der Ablaufzeitstempel des Zugriffstoken in Epoch-Sekunden.
Anhand der HTTP-Ausgabe können die Werte für die URL oder den benutzerdefinierten Header dynamisch mit Feldwerten gefüllt werden. Auf diese Weise können Benutzer für jeden verarbeiteten Datensatz spezifische Endpunkt-URLs, benutzerdefinierte Header und URL-Parameter erstellen.
Benutzer können Feldwerte in der URL, benutzerdefinierten Headern und URL-Parametern in einem der folgenden Formate referenzieren:
- $feature.fieldName für Standardfeldnamen
- $feature['field name'], wenn das Feld Leerzeichen enthält
Um das Testen und Validieren von Verbindungen zu unterstützen, müssen für jedes referenzierte Feld, das in URL, Benutzerdefinierter Header oder URL-Parameter verwendet wird, Beispielwerte angegeben werden. Diese Werte werden bei der Analysevalidierung und beim Testen der Verbindung zum Zielsystem verwendet. Zur Laufzeit werden die Platzhalter von Velocity durch den entsprechenden Attributwert aus dem aktuellen Datensatz ersetzt.
Angenommen, die Analyse umfasst ein Feld mit dem Namen sensor_id. Sie können die Ausgabe-URL als https://yourAPIURL.com/$feature.sensor_id definieren. Bei einem Datensatz mit sensor_id = 1234 wird die Ausgabe in https://yourAPIURL.com/1234 aufgelöst. Das gleiche Muster kann für benutzerdefinierte Header und URL-Parameter verwendet werden.
- Beim Senden eines Arcade-Ausdrucks, der Attributfelder im Anforderungstext enthält, sind Beispielwerte erforderlich, um den Ausdruck auszuwerten. Verwenden Sie das Dropdown-Menü Beispielwerte, um repräsentative Werte für alle Attributfelder anzugeben, die im Arcade-Ausdruck referenziert werden.
Parameter
Nachfolgend werden die Parameter für die Ausgabe beschrieben:
Parameter | Beschreibung | Datentyp |
---|---|---|
URL | Die URL, über die die Ausgabeanforderungen versendet werden. | String |
HTTP-Methode | Die HTTP-Methode für die Anforderung. Optionen: POST, PUT und DELETE | String |
POST-Textkörper | Der JSON-Arcade-Ausdruck. | Arcade-Ausdruck |
Inhaltstyp | Der Inhaltstyp-Header für ausgehende Anforderungen. Folgende Auswahlmöglichkeiten sind verfügbar:
| String |
Authentifizierungstyp | Sie haben die Wahl zwischen Keine (keine Authentifizierung), Standard oder OAuth. Wenn die Authentifizierungsoption Standard konfiguriert ist, werden zusätzliche Felder zur Eingabe von Benutzername und Kennwort angezeigt. Ist die OAuth-Authentifizierung konfiguriert, wird ein Pop-up-Fenster angezeigt, in dem Sie Folgendes konfigurieren können:
Nach Angabe der obigen Optionen wird die Verbindung getestet. Sie müssen klicken, um das Zugriffstoken (und optional das Aktualisierungstoken sowie den Ablaufwert) in der JSON-Antwort zu identifizieren. Wenn ein Aktualisierungstoken angegeben ist, wird ein zusätzliches Pop-up-Fenster angezeigt, in dem Sie Folgendes konfigurieren können:
Nach Angabe der obigen Optionen wird die Verbindung getestet. Sie müssen klicken, um das Zugriffstoken und das Aktualisierungstoken in der JSON-Antwort zu identifizieren. | Verschiedene Parameter |
URL-Parameter | Optionale URL-Parameter, die in die URL der HTTP-Anforderung, die an die angegebene Website gesendet wird, aufgenommen werden. Parameter können auch oben im Parameter URL festgelegt werden. Die hier als separate Parameter eingegebenen URL-Parameter setzen aber alle entsprechenden Parameter, die im Parameter URL angegeben wurden, außer Kraft. URL-Parameter, die in diesem Parameter definiert werden, sind stets als URL codiert. | Schlüssel/Wert-Paar |
Benutzerdefinierte Header | Optionale benutzerdefinierte Header, die in die HTTP-Anforderung aufgenommen werden können, die an die angegebene Website gesendet wird. Mit benutzerdefinierten Headern kann beispielsweise ein API-Schlüssel oder Autorisierungsheader eines Drittanbieters angegeben werden. | Schlüssel/Wert-Paar |
Zusätzliche Protokollierung | Aktivieren Sie optional die Protokollierung von unverarbeiteten HTTP-Anforderungen und -Antworten, die von Velocity ausgegeben werden. Hinweis:Dieser Parameter sollte nur zur Problembehandlung aktiviert und nach Beendigung der Problembehandlung deaktiviert werden. Starten Sie die Analyse nach der Aktivierung. Die Debug-Protokolle sind dann auf der Seite "Analyseprotokolle" verfügbar. Wenden Sie sich bei Bedarf an den technischen Support von Esri, falls Sie Unterstützung bei der Problembehandlung benötigen. | Boolesch |
Beispielwerte | Ermöglicht es Benutzern, Beispieldaten für jedes Feld zu definieren, das durch $feature.fieldName oder $feature['fieldName'] referenziert wird. Diese Werte sind zum Testen und Validieren der Verbindung erforderlich | Schlüssel/Wert-Paar |
Überlegungen und Beschränkungen
Berücksichtigen Sie bei der Verwendung der Ausgabe Folgendes:
- Beachten Sie bei Verwendung der OAuth-Authentifizierung Folgendes:
- Beim Erstellen einer Ausgabe gibt es mehrere Anforderungen an einen Autorisierungsserver und den zugehörigen Datenendpunkt. Einige APIs implementieren eine Ratenbegrenzung für bestimmte Anforderungen, was sich auf das Erstellen der Ausgabe auswirken kann.
- Aus Sicherheitsgründen muss nach dem Bearbeiten der Authentifizierungsparameter der POST-Text in Zugriffstokenanforderungen neu konfiguriert werden.
- Auf den Webserver muss extern im Internet zugegriffen werden können.