1
官方JSON媒体类型为application/json
。杰克逊,ResteasyJackson2Provider
的的RESTEasy供应商,指定媒体类型是这样的:JSON提供商的正确JAX-RS媒体类型匹配
@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规格](http://download.oracle.com/otndocs/jcp/jaxrs-2_0-fr-eval-spec/index.html)中找不到任何东西(子类型是混合的或通配符,无组合)和['MediaType#isCompatible'](https://docs.oracle.com/javaee/7/api/javax/ws/rs/core/MediaType.html#isCompatible-javax.ws.rs .core.MediaType-)无法处理它。 'application/* + json'似乎是错误的或RestEasy的供应商特性。 – dur
是的这个具体的resteasy。和“application/json”匹配“application/* + json”。参见[MediaTypeMap.SubTypeMap.getPossible](https://github.com/resteasy/Resteasy/blob/c68a7a679e0bc872e48da75eb357f6246df10ec7/resteasy-jaxrs/src/main/java/org/jboss/resteasy/core/MediaTypeMap.java#L227) – CyberWasp
但它是JAX-RS的标准部分吗?我希望这可以与其他JAX-RS实现一起使用吗?请提供一个单独的答案,以便我给予参考时可以标记为正确。谢谢。 –