Yazılım ve performans / DIJION
Yeniden dene düğmesi aynı işlemi iki kez yapmasın
Zaman aşımıyla kesin başarısızlığı ayıran; işlem kimliği, sunucu sözleşmesi ve bekleme politikasını kapsayan mobil API rehberi.
Kullanıcı Kaydet seçer, yanıt gelmez ve tekrar dener. İlk işlem sunucuda tamamlandıysa iki kayıt oluşabilir. Düğmeyi kısa süre kapatmak farklı cihazı veya ağ tekrarını çözmez. Örnek bir görev uygulamasında tekrar davranışını yalnız arayüz önlemi değil, istemci ve sunucunun paylaştığı işlem sözleşmesi olarak değerlendirin.
Yanıt yokluğu sonucu söylemez
Zaman aşımı isteğin uygulanmadığını kanıtlamaz. RFC 9110, idempotent olmayan işlemlerin otomatik tekrarını, güvenli olduğuna dair bilgi veya ilk işlemin uygulanmadığını belirleme koşullarıyla sınırlar. Tasarımda da “Kaydedilemedi” ile “Sonuç doğrulanamadı” ayrılmalıdır. Hangi sonucu bildiğinizi söyleyin; bilinmeyen sonucu kesin hata gibi göstermeyin.
Tekrar güvenliği sunucu desteği ister
Tüm sütunlar için tabloyu yatay kaydırabilirsiniz.
| Durum | Gereken bilgi | Eylem |
|---|---|---|
| Yanıt kayboldu | İşlem kimliğiyle durum | Sonucu sorgula |
| Aynı niyet tekrarlandı | Aynı kapsam ve içerik | Sözleşmeye göre aynı sonucu dön |
| Kullanıcı yeni kayıt istedi | Yeni işlem niyeti | Yeni kimlik oluştur |
Kimliğin kapsamını ve ömrünü belirleyin
Bir işlem anahtarını bütün kaydetmeler için yeniden kullanmak yeni işleri yanlışlıkla bastırabilir. Her denemede yeni anahtar üretmek de aynı niyetin tekrarını ayırt edemez. Hesap, işlem türü, içerik eşleşmesi ve saklama süresini tanımlayın. Sunucu bu sözleşmeyi uygulamıyorsa istemcinin tek başına anahtar göndermesi koruma sağlamaz.
Tekrarları sınırlayın ve durdurulabilir tutun
Anında sonsuz tekrar, yükü ve kullanıcı belirsizliğini artırabilir. Hata türüne uygun bekleme, deneme sınırı ve iptal politikası belirleyin. Kimlik doğrulama hatasıyla geçici servis sorunu aynı yolla düzelmez. Uygulama yeniden açıldığında bekleyen işlemin son durumu okunmalı; görünür ilerlemenin baştan başlaması yeni gönderim anlamına gelmemelidir.
Çift işlem testleri
- Sunucu işlemi bitirsin ama yanıtı istemciye ulaştırmayın.
- Aynı anahtar ve aynı içerikle yeniden deneyin.
- Aynı anahtarla farklı içerik gönderimini sınayın.
- Uygulamayı kapatıp açın; bekleyen işlemi doğru eşleştirin.
Kabul çıktısı tekrar sayısı değil, tek kullanıcı niyetinin kaç kez uygulanabildiğidir. Belirsiz sonuç ve tekrar kimliği açık olduğunda arayüz doğru kurtarma seçeneğini sunabilir.