Grundlagen
Idempotenz
Netzwerke fallen aus. Mit einem Idempotency-Key wiederholst du einen Schreibzugriff nach einem Timeout und kannst sicher sein, dass STRYK ihn nur einmal ausführt.
Wann ein Schlüssel nötig ist
| Operation | Idempotency-Key |
|---|---|
POST /bookings | Pflicht |
POST /bookings/{id}/cancel | Pflicht |
PATCH-Anfragen | optional, empfohlen |
GET, POST /quotes | nicht nötig (ohne Nebenwirkung) |
curl -X POST https://app.staystryk.com/api/partner/v1/bookings \
-H "Authorization: Bearer $STRYK_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: web-checkout-7f3a9c21" \
--data @booking.jsonRegeln
- Ein Schlüssel hat 1 bis 160 Zeichen aus
A-Z a-z 0-9 . _ : -. Eine UUID v4 ist eine gute Wahl. - STRYK speichert Schlüssel, Anfrage und Ergebnis 24 Stunden, je API-Schlüssel.
- Gleicher Schlüssel, gleicher Body: du erhältst das gespeicherte Ergebnis der ersten Anfrage mit demselben Statuscode. Nichts wird doppelt ausgeführt.
- Gleicher Schlüssel, anderer Body:
422 idempotency_key_reused. - Erste Anfrage läuft noch:
409 idempotency_in_progress. Kurz warten und wiederholen. - Fehlender Schlüssel, wo er Pflicht ist:
400 idempotency_key_required.
In der Praxis
- Erzeuge den Schlüssel vor dem ersten Versuch und speicher ihn mit deinem eigenen Datensatz (Checkout, Auftrag, Sync-Job). Ein bei jeder Wiederholung neu erzeugter Schlüssel schützt nichts.
- Ändert sich die Anfrage selbst, der Gast bestätigt einen neuen Preis, , verwende einen neuen Schlüssel.
- Für Stornierungen macht ein aus der Buchungs-ID abgeleiteter Schlüssel (
cancel-<id>) aus Doppelklicks eine einzige Stornierung.