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将与客户端进行内容协商。