JSON als Request-Body

Platzhalter im Request-Body ermöglichen es, dynamische Daten an den definierten Endpunkt zu senden. Dies ist besonders nützlich, wenn Sie Daten, die zur Laufzeit im Workflow verfügbar sind, in den Body eines HTTP-Requests einfügen möchten.

Beispielsweise könnte der Request-Body eines POST- oder PUT-Requests eine Benutzer-ID oder einen Produktschlüssel enthalten, der zur Laufzeit aus einer Variable im Workflow gezogen wird. Durch den Einsatz von Platzhaltern im Body können Sie so auf dynamische Werte zugreifen und sie im API-Aufruf verwenden.

Stellen Sie sicher, dass Sie den Header content-type mit dem Wert application/json definiert haben, wenn Sie JSON im Request-Body verwenden.

Einfache Platzhalter

Ein Beispiel für die Verwendung eines Platzhalters im Request-Body könnte so aussehen:

{
  "name": ${name},
  "age": ${age}
}

Im Workflow wird dem Platzhalter name eine Variable zugewiesen, die den Wert John hat. Der Platzhalter age wird mit einer Variable mit dem Wert 34 ersetzt. Das Ergebnis sieht wie folgt aus:

{
  "name": "John",
  "age": 34
}

Robot weiss anhand des Variablentyps ob Anführungszeichen "" im JSON benötigt werden. Diese können bei der Definition des JSON-Body immer weggelassen werden.

Platzhalter und Collection-Variablen

Für den Request-Body wird folgendes JSON definiert:

{
  "name": ${name},
  "age": ${age},
  "hobbies": ${hobbies}
}

Im Workflow wird dem Platzhalter name eine Variable zugewiesen, die den Wert John hat. Der Platzhalter age wird mit einer Variable mit dem Wert 34 ersetzt. Für den Platzhalter hobbies wird eine Variable vom Typ collection ausgewählt, mit dem Inhalt Football und Reading. Das resultierende JSON sieht folgendermassen aus:

{
  "name": "John",
  "age": 34,
  "hobbies": ["Football", "Reading"]
}

Robot erkennt die Collection-Variable und wandelt diese automatisch in ein JSON-Array um. Jeder Eintrag in der Collection wird zu einem Eintrag im JSON-Array.

Platzhalter für Array von Objekten

Um ein Array von Objekten zu erstellen, muss im JSON ein Prototyp des Objektes erstellt werden. Die Platzhalter werden dann mit dem Inhalt von Collection-Variablen ersetzt. Die Anzahl der erstellten Objekte richtet sich nach der Anzahl an Element in der Collection-Variable.

Für den Request-Body wird folgendes JSON definiert:

{
  "name": ${name},
  "age": ${age},
  "hobbies": ${hobbies},
  "cars": [
    {
      "name": ${names},
      "color": ${colors}
    }
  ]
}

Im Workflow wird dem Platzhalter name eine Variable zugewiesen, die den Wert John hat. Der Platzhalter age wird mit einer Variable mit dem Wert 34 ersetzt.

names wird eine Variable vom Typ collection zugewiesen, die die Werten Car 1, Car 2 and Car 3 beinhaltet.

Dem Platzhalter colors wird ebenfalls eine Variable vom Typ collection zugewiesen. Die Werte sind black und white.

Das resultierende JSON sieht folgendermassen aus:

{
  "name": "John",
  "age": 20,
  "hobbies": ["Football", "Reading"],
  "cars": [
    {
      "name": "Car 1",
      "color": "black"
    },
    {
      "name": "Car 2",
      "color": "white"
    },
    {
      "name": "Car 3",
      "color": null
    }
  ]
}

Dem Array werden drei Objekte hinzugefügt, da die Collection, die dem Platzhalter names zugewiesen wurde, drei Elemente enthält (Car 1, Car 2 und Car 3). Bei der Verwendung mehrerer Collections werden die Elemente mit identischem Index jeweils zu einem gemeinsamen Objekt zusammengeführt.

Haben die Collections eine unterschiedliche Anzahl an Elementen, wird null für alle fehlenden Elemente angenommen. Dies war im Beispiel von oben bei colors der Fall, da diese Collection nur zwei Element enthalten hat.

Werden mehrere Collections verwendet um ein JSON-Objekt zu erzeugen, richtet sich die Anzahl der erzeugten Objekte nach Collection mit den meisten Einträgen.

Bei unterschiedlicher Grösse der Collections werden fehlende Elemente mit null aufgefüllt.

Zuletzt aktualisiert