3 java rest web-services jax-rs java-ee
我不明白为什么javax.ws.rs.Produces可以使用两种以上的媒体类型.据我所知,Web服务客户端必须确切知道Web服务返回的媒体类型是什么.我在http://docs.oracle.com/javaee/6/api/javax/ws/rs/Produces.html查看了它的API,但我找不到答案.有人有什么想法吗?谢谢.
restful端点可以返回任意数量的媒体类型.这允许服务支持可能具有不同要求的多个客户端.客户端通过设置Accept标头告诉服务他们期望返回什么内容类型,或者在某些情况下使用url上的特殊后缀,如.json或.xml.
例:
让我们假装您有两个客户端呼叫相同的Web服务.
客户端A可能只能解析XML.因此,他们请求通过发送的XML响应application/xml在Accept报头中.
客户端B可能能够解析XML和JSON,但他们更喜欢JSON.所以他们发送application/json了Accept标头.
为了让restful端点支持这两个请求,它将被注释如下:
@GET
@Produces({"application/json", "application/xml"})
public Foo getFoo()
{
   return Foo();  //This will be marshalled to XML or JSON depending on what the client requests
}
| 归档时间: | 
 | 
| 查看次数: | 2360 次 | 
| 最近记录: |