Übung: API-Endpunkte mit dem Post Agent nutzen
Was du in dieser Übung lernst: Du baust Workflows in 42°OS, die eine echte REST API ansprechen — Daten abrufen, anlegen, ändern und löschen. Du konfigurierst den Post Agent für jede HTTP-Methode und siehst im Run Inspector wie Requests und Responses aussehen.
Die API für diese Übung
Für alle Aufgaben steht eine öffentliche, persistente REST API bereit. Kein API-Key, keine Registrierung — du kannst sofort loslegen.
| Base URL | https://69cde52533a09f831b7c9fa5.mockapi.io/api/v1 |
| Ressource | contacts |
| Endpunkte | GET /contacts, POST /contacts, GET /contacts/:id, PUT /contacts/:id, DELETE /contacts/:id |
Jeder Kontakt hat folgende Felder:
{
"id": "1",
"createdAt": "2026-03-28T14:22:00.000Z",
"name": "Maria Schneider",
"company": "Müller GmbH",
"updatedAt": "2026-03-28T14:22:00.000Z",
"email": "maria.schneider@example.com"
}
Die API ist für alle Teilnehmer gemeinsam sichtbar. Wenn du Kontakte anlegst, änderst oder löschst, sehen das auch andere. Das ist gewollt — es simuliert eine echte, geteilte Datenquelle.
Teil 1: Kontakte abrufen (GET)
Aufgabe 1 — Alle Kontakte abrufen
Lege einen neuen Workflow an, z. B. API-Übung — Kontakte lesen. Baue folgende Struktur:
[ Manual Message Agent ] → [ Post Agent ] → [ Human Task Agent ]
Trigger API-Abruf Ergebnis anzeigen
Post Agent konfigurieren:
{
"post_url": "https://69cde52533a09f831b7c9fa5.mockapi.io/api/v1/contacts",
"method": "get",
"content_type": "json",
"emit_messages": true,
"output_mode": "clean"
}
Starte den Workflow über den Manual Message Agent und prüfe im Run Inspector:
- Welchen
statushat die Antwort? - Wie sieht der
bodyaus — ein einzelnes Objekt oder ein Array? - Welche Felder hat jeder Kontakt?
Aufgabe 2 — Einen einzelnen Kontakt abrufen
Wähle eine id aus der Kontaktliste von Aufgabe 1. Baue einen zweiten Post Agent (oder ändere die URL) für einen gezielten Abruf:
{
"post_url": "https://69cde52533a09f831b7c9fa5.mockapi.io/api/v1/contacts/1",
"method": "get",
"content_type": "json",
"emit_messages": true,
"output_mode": "clean"
}
Vergleiche die Antwort mit Aufgabe 1:
- Was ist der Unterschied zwischen der Antwort von
/contactsund/contacts/1? (Array vs. Objekt) - Was passiert, wenn du eine ID verwendest die nicht existiert, z. B.
/contacts/99999? Welcherstatuskommt im Run Inspector zurück?
Teil 2: Kontakt anlegen (POST)
Aufgabe 3 — Neuen Kontakt mit eigenen Daten anlegen
Lege einen neuen Workflow an, z. B. API-Übung — Kontakt anlegen. Baue folgende Struktur:
[ Web Form Agent ] → [ Post Agent ] → [ Human Task Agent ]
Eingabe: Name, API-Aufruf Ergebnis anzeigen
Firma, E-Mail
Web Form Agent — Richte drei Textfelder ein:
| Bezeichnung | Beschriftung |
|---|---|
name | Name |
company | Firma |
email |
Post Agent konfigurieren:
{
"post_url": "https://69cde52533a09f831b7c9fa5.mockapi.io/api/v1/contacts",
"method": "post",
"content_type": "json",
"payload": {
"name": "{{ name }}",
"company": "{{ company }}",
"email": "{{ email }}"
},
"emit_messages": true,
"output_mode": "clean"
}
Öffne das Formular, gib deine eigenen Daten ein und schicke es ab. Prüfe im Run Inspector:
- Welchen
statusbekommst du? (Erwarte 201 — Created) - Welche Felder hat der neue Kontakt in der Antwort, die du nicht mitgeschickt hast? (z. B.
id,createdAt) - Merke dir die
iddes neuen Kontakts — du brauchst sie in den nächsten Aufgaben.
Die doppelten geschweiften Klammern {{ name }} sind Liquid-Templates. Sie werden beim Ausführen durch die Werte aus der eingehenden Nachricht ersetzt — in diesem Fall die Formular-Eingaben. Das kennst du bereits aus Kurs 1.
Teil 3: Kontakt aktualisieren (PUT)
Aufgabe 4 — Firmennamen ändern
Lege einen neuen Workflow an, z. B. API-Übung — Kontakt ändern. Baue folgende Struktur:
[ Web Form Agent ] → [ Post Agent ] → [ Human Task Agent ]
Eingabe: ID, API-Aufruf Ergebnis anzeigen
neue Firma
Web Form Agent — Richte zwei Textfelder ein:
| Bezeichnung | Beschriftung |
|---|---|
kontakt_id | Kontakt-ID |
neue_firma | Neuer Firmenname |
Post Agent konfigurieren:
{
"post_url": "https://69cde52533a09f831b7c9fa5.mockapi.io/api/v1/contacts/{{ kontakt_id }}",
"method": "put",
"content_type": "json",
"payload": {
"company": "{{ neue_firma }}"
},
"emit_messages": true,
"output_mode": "clean"
}
Gib die id aus Aufgabe 3 und einen neuen Firmennamen ein. Prüfe im Run Inspector:
- Welchen
statusbekommst du? - Hat sich nur die Firma geändert, oder auch andere Felder (z. B.
updatedAt)?
Beachte: Die id wird hier direkt in die URL eingesetzt — {{ kontakt_id }} wird per Liquid durch den eingegebenen Wert ersetzt. So baust du dynamische URLs für Einzelressourcen.
Teil 4: Kontakt löschen (DELETE)
Aufgabe 5 — Deinen Kontakt wieder entfernen
Lege einen neuen Workflow an, z. B. API-Übung — Kontakt löschen. Baue folgende Struktur:
[ Web Form Agent ] → [ Post Agent ] → [ Human Task Agent ]
Eingabe: ID API-Aufruf Ergebnis anzeigen
Post Agent konfigurieren:
{
"post_url": "https://69cde52533a09f831b7c9fa5.mockapi.io/api/v1/contacts/{{ kontakt_id }}",
"method": "delete",
"content_type": "json",
"emit_messages": true,
"output_mode": "clean"
}
Lösche den Kontakt den du in Aufgabe 3 angelegt hast. Prüfe im Run Inspector:
- Welchen
statusbekommst du? - Was passiert, wenn du dieselbe ID ein zweites Mal löschst?
- Geh zurück zum Workflow aus Aufgabe 2 und versuche den gelöschten Kontakt per GET abzurufen. Was kommt zurück?
Teil 5: Einen kompletten CRUD-Workflow bauen
Aufgabe 6 — Alles in einem Workflow
Jetzt kombinierst du das Gelernte. Baue einen Workflow, der alle Schritte hintereinander ausführt:
[ Web Form Agent ] → [ Post Agent (POST) ] → [ Post Agent (GET) ] → [ Human Task Agent ]
Eingabe: Name, Kontakt anlegen Angelegten Kontakt Ergebnis prüfen
Firma, E-Mail per ID abrufen
Die Herausforderung: Der zweite Post Agent (GET) muss die id verwenden, die der erste Post Agent (POST) in seiner Antwort zurückgegeben hat.
Überlege:
- Wie greifst du auf die
idaus der Antwort des ersten Post Agents zu? - Welchen
output_modebrauchst du beim ersten Post Agent, damit die Antwortdaten in der Nachricht verfügbar sind? - Brauchst du einen JSON Parse Agent zwischen den beiden Post Agents?
Tipp anzeigen
Setze beim ersten Post Agent output_mode auf "merge" und aktiviere parse_response_json, damit die Antwort als strukturiertes Objekt in der Nachricht landet. Dann kannst du im zweiten Post Agent auf {{ body.id }} zugreifen — oder, falls nötig, schalte einen JSON Parse Agent dazwischen der den body-String in ein Objekt umwandelt.
Reflexion
Du hast jetzt jeden der fünf grundlegenden API-Endpunkte mit dem Post Agent in 42°OS angesprochen. Halte für dich fest:
| HTTP-Methode | Post Agent method | Was sie tut | Typischer Status-Code |
|---|---|---|---|
| GET (Liste) | get | ||
| GET (einzeln) | get | ||
| POST | post | ||
| PUT | put | ||
| DELETE | delete |
Diese Muster sind bei fast jeder REST API identisch. Wenn du eine neue API anbinden musst, ändern sich URL, Payload und ggf. die Authentifizierung — aber die Grundstruktur des Post Agents bleibt dieselbe.
Weiter: Einheit 15 — Debugging-Strategie