在JAX-RS中,有没有办法使用查询参数而不是Accept标头定义响应类型(例如/api/foo?format=json
)?
答案 0 :(得分:4)
在JAX-RS中有三种方式进行内容协商:基于URL,基于Accept标头和基于请求参数。请查看链接Content Negotiation Based on Request Parameter。它包含如何对请求参数进行内容协商的示例代码。该链接适用于Apache Wink项目,但代码应该在Jersey实现中有效。
答案 1 :(得分:1)
我不知道基于查询参数执行此操作的内置方法,但UriConnegFilter支持使用URI后缀的建议方法,如/api/foo.json
。也许你可以遵守那个惯例?如果没有,UriConnegFilter将是建立自己支持使用查询参数的良好起点。
答案 2 :(得分:0)
在这种情况下,您需要在web.xml中启用一个开关,如下所示
<context-param>
<param-name>resteasy.media.type.param.mapping</param-name>
<param-value>format</param-value>
</context-param>
/ API /富?格式= JSON