我正在关注球衣教程here,以弄清楚如何制作多个mime输出。从他们的网站,这是推荐的方式:
@GET
@Produces({"application/xml", "application/json"})
public String doGetAsXmlOrJson() {
...
}
我无法弄清楚如何抽象@Produces,以便我的代码更欢迎它可以产生的其他mime类型。比方说,我有500个方法都有这个注释:
@Produces({"application/xml", "application/json"})
如果我要求将kml添加为mime类型,编辑和替换所有这些值肯定会非常耗时。
@Produces({"application/xml", "application/json", "application/kml"})
是否有可能更有效地构建@Produces,以便我不会遇到这个问题?
答案 0 :(得分:10)
@Produces
注释 @Produces
注释用于指定资源可以生成并发送回客户端的表示的MIME媒体类型。
JAX-RS运行时将传入请求的Accept
标头的值与@Produces
注释的值进行比较,以匹配将处理此类请求的资源方法。
如果没有@Produces
注释,则假定支持任何媒体类型(*/*
)。有关完整参考,请查看JAX-RS specification。
要减少代码中@Produces
注释的数量,您可以注释资源类,而不是注释资源方法。
提示:要减少印刷错误,您可以使用常量值:
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
查看MediaType
课程。