我有一个在Tomcat 6容器中运行的简单JAX-RS服务。是否可以通过附加.xml
或.json
以与Rails相似的方式在浏览器中显示文本而不是XML?
我所拥有的服务基于this tutorial。
答案 0 :(得分:0)
简短回答是 否 ,JAX-RS不允许您通过在网址上附加'xml'或'json'来切换响应内容类型。< / p>
规范明确定义了内容协商的发生方式 - 通过客户端的Accept
HTTP标头,与服务器端的@Produces
注释匹配。因此,按照规范,如果您想获得不同的内容类型,那么您将在Accept
标头中指定,并且将返回该内容类型(只要服务器支持它)。
话虽如此,JAX-RS实现可以自由地实现自定义(非可移植)扩展,以支持与您描述的行为类似的行为。一个例子是RESTEasy,它允许您将所需的内容类型定义为查询参数Section 17.2 - Query String Parameter-based negotiation。
您还可以设计资源类以轻松支持所需的行为 - 可以在Apache CXF Content Negotiation guide中看到一些示例。