REST:相同数据的不同表示

bsr*_*bsr 3 rest json

如何构建一个API,其中相同的数据可以以RESTful格式以不同的格式请求.例如.

GET /person/<id>  //get the details of resource <id>
Run Code Online (Sandbox Code Playgroud)

现在,根据客户端(浏览器)的要求,数据可以发送为html(比如正常呈现)或Json(比如ajax调用).所以我的怀疑是

  1. 我可以为两个请求保留相同的URL,还是应该保持它们分开?
  2. 如何检测请求是否是服务器上的html/Json.请求类型相同(GET).那么我应该考虑哪个参数.
  3. 如何检测客户端数据类型的差异(html/Json)\

谢谢,

BSR.

mr-*_*-sk 6

类似的问题:REST Content-Type:它应该基于扩展还是Accept头?

接受的答案有很多好处.

我可以为两个请求保留相同的URL,还是应该保持它们分开?

是的,保持不变.它是相同的资源,你只是要求它的不同表示.

如何检测请求是否是服务器上的html/Json.请求类型相同(GET).那么我应该考虑哪个参数.

您可以使用Accept标头指定返回内容类型.

如何检测客户端数据类型的差异(html/Json)\

你会看到"Content-Type"标题.

  • 为了您在开发过程中的自身状态,添加URL参数或其他不同的URL(/person/<id>.json)可能很有用,以便您可以覆盖Accept标头以进行测试.必须使用cURL或其他方法以另一种方式检查您的服务结果,这是一种痛苦.否则我100%与Mr-sk达成协议. (2认同)