【发布时间】:2016-11-24 17:54:02
【问题描述】:
官方的 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 媒体类型模式匹配对媒体类型子组件语义有所了解。
【问题讨论】:
-
我在JAX-RS spec 中找不到任何东西(子类型是具体或通配符,没有组合),
MediaType#isCompatible无法处理。application/*+json似乎是错误的或RestEasy的供应商功能。 -
是的,这就是resteasy。并且“application/json”匹配“application/*+json”。见MediaTypeMap.SubTypeMap.getPossible
-
但它是 JAX-RS 的标准部分吗?我希望这可以与其他 JAX-RS 实现一起使用吗?请提供单独的答案,以便在您提供参考时我可以将其标记为正确。谢谢。
标签: json jax-rs resteasy jackson2