Menurut skenario di bawah ini,
Katakanlah seseorang membuat permintaan ke server Anda dengan data yang dalam format yang benar, tetapi sama sekali bukan data "baik". Jadi misalnya, bayangkan bahwa seseorang memposting nilai String ke titik akhir API yang mengharapkan nilai String; tetapi, nilai string berisi data yang dimasukkan dalam daftar hitam (mis. mencegah orang menggunakan "kata sandi" sebagai kata sandi mereka). maka kode status bisa berupa 400 atau 422?
Sampai sekarang, saya akan mengembalikan "400 Permintaan Buruk", yang, menurut w3.org, berarti:
Permintaan tidak dapat dipahami oleh server karena sintaksis yang salah. Klien TIDAK HARUS mengulangi permintaan tanpa modifikasi.
Deskripsi ini tidak sesuai dengan keadaan; tetapi, jika Anda melihat daftar kode status HTTP inti yang didefinisikan dalam protokol HTTP / 1.1, itu mungkin pilihan terbaik Anda.
Namun baru-baru ini, seseorang dari tim Dev saya menunjukkan [kepada saya] bahwa API populer mulai menggunakan ekstensi HTTP untuk mendapatkan lebih banyak rincian dengan pelaporan kesalahan mereka. Secara khusus, banyak API, seperti Twitter dan Recurly, menggunakan kode status "422 Entitas yang Tidak Dapat Diproses" sebagaimana didefinisikan dalam ekstensi HTTP untuk WebDAV. Kode status HTTP 422 menyatakan:
Kode status 422 (Entitas yang Tidak Dapat Diproses) berarti server memahami jenis konten entitas permintaan (oleh karena itu kode status 415 (Jenis Media yang Tidak Didukung) tidak pantas), dan sintaks entitas permintaan tersebut benar (sehingga 400 (Permintaan Buruk) ) kode status tidak pantas) tetapi tidak dapat memproses instruksi yang terkandung. Misalnya, kondisi kesalahan ini dapat terjadi jika badan permintaan XML berisi formulasi XML yang baik (yaitu, benar secara sintaksis), tetapi secara semestinya salah.
Kembali ke contoh kata sandi kami dari atas, kode status 422 ini terasa jauh lebih tepat. Server memahami apa yang Anda coba lakukan; dan ia memahami data yang Anda kirim; itu tidak akan membiarkan data diproses.