【发布时间】:2012-08-15 14:16:13
【问题描述】:
我正在开发客户端和服务器应用程序,遇到了一个有趣的问题。我们正在创建一个 RESTful API 并使用 JSON 响应与客户端通信。执行 DELETE 时,我们返回 200 OK 并返回空白响应。我们的客户获得了 200 OK,但解析 JSON 失败。
我们完全理解失败的解析(没有什么可解析的),但我们有一个更大的问题。发送一个空白响应是有效的 JSON,还是我们应该返回 {} 或类似的东西?谢谢。
【问题讨论】:
我正在开发客户端和服务器应用程序,遇到了一个有趣的问题。我们正在创建一个 RESTful API 并使用 JSON 响应与客户端通信。执行 DELETE 时,我们返回 200 OK 并返回空白响应。我们的客户获得了 200 OK,但解析 JSON 失败。
我们完全理解失败的解析(没有什么可解析的),但我们有一个更大的问题。发送一个空白响应是有效的 JSON,还是我们应该返回 {} 或类似的东西?谢谢。
【问题讨论】:
来自HTTP/1.1 definition关于DELETE方法:
如果响应包含一个成功的响应应该是 200 (OK) 描述状态的实体,如果操作尚未完成,则为 202(已接受) 已制定,或 204(无内容),如果该行动已制定,但 响应不包含实体。
因此,如果您的服务器立即删除该项目,那么建议的响应将是:
【讨论】:
在这里做一个快速测试:http://jsonlint.com/ 表明空白不是有效的 JSON,而{} 是有效的 JSON。
【讨论】: