Tal*_*ita 7 rest http-status-codes http-status-code-422
当我执行 POST 请求以创建新用户时返回的正确 HTTP 状态是什么,但其参数之一不正确 - 我与用户数据一起包含的公司 ID 不存在于数据库中。
POST 数据:{用户名:'newuser',年龄:99,company_id:34 }
数据库中不存在 ID 为 34 的公司。
我在想这是否可能是:
cas*_*lin 11
400 或者 422首先,请记住这是一个客户端错误,因此5xx状态代码不适合这里。然后你应该选择一个4xx状态代码。
请参阅RFC 4918 中的以下引用(对于您的情况,当它说XML时只需阅读JSON):
该
422(处理的实体)状态代码表示的服务器理解的内容类型的请求实体的(因此一个415(不支持的媒体类型)状态代码是不适当的),并且请求实体的语法是正确的(因而400(错误请求)状态代码不合适)但无法处理包含的说明。例如,如果 XML 请求正文包含格式正确(即语法正确)但语义错误的 XML 指令,则可能会出现这种错误情况。
此答案中解决了类似的情况。
例如,如果有效负载的内容包含无效值(但在语法上有效),GitHub API v3也会返回422:
接收请求正文的 API 调用可能存在三种类型的客户端错误:
发送无效的 JSON 将导致
400 Bad Request响应。[...]发送错误类型的 JSON 值将导致
400 Bad Request response. [...]发送无效字段将导致
422 Unprocessable Entity响应。[...]
迈克尔Kropat放在一起组图那是相当有见地,当谈到挑选最合适的状态码。4xx状态代码见下图:
| 归档时间: |
|
| 查看次数: |
5348 次 |
| 最近记录: |