具体来说,这是以下情况:一个请求可以有一个正文(POST或PUT),其格式为Content-Type
标题中指定的格式 - 比如application/json
。但是,URI包含针对不同格式(例如?_format=xml
或resource_uri.xml
)的格式设置,通常用于表示响应格式。我在这里看到三种可能的解决方案:
Content-Type
,并解析请求正文,就好像它是由URI表示的格式一样。Content-Type
定义。Content-Type
解析请求正文,并将响应格式化为URI提示。我个人喜欢#3的方法,但有点担心格式的差异。这里通常的做法是,接受不同格式的请求和响应是否可以接受?如果不是,我更喜欢方法#1,而#2似乎完全关闭和不直观。这里有什么建议吗?
答案 0 :(得分:2)
方法#3是三者中唯一的理智,也允许请求和响应采用不同的格式。这是一件好事,因为通常请求采用一种固定格式,而响应可以以客户喜欢的任何支持格式呈现。
方法#1显然滥用HTTP,应该永远不会看到光明。
方法#2也非常糟糕,因为客户期望的响应格式有不同的标头:Accept
。
简而言之:您可以按照HTTP预期的方式(使用Accept
标头)执行此操作,或者通过允许在URL中内联指定格式为客户端提供一些便利。您也可以同时执行这两项操作(如果Accept
标头指定了格式,则使用该格式,否则也请检查URL)。
答案 1 :(得分:1)
方法#3没问题,我想说你可以依靠Accept
标题来确定响应格式。这样,Content-Type
标头设置请求格式,Accept
标头或_format
查询参数设置响应格式。