İlk SİLME : 200 veya 204.
Sonraki DELETE'ler : 200 veya 204.
Gerekçe : DELETE idempotent olmalıdır. İkinci bir DELETE'de 404 döndürürseniz, yanıtınız bir başarı kodundan bir hata koduna dönüşür . İstemci programı, DELETE işleminin başarısız olduğu varsayımına bağlı olarak hatalı eylemler gerçekleştirebilir.
Örnek :
- SİLME işleminizin, istemci programı tarafından yürütülen çok adımlı bir işlemin (veya bir "destanın") parçası olduğunu varsayalım.
- Müşteri programı, örneğin bir banka işlemi gerçekleştiren bir mobil uygulama olabilir.
- Diyelim ki istemci programı bir DELETE işlemi için otomatik olarak yeniden deneme yapıyor (bu mantıklı, çünkü DELETE'in idempotent olması gerekiyor).
- Diyelim ki ilk DELETE başarıyla yürütüldü, ancak 200 yanıtı istemci programına giderken kayboldu.
- İstemci programı SİLMEYİ yeniden deneyecek.
- İkinci deneme 404 döndürürse, istemci programı bu hata kodu nedeniyle genel işlemi iptal edebilir.
- Ancak ilk DELETE sunucuda başarıyla yürütüldüğünden , sistem tutarsız bir durumda bırakılabilir .
- İkinci deneme 200 veya 204 döndürürse, istemci programı beklendiği gibi devam edecektir.
Sadece bu yaklaşımın kullanımını göstermek için PayPal için HTTP API stil kılavuzu aşağıdaki yönergeye sahiptir:
SİL: Bu yöntem 204 durum kodunu döndürmelidir, çünkü istek bir kaynağı silmek olduğundan ve başarıyla silindiğinden, çoğu durumda herhangi bir içerik döndürmeye gerek yoktur.
DELETE metodunun idempotent olması ZORUNLUDUR, kaynak zaten silinmiş olsa bile yine de 204 döndürmelidir * ÖNERİ *. Genellikle API tüketicisi, kaynağın bu işlemin bir parçası olarak mı yoksa daha önce mi silindiğini umursamaz. 404 yerine 204 döndürülmesinin nedeni de budur.