我正在研究Jersey和RESTEasy。 XML和JSON的媒体类型协商工作正常,我可以使用它们并生成它们。但是,我被要求制作并使用新内容类型的响应。例如,BSON,或自定义内容类型。我在网上搜索,但在其中找不到太多信息。无论如何,我仍然可以在JAX-RS中使用@Produces和@Consumes注释来获取新的内容类型吗?
提前致谢。
答案 0 :(得分:18)
是的,您可以将@Produces
和@Consumes
用于自定义媒体类型。为了在编组和解组内容时使用自定义媒体类型,您需要创建MessageBodyWriter
和MessageBodyReader
实现来处理媒体类型。
以下是如何实施自定义媒体类型:
根据需要使用@Consumes({"application/mycustomtype})
和@Produces({"application/mycustomtype})
注释您的资源方法。
实施自定义MessageBodyReader
和MessageBodyWriter
实施以支持您的自定义媒体类型。
使用MessageBodyReader
和@Provider
@Consumes({"application/mycustomtype})
添加注释
使用MessageBodyWriter
和
为@Provider
添加注释
@Produces({"application/mycustomtype})