以纯文本或JSON发送REST响应?

时间:2012-07-31 13:24:59

标签: json api rest

在创建REST API时,如果我以JSON格式返回GET请求的数据,那么也可以在JSON中发送POST,PUT,DELETE和错误消息的响应,或者纯文本就足够了吗?

例如:

对于POST请求,我需要返回新添加的记录的新ID(即数据库中的新自动增量值),如果响应仍然是JSON,或者只是纯文本,如" 1&#34 ;或" 2"例如。

PUT或DELETE请求也是如此,我需要说" OK"或"接受"以及错误消息,如"错误请求","未找到"等

纯文本还是JSON?

3 个答案:

答案 0 :(得分:7)

使用客户端提供的Accept header让客户端控制他们想要的内容类型。如果未提供标头,则使用合理的默认设置,始终在响应中包含Content-Type header。有关详细信息,请参阅Content Negotiation section of RFC2616

答案 1 :(得分:1)

理论上,只返回“1”是有效的JSON。它不是数组或关联映射。

对于OK和Accepted,您可以使用HTTP状态代码。没有真正的身体。

答案 2 :(得分:0)

这完全取决于客户的能力。

当然,您实际上不必选择其中一种:您可以使用内容类型协商来根据用户代理的接受列表返回不同的表示。