Idempotenz von Anfang an
Verändernde Aufrufe mit Idempotency-Key absichern, damit eine Wiederholung nach Netzabbruch keinen zweiten Vorgang erzeugt.
3 Minuten LesezeitErste SchritteStand: 25.10.2026
Auf dieser Seite
Bevor Sie loslegen
- Für wen
- Entwicklerinnen und Entwickler, deren Anbindung Ressourcen anlegt oder ändert
- Voraussetzung
- ein Schlüssel
ak_…mit einem schreibenden Recht — im Beispielasset.folder.create(Klasse Medien-Automation) - Ort
- Kommandozeile
Nach dieser Anleitung erzeugt eine Wiederholung nach Netzabbruch keinen zweiten Vorgang mehr: Ihr Client schickt zu jedem verändernden Aufruf einen Idempotency-Key, und die Plattform liefert bei einer Wiederholung die gespeicherte Antwort statt einer neuen Ressource.
Schritte
-
Erzeugen Sie je Vorgang einen Schlüssel von mindestens 8 Zeichen — am besten einen, den Ihr System ohnehin kennt, etwa eine Auftrags- oder Importnummer. Er muss nur innerhalb Ihrer Organisation für diese Methode und diesen Pfad eindeutig sein.
export IDEM="import-2026-09-08-0042" -
Senden Sie den Schlüssel als Kopfzeile
Idempotency-Keymit dem verändernden Aufruf:curl -sSi "$SZENERA_API/v1/folders" \ -H "Authorization: Bearer $SZENERA_API_KEY" \ -H "Idempotency-Key: $IDEM" \ -H "Content-Type: application/json" \ -d '{"name":"Videos"}'{ "id": "fld_01KKEQQF80MAPPE00000000003", "name": "Videos", "kind": "regular", "path": "/Videos", "parentFolderId": null, "depth": 0, "createdAt": "2026-03-11T15:20:00.000Z" }Die Plattform speichert Status, Rumpf und die Kopfzeilen
ETag,LocationundX-Trace-Iddieser ersten Antwort für 24 Stunden. -
Bricht die Verbindung ab, bevor die Antwort bei Ihnen ankommt, wiederholen Sie denselben Aufruf mit demselben Schlüssel und demselben Rumpf. Es entsteht kein zweiter Ordner.
-
Erkennen Sie die Wiederholung an der Kopfzeile
Idempotent-Replay: true: Sie bekamen die gespeicherte Antwort, die Aktion lief nicht erneut.HTTP/1.1 201 Created Idempotent-Replay: true
Regeln, die dabei gelten
- Der Zwischenspeicher ist getrennt je Organisation, Methode und Pfad. Derselbe Schlüssel auf einem anderen Pfad oder mit einer anderen Methode trifft einen anderen Eintrag.
- Kürzer als 8 Zeichen:
422 Validation.Failed. - Derselbe Schlüssel mit einem anderen Rumpf ist keine Wiederholung, sondern ein zweiter Vorgang unter geborgtem Namen:
422 Validation.IdempotencyKeyReused. Weder die alte Antwort noch ein neuer Vorgang kommt zurück. - Auf Routen, die den Schlüssel erzwingen, fehlt er:
409 Validation.IdempotencyKeyRequired. - Nach 24 Stunden ist der Eintrag verfallen; derselbe Schlüssel führt den Vorgang dann erneut aus.
- Für Änderungen an versionierten Ressourcen (Szenen, Playlisten, Programme, Rollen, Displays) kommt
If-Matchmit der gelesenenversionaus dem Rumpf hinzu — der Idempotency-Key schützt vor der doppelten Ausführung,If-Matchvor dem Überschreiben fremder Änderungen. Siehe ETag und If-Match.
Über die Kommandozeile
szenera api post und die übrigen schreibenden Befehle erzeugen ohne Angabe je Aufruf einen frischen Schlüssel. Nur zum Fortsetzen einer abgebrochenen Wiederholung setzen Sie ihn selbst:
szenera api post /v1/folders '{"name":"Videos"}' --idempotency-key="$IDEM"
Ergebnis prüfen
- Der zweite Aufruf liefert denselben Status und denselben Rumpf wie der erste — dieselbe Kennung
fld_…— und zusätzlichIdempotent-Replay: true. - Die Ordnerliste enthält den Ordner genau einmal.
Wenn etwas nicht klappt
| Symptom | Bedeutung | Lösung |
|---|---|---|
| Der zweite Aufruf legt doch eine zweite Ressource an | Anderer Pfad, andere Methode, anderer Schlüssel — oder der Eintrag ist nach 24 Stunden verfallen. | Schlüssel, Pfad und Methode der Wiederholung mit dem ersten Versuch vergleichen; Wiederholungen innerhalb von 24 Stunden abschließen. |
422 Validation.Failed mit „Idempotency-Key too short“ |
Der Schlüssel hat weniger als 8 Zeichen. | Längeren Schlüssel wählen. |
422 Validation.IdempotencyKeyReused |
Derselbe Schlüssel mit einem anderen Rumpf. | Für einen neuen Vorgang einen neuen Schlüssel vergeben. |
409 Validation.IdempotencyKeyRequired |
Die Route verlangt den Schlüssel. | Kopfzeile immer mitsenden. |