Idempotenz
Wiederholen Sie einen Kauf sicher, ohne doppelt zu kaufen.
Nach einem Netzwerkfehler wissen Sie unter Umständen nicht, ob ein Kauf ausgeführt wurde. Daher erfordert jeder Aufruf von POST /offsets den Header Idempotency-Key. Er enthält einen eindeutigen Wert pro Kauf, zum Beispiel eine UUID.
Idempotency-Key: 7f8d0c6e-2b1a-4e9f-9d3c-5a6b7c8d9e0f
Was bei einer Wiederholung passiert
| Sie senden | Sie erhalten |
|---|---|
| Einen neuen Schlüssel | Einen neuen Kauf (201). |
| Denselben Schlüssel und denselben Body | Erneut den ersten Kauf (201), mit Idempotent-Replayed: true. Es wird nichts doppelt gekauft. |
| Denselben Schlüssel und einen anderen Body | 409 idempotency_key_reused. Verwenden Sie für einen neuen Kauf einen neuen Schlüssel. |
Die Wiederholung liefert den Kauf in seinem aktuellen Zustand. Sein status kann daher bereits von processing zu placed gewechselt sein.
Gut zu wissen
- Schlüssel bestehen aus 1 bis 255 druckbaren ASCII-Zeichen. Wir speichern sie dauerhaft, getrennt nach Modus.
- Die Reihenfolge der Felder im Body und Leerzeichen spielen keine Rolle:
{"kg":1,"reference":"a"}und{ "reference": "a", "kg": 1 }sind dieselbe Anfrage. - Wenn ein Kauf fehlschlägt (zum Beispiel mit
402 insufficient_balanceoder einem Validierungsfehler), wird nichts gespeichert. Nachdem Sie Ihr Guthaben aufgeladen haben, können Sie es mit demselben Schlüssel erneut versuchen. - Auch zwei gleichzeitige Anfragen mit demselben Schlüssel sind sicher: Eine führt den Kauf aus, die andere erhält die Wiederholung.