官方JSON媒体类型为application/json
。 Jackson的RESTEasy提供程序ResteasyJackson2Provider
指定了这样的媒体类型:
@Provider
@Consumes({"application/*+json", "text/json"})
@Produces({"application/*+json", "text/json"})
public class ResteasyJackson2Provider extends JacksonJaxbJsonProvider
…
我不明白。我了解"application/*+json"
会匹配,例如application/foo+json
。但如果没有加application/json
符号,它会匹配+
吗?这是JAX-RS规范吗?它与我期望通配符的工作方式不一致,除非JAX-RS媒体类型模式匹配对媒体类型子组件语义有一定了解。
答案 0 :(得分:0)
JAX-RS规范中没有关于媒体类型后缀的内容。每个提供商都按照自己的意愿处理后缀。
我使用3个JAX-RS实现测试我的自定义提供程序(生成application/*+json
媒体类型):
application/json
媒体类型application/json
媒体类型application/json
媒体类型(如果
PARTIAL_HIERARCHICAL_MEDIA_SUBTYPE_CHECK
属性为true
)我的建议 - 如果您想使用不同的JAX-RS实现,请不要信任*+json
媒体类型。添加明确的application/json
。