dropwizard:从同一个类生成html和json

有没有办法从客户端控制输出格式?

我有一节课

@Produces(MediaType.TEXT_HTML) 

我希望它在客户端请求时生成json

我可以逐字复制该类,只替换@Path@Produces注释,但这看起来完全是浪费。

我想知道客户端是否可以将类似&content-type = application / json的内容添加到URL并让我的服务器用json而不是html响应?

您需要将资源注释为同时提供HTML和JSON:

 @Produces({MediaType.TEXT_HTML, MediaType.APPLICATION_JSON}) 

然后确保注册了MessageBodyWriter实现以处理方法的返回类型。 Dropwizard的JacksonMessageBodyProvider应该处理JSON; 如果你使用Dropwizard视图, ViewMessageBodyWriter应该处理剩下的ViewMessageBodyWriter 。 如果您的客户端在请求的Accept标头中有application/json ,Jersey将与客户端进行内容协商。