☰ Menü · Idempotency
Idempotency
Ağ bağlantısı isteğin ortasında kopabilir. Her yazma isteği güvenle tekrarlanabilir, böylece misafir tek bir fiş için iki kez cashback almaz.
Fişler ve ziyaretler: external_id
POST /v1/transactions ve POST /v1/visits için external_id zorunludur: fişin veya ziyaretin sizin sisteminizdeki numarası. Her external_id bir işletmede yalnızca bir kez uygulanır. Aynı değeri tekrar gönderirseniz 201 yerine 200 ile kayıtlı sonuç döner ve kartta hiçbir şey değişmez. Bu kural bir günle sınırlı değildir, süresizdir. Kasa çevrimdışı kaldıktan sonra tüm vardiyayı yeniden göndermek güvenlidir.
Diğer her şey: Idempotency-Key
Diğer yazma isteklerinde (üye kaydı, ödül verme, ürün oluşturma) benzersiz bir değerle Idempotency-Key başlığı gönderin, örneğin ilk denemeden önce ürettiğiniz bir UUID. Yanıtı 24 saat saklarız. Aynı anahtar ve aynı gövdeyle yapılan tekrar, bu yanıtı Idempotent-Replayed: true başlığıyla döndürür. Aynı anahtar farklı bir gövdeyle gelirse 409 idempotency_key_reused ile reddedilir.
curl https://loyaltyfy.io/api/v1/members \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 3f6d1c0a-9b0e-4d2b-8e57-enrol-77" \
-d '{ "phone": "+37366791102", "first_name": "Ion", "consent": true }'
# repeat the same call: same body, same status, plus the header
# Idempotent-Replayed: trueNasıl tekrar denenir
- Ağ hatalarında, zaman aşımlarında ve
429,500,502,503yanıtlarında tekrar deneyin. Diğer4xxyanıtlarında tekrar denemeyin, sonuç değişmez. - Her denemeden önce bekleyin ve bekleme süresini her seferinde artırın, örneğin 1, 2, 4, 8 saniye.
- Aynı işlemin tüm denemelerinde aynı
external_idveyaIdempotency-Keydeğerini kullanın. Yeni bir değer yeni bir işlem demektir.