15

我正在开发客户端和服务器应用程序,遇到了一个有趣的问题。我们正在创建一个 RESTful API 并使用 JSON 响应与客户端通信。执行 DELETE 时,我们返回 200 OK 并返回空白响应。我们的客户得到了 200 OK,但解析 JSON 失败。

我们完全理解失败的解析(没有什么可解析的),但我们有一个更大的问题。发送一个空白响应是有效的 JSON,还是我们应该返回{}或类似的东西?谢谢。

4

2 回答 2

16

从关于 DELETE 方法的HTTP/1.1 定义中:

如果响应包含描述状态的实体,则成功的响应应该是 200(OK),如果操作尚未制定,则为 202(已接受),或者如果操作已经制定但响应不包括,则应为 204(无内容)一个实体。

因此,如果您的服务器立即删除该项目,那么建议的响应将是:

  • 200 OK - 返回某种状态码(如布尔值 true,或表示“成功”的字符串)
  • 204 No Content - 不返回任何内容,并让您的客户端注意此响应并且不尝试 JSON 解析,同时仍然知道请求成功
于 2012-08-15T14:52:10.943 回答
7

在这里做一个快速测试:http: //jsonlint.com/显示空白不是有效的 JSON,{}而是有效的 JSON。

于 2012-08-15T14:18:49.520 回答