JSON-Nutzlasten als Strings im HTTP-Connectors-Task verarbeiten
In dieser Anleitung erfahren Sie, wie Sie JSON-Nutzlasten verarbeiten, wenn Sie in Application Integration die Aufgabe HTTP-Connectors verwenden.
Wenn die Nutzlast falsch behandelt wird, kann es sein, dass APIs sie falsch interpretieren, was zu 400 Bad Request-Fehlern führt. Damit APIs Ihre JSON-Nutzlast korrekt empfangen und parsen können, behandeln Sie die JSON-Nutzlast als String und legen Sie den Content-Type-Header explizit auf application/json fest.
Hinweise
- Prüfen Sie, ob Sie auf Application Integration zugreifen können.
-
Wählen Sie Ihr Google Cloud Projekt aus und führen Sie die folgenden Aufgaben aus:
- Weisen Sie dem Dienstkonto, das Sie zum Erstellen der Verbindung verwenden möchten, die folgenden Rollen zu:
roles/secretmanager.viewerroles/secretmanager.secretAccessor
- Aktivieren Sie die folgenden Dienste:
secretmanager.googleapis.com(Secret Manager API)connectors.googleapis.com(Connectors API)
Wenn Sie diese Dienste für Ihr Projekt nicht aktiviert haben, werden Sie auf der Seite Verbindung erstellen aufgefordert, sie beim Erstellen der Verbindung zu aktivieren.
- Weisen Sie dem Dienstkonto, das Sie zum Erstellen der Verbindung verwenden möchten, die folgenden Rollen zu:
- Fügen Sie eine HTTP Connectors-Aufgabe hinzu und konfigurieren Sie sie.
- Fügen Sie die Data Transformer-Aufgabe hinzu und konfigurieren Sie sie, um die JSON-Nutzlast und die Header vorzubereiten.
JSON-Nutzlasten als Strings verarbeiten
Wenn Sie JSON-Nutzlasten mit Sonderzeichen in einer HTTP-Connectors-Aufgabe verarbeiten möchten, führen Sie die folgenden Schritte aus:
- String-Variable für die JSON-Nutzlast erstellen
- String-Variable dem Eingabetext des Connectors zuordnen
- Benutzerdefinierten Content-Type-Header hinzufügen
- HTTP Connectors-Aufgabe ausführen
Stringvariable für die JSON-Nutzlast erstellen
- Rufen Sie in der Google Cloud Console die Seite Application Integration auf.
- Klicken Sie im Navigationsmenü auf Integrationen.
- Wählen Sie eine vorhandene Integration aus oder erstellen Sie eine neue. Achten Sie darauf, dass Ihre Integration die konfigurierten Aufgaben vom Typ HTTP-Connector und Data Transformer enthält, wie im Abschnitt Vorbereitung beschrieben.
- Klicken Sie im Integrationseditor auf Erstellen, um das Dialogfeld Variable erstellen zu öffnen.
- Gehen Sie im Dialogfeld Variable erstellen so vor:
- Geben Sie die folgenden Informationen ein:
- Name:Geben Sie einen Namen ein, z. B.
jsonPayloadString. - Datentyp:Wählen Sie String aus.
- Standardwert:
- Wenn die JSON-Nutzlast von einer vorherigen Aufgabe im Integrationsablauf, z. B. einer anderen Data Transformer-Aufgabe, ausgefüllt wird, lassen Sie dieses Feld leer. Die Variable wird dynamisch basierend auf der Ausgabe der vorherigen Aufgaben in der Integration ausgefüllt.
- Wenn die JSON-Nutzlast nicht durch eine vorherige Aufgabe ausgefüllt wird, müssen Sie eine statische Standard-JSON-Nutzlast angeben. Geben Sie die JSON-Struktur als einzelnen String in dieses Feld ein.
Hier sind zwei Beispiele dafür, wie Sie JSON-Strings in das Feld Standardwert eingeben:
Ohne Sonderzeichen: Um das JSON-Objekt
{"name": "Developer", "key": "test"}darzustellen, geben Sie genau Folgendes ein:{ "name": "Developer", "key": "test" }.Mit Sonderzeichen: Wenn Ihr JSON Sonderzeichen wie Zeilenumbruch (
\n) enthält, müssen Sie diese maskieren. Wenn Sie beispielsweise das JSON{"key": "value1\nvalue2"}darstellen möchten, geben Sie{"key": "value1\\nvalue2"}in das Feld ein.
- Name:Geben Sie einen Namen ein, z. B.
- Klicken Sie auf Erstellen.
Weitere Informationen zum Erstellen und Verwenden von Variablen finden Sie unter Variablen.
- Geben Sie die folgenden Informationen ein:
Stringvariable dem Connector-Eingabe-Body zuordnen
Ordnen Sie im Data Transformer Editor die Variable jsonPayloadString dem Feld connectorInputPayload.Body zu.
- Fügen Sie Ihrer Integration eine Data Transformer-Aufgabe hinzu.
- Öffnen Sie den Data Transformer-Editor. Sie können entweder den Diagrammmodus oder den Skriptmodus verwenden.
- So ordnen Sie die Variable zu:
- Diagrammmodus:Fügen Sie
jsonPayloadStringals Eingabe hinzu und ordnen Sie sie dem Ausgabefeld connectorInputPayload.Body zu. - Script-Modus:Schreiben Sie Jsonnet-Code, um den Wert zuzuweisen:
connectorInputPayload.Body = vars.jsonPayloadString;.
- Diagrammmodus:Fügen Sie
Benutzerdefinierten Content-Type-Header hinzufügen
- Fügen Sie im Data Transformer-Editor eine Zuordnung für benutzerdefinierte Headern zum Feld connectorInputPayload.Headers hinzu.
- Diagrammmodus:Fügen Sie eine konstante Eingabe mit dem Wert
{"Content-Type": "application/json"}hinzu und ordnen Sie sie connectorInputPayload.Headers zu. - Script-Modus:Fügen Sie das folgende Jsonnet hinzu, um den Header festzulegen:
connectorInputPayload.Headers = { "Content-Type": "application/json" };
- Diagrammmodus:Fügen Sie eine konstante Eingabe mit dem Wert
HTTP Connectors-Aufgabe ausführen
Prüfen Sie vor der Ausführung der Integration, ob connectorInputPayload.Body mit der Variablen jsonPayloadString gefüllt ist und ob connectorInputPayload.Headers den Content-Type: application/json-Header enthält. Bei dieser Einrichtung wird die JSON-Nutzlast von der Aufgabe HTTP-Connectors als String mit dem richtigen Content-Type in der Aufgabe Data Transformer gesendet.
Führen Sie die Integration aus, um die API-Anfrage zu testen. Wenn die API einen 400 Bad Request-Fehler zurückgibt, überprüfen Sie die Zuordnungen für connectorInputPayload.Body und connectorInputPayload.Headers noch einmal in der Aufgabe Data Transformer.
Nächste Schritte
Integrationen mit anderen Connectors erstellen. Eine Liste aller unterstützten Connectors finden Sie in der Connector-Referenz.