Anfragen verketten
Melde dich einmal an, speichere das Token und sende es von jeder Anfrage, die es braucht, mit dynamischen Werten und einem Idempotency-Key.
Die meisten APIs wollen ein Token, das du durch eine Anmeldung bekommst. In diesem Tutorial speicherst du das Token des
Demo-Shops aus der Antwort der Anmeldung in einer Variablen, sendest es über die Auth eines ganzen Ordners, liest einen
Wert aus einer Antwort in die nächste Anfrage und gibst eine Bestellung sicher mit einem Idempotency-Key auf.
- Dauer: 15 Minuten.
- Du brauchst: den Arbeitsbereich aus Dein erster Arbeitsbereich, mit gewählter Umgebung Demo und der Anfrage Auth › Sign in. Alpenglow hat all das schon gebaut; öffne ihn zum Vergleichen.
- Du lernst: Erfassungen aus Antworten, übernommene Auth, dynamische Werte und Antwortwerte.
1. Das Token aus der Antwort der Anmeldung speichern
- Öffne Auth › Sign in und sende sie (⌘R).
- Stelle im Tab Body der Antwort die Ansicht auf JSON-Baum.
- Halte den Zeiger auf die Zeile
access_token. Hinter dem Wert erscheinen kleine Knöpfe. Wähle den, dessen Hilfetext In Variable speichern … lautet. - Im Popover In Variable speichern:
- Ändere den Namen in
token. - Wähle unter dem Geltungsbereich Umgebung „Demo“: Jeder Server hat seine eigenen Tokens.
- Achte darauf, dass Geheim · im Schlüsselbund, nie in Dateien angehakt ist. Echolot hakt es bei Namen wie
tokenvon selbst an. - Lass Bei jedem Senden aktualisieren · mit dieser Anfrage gesichert angehakt.
- Ändere den Namen in
- Wähle Sichern.
Öffne den Tab Vars der Anfrage. Unter Aus der Antwort steht eine Zeile: token, aus JSON, Pfad
$.access_token, gesichert in Demo, geheim. Von nun an schreibt jedes erfolgreiche Senden von Sign in das neue
Token in {{token}}. Eine Antwort mit Status ab 400 oder ohne den Wert lässt die Variable unberührt. Details unter
Erfassungen aus Antworten.

