2
有没有办法从客户端控制输出格式?dropwizard:生成同一类的html和json
我有一类
@Produces(MediaType.TEXT_HTML)
,我希望它产生JSON当客户端请求。
我可以复制类逐字,仅更换@Path和@Produces注解,但是这看起来像一个总的浪费。
不知该客户端可以追加像&内容类型=应用程序/ JSON的URL,并与JSON而不是HTML我的服务器响应?
有没有办法从客户端控制输出格式?dropwizard:生成同一类的html和json
我有一类
@Produces(MediaType.TEXT_HTML)
,我希望它产生JSON当客户端请求。
我可以复制类逐字,仅更换@Path和@Produces注解,但是这看起来像一个总的浪费。
不知该客户端可以追加像&内容类型=应用程序/ JSON的URL,并与JSON而不是HTML我的服务器响应?
你需要注释资源提供HTML和JSON:
@Produces({MediaType.TEXT_HTML, MediaType.APPLICATION_JSON})
然后,只需确保你有注册后处理方法的返回类型MessageBodyWriter
实现。 Dropwizard的JacksonMessageBodyProvider
应该处理JSON;如果你使用Dropwizard Views,ViewMessageBodyWriter
应该处理剩下的部分。如果您的客户端在请求的Accept
标头中有application/json
,Jersey将与客户端进行内容协商。
如何注册MessageBodyWriter?我的返回类型扩展了View;这足以生成HTML。我如何控制浏览器的Accept头?谢谢! – sds 2012-07-24 21:03:03
你不需要注册任何东西,真的。它应该只是工作。 – 2012-07-24 22:21:09
至于控制'Accept'头:你不能。 – 2012-07-24 22:21:36