JAX-RS使用@consume注释支持所​​有媒体类型

时间:2016-02-26 09:34:18

标签: java rest jax-rs jersey-2.0

由于功能要求,我正在开发一个Web API,我想在其中添加对所有媒体类型的支持。我也试图在课堂级别和方法级别上提供@consumes("*/(")。但是当我尝试使用application/json标题中的Content-Type媒体类型访问我的api时,它对我没有用。

我已经查看了@consumes注释的实现,其默认值为*/*,因此我尝试将此注释用作@consumes,因此它可以添加默认值,但是也不行。 目前我已将此注释用作

@Consumes({"application/*","text/*"})

允许客户端使用这些媒体类型组中的任何一种媒体类型访问我的API。但是,如果客户端使用multipart/signed或任何其他媒体类型发送请求,它仍会混乱。

1 个答案:

答案 0 :(得分:2)

您应该不要在资源类或方法上使用@Consume注释来使用所有媒体类型。

根据规范,第3.5章,声明媒体类型功能:

  

应用程序类可以声明支持的请求和响应   使用@Consumes和@Produces注释的媒体类型   分别。这些注释可以应用于资源方法,a   资源类,或实体提供者(参见第4.2.3节)。用于   资源方法上的这些注释会覆盖资源上的任何注释   类或在实体提供程序上的方法参数或返回类型。   在没有任何这些注释的情况下,支持任何媒体   假设类型(“*/*”)