响应中的有效JSON

Jam*_*nio 15 api rest json http

我正在研究客户端和服务器应用程序,并遇到了一个有趣的问题.我们正在创建一个安静的API并使用JSON响应与客户端进行通信.在执行DELETE时,我们返回200 OK并显示空白响应.我们的客户正在获得200 OK,但未能解析JSON.

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

clo*_*eet 13

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

如果响应包括描述状态的实体,则成功响应应为200(OK),如果操作尚未执行,则应为202(已接受);如果操作已颁布但响应不包括,则应为204(无内容)一个实体.

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

  • 200 OK - 返回某种状态代码(如布尔值true或字符串"成功")
  • 204 No Content - 不返回任何内容,让您的客户注意此响应,而不是尝试JSON解析,同时仍然知道请求成功

  • Re:空白响应是否为"有效JSON" - [json.org](http://json.org/)中的定义表示JSON值可以是"双引号中的字符串,或数字,或者是真或者false或null,或对象或数组".所以,除非"有效JSON"和"有效JSON值"之间存在一些哲学上的区别,否则我会说空白响应不是有效的JSON. (3认同)

Joe*_*her 7

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