Aşağıdaki senaryoya göre,
Diyelim ki birisi sunucunuzdan doğru biçimdeki, ancak "iyi" veri olmayan verilerle bir istekte bulunuyor. Örneğin, birinin bir API uç noktasına bir String değeri bekleyen bir String değeri gönderdiğini düşünün; ancak, dizenin değeri kara listeye alınan verileri içeriyordu (ör. kişilerin şifre olarak "şifre" kullanmasını engelleme). durum kodu 400 veya 422 olabilir?
Şimdiye kadar, w3.org'a göre: "400 Kötü İstek" i geri verirdim:
İstek, hatalı biçimlendirilmiş sözdizimi nedeniyle sunucu tarafından anlaşılamadı. İstemci, değişiklik yapmadan isteği tekrarlamamalıdır.
Bu açıklama duruma tam olarak uymuyor; ancak, HTTP / 1.1 protokolünde tanımlanan temel HTTP durum kodları listesine giderseniz, muhtemelen en iyi seçeneğinizdir.
Ancak son zamanlarda, Dev ekibimden biri [bana] popüler API'lerin hata raporlarında daha ayrıntılı bilgi almak için HTTP uzantılarını kullanmaya başladığını belirtti. Özellikle Twitter ve Recurly gibi birçok API, WebDAV için HTTP uzantısında tanımlandığı gibi "422 İşlenemez Varlık" durum kodunu kullanıyor. HTTP durum kodu 422 şunları belirtir:
422 (İşlenemeyen Varlık) durum kodu, sunucunun istek varlığının içerik türünü anladığı (bu nedenle 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 (Hatalı İstek) anlamına gelir. ) durum kodu uygun değil), ancak içerdiği talimatları işleyemedi. Ö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 koşulu oluşabilir.
Yukarıdaki şifre örneğimize geri dönersek, bu 422 durum kodu çok daha uygun geliyor. Sunucu ne yapmaya çalıştığınızı anlar; ve gönderdiğiniz verileri anlar; verilerin işlenmesine izin vermez.