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.viewer
      • roles/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.

  • 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:

Stringvariable für die JSON-Nutzlast erstellen

  1. Rufen Sie in der Google Cloud Console die Seite Application Integration auf.

    Zu „Application Integration“

  2. Klicken Sie im Navigationsmenü auf Integrationen.
  3. 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.
  4. Klicken Sie im Integrationseditor auf  Erstellen, um das Dialogfeld Variable erstellen zu öffnen.
  5. Gehen Sie im Dialogfeld Variable erstellen so vor:
    1. Geben Sie die folgenden Informationen ein:
      1. Name:Geben Sie einen Namen ein, z. B. jsonPayloadString.
      2. Datentyp:Wählen Sie String aus.
      3. 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.

    2. Klicken Sie auf Erstellen.
    String-Variable für die JSON-Nutzlast erstellen
  6. Weitere Informationen zum Erstellen und Verwenden von Variablen finden Sie unter Variablen.

Stringvariable dem Connector-Eingabe-Body zuordnen

Ordnen Sie im Data Transformer Editor die Variable jsonPayloadString dem Feld connectorInputPayload.Body zu.

  1. Fügen Sie Ihrer Integration eine Data Transformer-Aufgabe hinzu.
  2. Öffnen Sie den Data Transformer-Editor. Sie können entweder den Diagrammmodus oder den Skriptmodus verwenden.
  3. So ordnen Sie die Variable zu:
    • Diagrammmodus:Fügen Sie jsonPayloadString als 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;.

Benutzerdefinierten Content-Type-Header hinzufügen

  1. 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"
      };
              

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.