POST isteği zaman aşımına uğrarsa güvenli tekrar nasıl tasarlanır?

0 Yanıt 0 Görüntülenme
Puanlayanlar
Katılımcılar
Konuyu Açan #1
Bir sipariş oluşturma isteği sunucuda başarıyla işlenip yanıtı istemciye ulaşmadan bağlantı koparsa, istemci aynı isteği tekrar gönderdiğinde ikinci bir sipariş oluşabilir. Özellikle ödeme ve sipariş API’lerinde bu belirsizliği çözmek için idempotency anahtarı kullanmak işe yarıyor.

Benim dikkat ettiğim birkaç nokta:

  • Anahtarı her denemede değil, kullanıcının başlattığı işlem başına bir kez üretmek gerekiyor. Ağ hatasında tekrar gönderilen istek aynı anahtarı taşımalı.
  • Sunucu anahtarı işlem sonucu ve istekle ilişkilendirerek saklamalı. Aynı anahtarla gelen tekrar istekte işlemi yeniden yapmak yerine önceki sonucu döndürmeli.
  • Aynı anahtar bu kez farklı bir istek gövdesiyle gelirse sessizce önceki sonucu dönmek yerine çakışmayı belirtmek daha güvenli. Anahtarların ne kadar süre tutulacağı da işin türüne göre belirlenmeli.


Burada kritik ayrıntı, idempotency kaydının iş etkisiyle tutarlı biçimde yazılması. Sipariş kaydı oluşup anahtar kaydı oluşmazsa, tekrar isteği yine mükerrer işlem yaratabilir; bu yüzden veritabanı işlemleri ve benzersiz kısıtlar önemli.

Siz bu yapıyı kendi API’lerinizde nasıl kuruyorsunuz? Anahtarı hangi kapsamda ve ne kadar süre saklamak daha doğru oldu?

Yanıt vermek için giriş yapmış olmalısınız.

0 alıntı seçildi