我正在实现一个 API。API 接受/返回 JSON 内容类型。现在,假设某个 POST 请求提交的数据无效,例如缺少属性,或者相同数据存在重复。在这种情况下,标准的 HTML 响应代码是什么?
问问题
337 次
5 回答
2
错误位于客户端,因此您想使用4xx状态码。我会选择400 - Bad Request:
由于语法错误,服务器无法理解该请求。客户端不应该在没有修改的情况下重复请求。
于 2010-10-30T12:44:10.807 回答
1
有两个答案:
如果您已提交表单,只需返回200 - OK
HTML 说明未创建对象的原因。
如果您有 API,则应使用以下内容
200 好
- 当请求正常并返回正确的数据时。
201 已创建
- 调用成功并创建了新对象。
400 错误请求
- 请求 URI 无效
- 无效的 HTTP 标头
- 接收不受支持的非标准参数
- 收到无效的 HTTP 消息正文
401 未经授权
- 授权问题。例如错误的 API 密钥等。
403 禁止
- 适当授权,但不允许。
404 未找到
- 资源不存在(例如在读取或更新时)
405 方法不允许
- 在不允许给定 REST 方法的情况下使用。例如,针对单个资源的 POST,或针对整个资源集合的 DELETE。
409 冲突
- 当更新失败时,发送“冲突”以允许客户端自行解决冲突并重试。
500内部服务器错误
- 内部错误。这是用于所有无法识别的错误的默认代码。
501 未实施
- 用于预期但尚未实现的功能。
于 2010-10-30T13:28:41.910 回答
0
正如 Ariejan 所说,您应该将 API 建立在已经定义的 HTTP 代码中。如果您想发送错误消息,最好的方法不应该使用 HTTP 消息,而是最好将消息包含在响应正文中,JSON 格式。
于 2010-10-30T15:14:10.770 回答
0
422 无法处理的实体(参见RFC 4918,第 11.2 节)
于 2010-10-30T19:46:20.067 回答
0
我能找到的最接近的是400 Bad Request
。
于 2010-10-30T12:43:30.207 回答