Idempotency
Bir yazma işleminde oluşan ağ hatası, işlemin gerçekleşip gerçekleşmediğini bilmeden sizi ortada bırakır. Birçok
kaydı aynı anda değiştiren route’lar bir Idempotency-Key ister; böylece bir yeniden deneme değişikliği iki kez
uygulayamaz.
Hangi route’lar bunu gerektirir
Bölüm başlığı “Hangi route’lar bunu gerektirir”| Route | Zorunlu |
|---|---|
POST /apps/catalog/products/bulk |
evet |
POST /apps/media/imports |
evet |
| diğer uygulama route’ları | hayır — header yok sayılır |
Zorunlu bir anahtarın eksik veya boş olması → 400. 255 karakterden uzun olması → 400.
Bir anahtar nasıl eşleştirilir
Bölüm başlığı “Bir anahtar nasıl eşleştirilir”Anahtarlar kurulumunuza özeldir — başka bir uygulama asla sizinkiyle çakışamaz. Bir istek, anahtarı ve
METHOD + path + raw body bytes üzerinden hesaplanan bir parmak iziyle tanımlanır. Query string parmak izine
dahil değildir ve gövde bayt bayt karşılaştırılır: aynı nesneyi farklı anahtar sırası veya boşluklarla yeniden
serileştirmek farklı bir istektir.
| Durum | Yanıt |
|---|---|
| Anahtarın ilk kullanımı | İstek normal şekilde çalışır. |
| Aynı anahtar, aynı istek, tamamlanmış | Orijinal durum kodu ve gövde, artı Idempotent-Replay: true. Hiçbir şey yeniden çalışmaz. |
| Aynı anahtar, aynı istek, hâlâ çalışıyor | Retry-After: 1 ile 409. Aynı anahtarla yeniden deneyin. |
| Aynı anahtar, farklı istek | 422. Bir anahtarı yeniden kullandınız — yenisini üretin. |
| Orijinal yanıt 256 KB’tan büyüktü | İşin yapıldığını ve yeniden oynatılamayacağını söyleyen 409. Yeniden denemeyin. |
Orijinal istek 5xx ile başarısız oldu |
Anahtar serbest bırakılır; yeniden deneme isteği tekrar çalıştırır. |
Anahtarlar 24 saat boyunca hatırlanır. Bu süreden sonra aynı anahtar yeni bir istek başlatır.
Anahtar seçimi
Bölüm başlığı “Anahtar seçimi”Anahtarı denemeden değil, ne yaptığınızdan türetin: her mantıksal işlem için tek bir anahtar, o işlemin her
yeniden denemesinde tekrar kullanılır. Referans uygulama zugo:{runId}:{vehicle}:{chunk} kullanır — her
senkronizasyon çalıştırması ve her parça için benzersiz, aynı çalıştırma içindeki yeniden denemelerde sabit.