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

时间:2012-07-24 18:48:49

标签: java dropwizard

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

我有一个课程

@Produces(MediaType.TEXT_HTML)

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

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

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

1 个答案:

答案 0 :(得分:9)

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

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

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