Idempotency
AstroWay API’nin tüm endpoint’leri doğası gereği idempotent’tir: aynı girdi her zaman aynı çıktıyı verir, yan etkisi yoktur (kredi düşümü ve kullanım kaydı hariç).
Bu, ağ hatalarında retry yapmanın güvenli olduğu anlamına gelir. Ancak tekrarlanan isteğin krediyi iki kez düşmemesi için Idempotency-Key başlığını göndermeniz gerekir.
Nasıl kullanılır
Section titled “Nasıl kullanılır”POST /v1/chart HTTP/1.1X-Api-Key: aw_live_...Idempotency-Key: 01HXY2A7ZM0ABCDEFContent-Type: application/json
{ "datetime": "1990-07-14T14:30:00", ... }Idempotency-Key, en fazla 64 karakterlik, her mantıksal işlem için benzersiz, serbest biçimli bir dizedir. Önerilen: ULID veya UUID v4.
Garantiler
Section titled “Garantiler”- Bu anahtarla yapılan ilk istekten sonraki 24 saat boyunca, aynı anahtarla gelen tekrar istekleri yeniden hesaplama yapılmadan ve kredi düşülmeden aynı yanıtı döndürür.
- İsteğin gövdesi orijinalinden farklıysa
idempotency_key_reusekoduyla409 Conflictdöner. - 24 saat sonra anahtar unutulur; aynı anahtarla gelen yeni bir istek normal bir istek olarak işlenir.
Ne zaman gerekir
Section titled “Ne zaman gerekir”- Retry’ın dış bir sistemden geldiği webhook handler’larında (örneğin bir ödeme sağlayıcısı veya CRM, sizin ayrıştırıp hesaplama yaptığınız bir olay gönderdiğinde)
- Retry’ın hata durumunda standart davranış olduğu arka plan job’larında
- Bir testin yeniden çalışabileceği CI/CD pipeline’larında
“Kullanıcı düğmeye bastı → harita gösterildi” gibi olağan etkileşimlerde idempotency gerekmez: kullanıcı sonucu zaten görür, tekrarlanan tıklamalar genellikle olmaz.
Ne zaman kullanılmamalı
Section titled “Ne zaman kullanılmamalı”- Aynı isteklerde kredi tasarrufu yapmak için anahtar koymayın: bunun için
X-Cachevar (ücretsiz, 5 dakika) - Anahtarı hash(body) ile üretmeyin: bu durumda Idempotency-Key’in varsayılan davranışını kaybedersiniz (gövde farklı olduğunda tekrar eden
409)
Yardımcı oldu mu?
Geribildirim için teşekkürler.