私は何度もそれをやった(そして多くの人がそうしているのを見た)が、それが適切かどうか疑問に思う:
if @record.save
# status 200
else
# failure of validations => status 422
end
これは、リクエストが適切な形式であったが、意味的に正しくない422 unprocessable entity
ことを意味することがわかりました。私が理解しているように、検証エラーはセマンティック エラーではない可能性があります。
注:私は一意性の検証について話しているので、この質問のように、これがユーザー エラーと見なされるかどうかはわかりません:検証の失敗に対して REST API サービスによって返される適切な HTTP ステータス コードは何ですか?
要約すると、ステータス 422 の使用を停止する必要がありますか? もしそうなら、代わりに何を使うべきですか?