2

我正在实现一个 API。API 接受/返回 JSON 内容类型。现在,假设某个 POST 请求提交的数据无效,例如缺少属性,或者相同数据存在重复。在这种情况下,标准的 HTML 响应代码是什么?

4

5 回答 5

2

错误位于客户端,因此您想使用4xx状态码。我会选择400 - Bad Request

由于语法错误,服务器无法理解该请求。客户端不应该在没有修改的情况下重复请求。

于 2010-10-30T12:44:10.807 回答
1

有两个答案:

如果您已提交表单,只需返回200 - OKHTML 说明未创建对象的原因。

如果您有 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 回答