Konuyu Açan
#1
Bir alışveriş ajanının ödeme isteği gönderdiğini düşünün: bağlantı kopuyor, yanıt gelmiyor ve ajan “acaba işlem oldu mu?” diye aynı isteği tekrar yolluyor. Kullanıcı açısından küçük bir belirsizlik, geliştirici açısından ise mükerrer sipariş veya ödeme riski.
Bence otonom ajanlar API’leri daha yoğun ve daha az öngörülebilir kullanmaya başladıkça, tekrar deneme davranışını API sözleşmesinin önemli bir parçası olarak ele almamız gerekecek. Idempotency anahtarları bu sorunun bir bölümünü çözüyor; fakat her geliştirici bunları farklı uyguluyorsa, entegrasyon tarafında hâlâ sürpriz çıkabiliyor. Anahtarın ne kadar süre geçerli olduğu ve aynı anahtarla farklı içerik gönderilirse ne olacağı da açıkça belirtilmeli.
Bir diğer nokta hata yanıtları. “Tekrar deneyin” demek yetmez; istemciye bunun güvenli olup olmadığını ve ne zaman yeniden denemesi gerektiğini anlatmak lazım. Webhook’larda da imzalama kadar, yinelenen bildirimlerin nasıl ele alınacağı önemli.
Sizce API’lerde idempotency ve yeniden deneme kuralları ortak bir standartla mı tanımlanmalı, yoksa her servis kendi yaklaşımını mı belirlemeli?
Bence otonom ajanlar API’leri daha yoğun ve daha az öngörülebilir kullanmaya başladıkça, tekrar deneme davranışını API sözleşmesinin önemli bir parçası olarak ele almamız gerekecek. Idempotency anahtarları bu sorunun bir bölümünü çözüyor; fakat her geliştirici bunları farklı uyguluyorsa, entegrasyon tarafında hâlâ sürpriz çıkabiliyor. Anahtarın ne kadar süre geçerli olduğu ve aynı anahtarla farklı içerik gönderilirse ne olacağı da açıkça belirtilmeli.
Bir diğer nokta hata yanıtları. “Tekrar deneyin” demek yetmez; istemciye bunun güvenli olup olmadığını ve ne zaman yeniden denemesi gerektiğini anlatmak lazım. Webhook’larda da imzalama kadar, yinelenen bildirimlerin nasıl ele alınacağı önemli.
Sizce API’lerde idempotency ve yeniden deneme kuralları ortak bir standartla mı tanımlanmalı, yoksa her servis kendi yaklaşımını mı belirlemeli?