REST tabanlı bir API ile bir uygulama geliştiriyorum ve her istek için durum kodları belirlediğim bir noktaya geldim.
Doğrulamada başarısız olan veya veritabanıma bir kopya eklemeye çalışan istekler için hangi durum kodunu göndermeliyim?
http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html adresine baktım ama hiçbiri doğru görünmüyor.
Durum kodlarını gönderirken ortak bir uygulama var mı?
Giriş doğrulama hatası için: 400 Bad Request + isteğe bağlı açıklamanız. Bu "RESTful Web Services" kitabında önerilmektedir. Çift gönderim için: 409 Çakışma
Güncelleme Haziran 2014
İlgili spesifikasyon eskiden RFC2616 idi ve 400 (Bad Request) kullanımını oldukça dar bir şekilde şu şekilde veriyordu
İstek, hatalı biçimlendirilmiş sözdizimi nedeniyle sunucu tarafından anlaşılamadı
Bu nedenle, anlamsal hatalar için uygun olmadığı tartışılabilirdi. Ancak artık değil; Haziran 2014'ten bu yana, önceki RFC2616'nın yerini alan ilgili standart RFC 7231, 400 (Bad Request) kullanımını daha geniş bir şekilde şu şekilde vermektedir
sunucu yapamaz veya olarak algılanan bir şey nedeniyle talebi işleme koymayacaktır. bir müşteri hatası
Yanıt başlıklarında ve/veya gövdesinde kesinlikle daha ayrıntılı bir açıklama vermelisiniz (örneğin, özel bir başlık ile - X-Status-Reason: Validation failed
).
Durum kodu 422, "İşlenemez Varlık"]1'i öneririm.
11.2. 422 İşlenemez Varlık
422 (İşlenemeyen Varlık) durum kodu, sunucunun istek varlığının içerik türünü anladığı (dolayısıyla 415 (Desteklenmeyen Medya Türü) durum kodu uygun değildir) ve istek varlığının sözdiziminin doğru olduğu (dolayısıyla 400 (Kötü İstek) durum kodu uygun değildir) ancak içerdiği talimatları işleyemediği anlamına gelir. Örneğin, bir XML istek gövdesi iyi biçimlendirilmiş (yani sözdizimsel olarak doğru) ancak anlamsal olarak hatalı XML talimatları içeriyorsa bu hata durumu oluşabilir.