Jika permintaan tidak dapat diuraikan dengan benar (termasuk entitas / badan permintaan) respons yang sesuai adalah 400 Permintaan Buruk [ 1 ].
RFC 4918 menyatakan bahwa 422 Entitas yang tidak dapat diproses berlaku ketika entitas yang diminta terbentuk dengan baik secara sintaksis, tetapi secara semantik keliru. Jadi, jika entitas permintaan kacau (seperti format email yang buruk) gunakan 400; tetapi jika itu tidak masuk akal (seperti @example.com
) gunakan 422.
Jika masalahnya adalah, seperti yang dinyatakan dalam pertanyaan, nama pengguna / email sudah ada, Anda dapat menggunakan 409 Konflik [ 2 ] dengan deskripsi konflik, dan petunjuk tentang cara memperbaikinya (dalam hal ini, "pilih sebuah nama pengguna / email berbeda "). Namun dalam spesifikasi seperti yang tertulis, 403 Forbidden [ 3 ] juga dapat digunakan dalam kasus ini, argumen tentang Otorisasi HTTP.
412 Prekondisi Gagal [ 4 ] digunakan ketika header permintaan prekondisi (mis. If-Match
) Yang disediakan oleh klien dievaluasi menjadi false. Artinya, klien meminta sesuatu dan menyediakan prasyarat, mengetahui sepenuhnya bahwa prasyarat itu mungkin gagal. 412 seharusnya tidak pernah muncul pada klien secara tiba-tiba, dan seharusnya tidak terkait dengan entitas permintaan per se .