Ağ bazen bir isteği keser ve isteğin ulaşıp ulaşmadığı belli olmaz. Bir POST isteğini, işi iki kez çalıştırmadan (ve ödemeden) tekrarlamak için Idempotency-Key başlığını gönderin: her mantıksal işlem için benzersiz bir değer. UUID iyi bir seçimdir.
curl -X POST https://developers.grem.capital/api/v1/valuation/express \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 3f1c8a90-1e2b-4c77-9a10-2b6d0f9e4a11" \
-d '{"propertyCategory":"apartment","addressText":"Torstraße 12, Berlin","totalArea":64}'
Nasıl çalışır
- Bir anahtarla yapılan ilk istek normal çalışır; başarılı yanıtı saklanır.
- Aynı anahtarla yapılan bir tekrar saklanan yanıtı döndürür: araç yeniden çalışmaz ve yeniden ücretlendirilmez.
- İlk istek hâlâ sürerken aynı anahtarla gelen ikinci istek
title: idempotency_conflictile409alır. Bekleyin ve aynı anahtarla tekrarlayın. - İlk istek hatayla bittiyse anahtar serbest kalır: tekrar yeniden çalışır. Hizmete hiç ulaşmayan bir istek (bağlantı reddedildi) de anahtarı serbest bırakır.
- Bir aracın, ilan oluşturmanın veya lead oluşturmanın zaman aşımından (
502 provider_error) sonra anahtar 15 dakika ayrılmış kalır; böylece bir tekrar işi ikinci kez çalıştıramaz. Tekrarlamadan önce sonucu kontrol edin: araçlar içinGET /works, oluşturmalar içinGET /objectsveGET /leads. Fotoğraf iyileştirme, site ve taslak sonuçlarıGET /worksiçinde tutulmaz; onları panelde veya ilanlarınız arasında kontrol edin. 15 dakikadan sonraki bir tekrar işi (ve ücretini) yeniden çalıştırır. - İstisna hızlı değerlemedir: zaman aşımından sonra anahtar serbest kalır; aynı anahtarla hemen tekrarlayın, biten değerleme, ücretsiz döner: ne değerleme ne de API çağrısı yeniden ücretlendirilir.
- Bir anahtar 24 saat saklanır ve API anahtarınıza ve işleme, yani yönteme ve gerçek yola aittir: farklı API anahtarlarındaki aynı değerler, başka bir araçta kullanılan aynı anahtar, ayrıca
POST /objects/propertyilePOST /objects/rentalfarklı isteklerdir.
Tekrarın gövdesi ilk istekle karşılaştırılmaz. Daha önce kullanılmış bir anahtarla farklı bir istek gönderirseniz ilk isteğin yanıtını alırsınız. Her yeni işlem için yeni bir anahtar kullanın.
Nerede geçerli
| İstek | |
|---|---|
POST /valuation/express ve tüm araçlar (POST /valuation/report, POST /content/generate, POST /flyer/create vb.) | evet |
POST /objects/{kind}: ilan oluşturma | evet |
POST /leads: lead oluşturma | evet |
POST /match/leads/{id}/events: Swipe Match olayı | evet; anahtar ^[A-Za-z0-9_.:-]{8,128}$ ile eşleşmeli, aksi halde yok sayılır |
POST /uploads, POST /chat/messages, POST /valuation/review/jobs/{id}/confirm | hayır (sohbette bunun için clientMessageId kullanılır) |
SDK içinde anahtar, yöntemin son argümanıdır.
İlgili makaleler
- Hatalar: neyin ne zaman tekrarlanacağı.
- Limitler ve ücretlendirme: neyin ücretlendirildiği.