假设我们有一个REST API,它接受以下正文以获取创建用户请求:
{
"username": "joe",
"email" : "joe@domain.com"
...
}
现在我有点困惑,不知道何时使用HTTP状态400以及何时使用HTTP状态422.
如果架构错误(例如usernamexx
而不是username
),返回400是否正确?
当架构正确但数据不正确时(例如@dummy
之类的无效电子邮件格式)返回422是否正确?
答案 0 :(得分:1)
我无法对此帖发表评论,所以我正在写一篇简短的回复。
当架构错误时(例如usernamexx而不是username),返回400是否正确?
在这种情况下, 422 响应是正确的,因为语法不正确。这在post进一步描述。
当架构正确但数据不正确时(例如@dummy之类的无效电子邮件格式)返回422是否正确?
如果格式错误/不正确的实体,则应返回 400 。这在上面提到的帖子中进一步描述。您可以通过包含一个主体来进一步解释错误来进一步改进响应消息。