2. Das Token aus einem ganzen Ordner senden
Statt Bearer-Auth an jeder Anfrage zu setzen, setze sie einmal an einem Ordner.
- Lege einen Ordner
Ordersan (⇧⌘N). - Klicke mit der rechten Maustaste auf Orders und wähle Ordnereinstellungen ….
- Setze im Tab Auth den Typ auf Bearer-Token und Token auf
{{token}}. Klicke auf Fertig. - Klicke mit der rechten Maustaste auf Orders, wähle Neue Anfrage und nenne sie
List orders. Setze ihre URL auf{{baseURL}}/orders. - Öffne ihren Tab Auth. Der Typ ist Übernehmen, und die Zeile Nutzt sagt, dass sie das Bearer-Token des Ordners nimmt.
- Sende sie.
Du bekommst Heidis drei Bestellungen: ord_7Hk2Lw (versandt), ord_8Jm4Qx (bezahlt) und ord_5Fd9Ra (geliefert). Jede
neue Anfrage in Orders sendet das Token auf dieselbe Weise. Anfragen beginnen auf Übernehmen, was die Auth des
nächsten Ordners nimmt, dann die des Arbeitsbereichs. Die anderen Typen findest du unter Auth.
Bekommst du später 401 Unauthorized, ist das Token abgelaufen: Es gilt eine Stunde. Sende Sign in erneut, und das
Token wird aktualisiert.
3. Einen Wert aus einer anderen Antwort lesen
Die nächste Anfrage liest die ID der ersten Bestellung aus der Antwort auf List orders, du kopierst sie also nie von Hand.
- Lege in Orders eine Anfrage
Get orderan. - Tippe in ihr URL-Feld
{{baseURL}}/orders/und dann{{$response. Die Liste zeigt die dynamischen Werte in der Gruppe Antworten. Wähle Antwort, mit JSONPath gefiltert. - Setze im Formular, das sich öffnet, Anfrage auf die Anfrage List orders (
orders/list-orders) und JSONPath auf$.items[0].id. Lass Zuerst senden auf Wenn sie noch keine Antwort hat. Klicke auf Fertig.
Die URL enthält jetzt ein Token, das für {{$responseJSONPath('orders/list-orders', '$.items[0].id')}} steht. Halte den
Zeiger darauf, um den Wert zu sehen, den es jetzt hat: ord_7Hk2Lw. Sende Get order, und du bekommst diese
Bestellung mit ihren Positionen und dem Versand. Wäre List orders nie gesendet worden, würde Echolot sie zuerst
senden.
4. Eine Bestellung mit dynamischen Werten aufgeben
Dynamische Werte entstehen bei jedem Senden neu. Nutze zwei davon in einer neuen Bestellung.
-
Lege in Orders eine Anfrage
Create ordermit der Methode POST und der URL{{baseURL}}/ordersan. -
Wähle im Tab Body den Eintrag JSON und tippe den Body. Füge über die
{{-Liste den ISO-8601-Zeitstempel ein:{ "lines": [ { "sku": "TNT-MH-2P", "quantity": 1 }, { "sku": "PCK-TIT-30", "quantity": 2 } ], "note": "Placed from Echolot at {{$isoTimestamp}}" } -
Füge im Tab Header einen Header
Idempotency-Keyhinzu. Tippe als Wert{{und wähle UUID ({{$uuid}}). -
Sende sie.
Die Antwort ist 201 Created mit einem Header Location wie /v1/orders/ord_…, und der Shop schickt deinen
Idempotency-Key zurück. Die Notiz trägt die Zeit des Sendens. Die Demo speichert nichts, die neue Bestellung lässt sich
also danach nicht abrufen. Alle dynamischen Werte stehen in der Referenz.

5. Sehen, was der Idempotency-Key tut
Ein Idempotency-Key sagt dem Server, dass Sendungen mit demselben Schlüssel dieselbe Bestellung sind, sodass erneutes
Senden sie nie zweimal aufgibt.
- Sende Create order erneut. Die ID in
Locationändert sich:{{$uuid}}hat einen neuen Schlüssel erzeugt. - Ersetze im Tab Header
{{$uuid}}durch einen festen Wert wietutorial-order-1. - Sende zweimal. Beide Antworten tragen dieselbe Bestell-ID.
Echte APIs nutzen den Schlüssel, um eine wiederholte Anfrage zu verwerfen, die beim ersten Mal durchkam. Echolot nutzt
ihn auch: Schließt sich eine offen gehaltene Verbindung vor jeder Antwort, sendet es eine Anfrage nur dann auf einer
frischen Verbindung noch einmal, wenn zweimaliges Senden harmlos ist. Das gilt für GET, PUT, DELETE und die
anderen sicheren oder idempotenten Methoden und für jede Anfrage mit einem Idempotency-Key-Header. Ein POST ohne
einen schlägt stattdessen fehl, sodass eine Bestellung nie hinter deinem Rücken zweimal aufgegeben wird. Setze
{{$uuid}} wieder ein, wenn du fertig bist.
Zwei weitere Dinge prüft der Shop:
- Ändere eine Menge auf
0und sende:422 Unprocessable Contentlistet auf, was an jeder Position falsch ist. - Orders with OAuth 2 in Alpenglow holt sein Token per Client-Credentials. Dieses Token darf Bestellungen lesen, aber
nicht aufgeben:
POST /v1/ordersdamit antwortet mit403 Forbidden.
Nächste Schritte
- Eine API testen und in CI ausführen: Füge Prüfungen hinzu und lass die ganze Kette auf einmal laufen.
- Skripte und Tests:
pm.environment.set()und Verwandtes, wenn eine Erfassung nicht reicht. - OAuth 2.0 und die anderen Auth-Typen: Lass Echolot Tokens für dich holen und erneuern.
Dein erster Arbeitsbereich
Lege einen Arbeitsbereich aus dem Nichts an, gegen die Demo-API, mit Anfragen, einem Ordner, einer Umgebung, einem Secret und Git.
Eine API testen und in CI ausführen
Füge Anfragen Prüfungen hinzu, führe sie in der Ausführung aus und lass denselben Arbeitsbereich dann mit dem Befehlszeilentool in GitHub Actions laufen, mit einem JUnit-Bericht.

