JAX-RS和@Produces匹配正则表达式的能力

时间:2015-04-24 17:56:43

标签: jax-rs

我正在编写一个需要版本控制的Restful Web服务。我想要的方法是使用标题中的媒体类型来执行此操作。

请求示例:

Accept: application/vnd.test.books.v1+xml

我的端点是

@GET
@Path("/test")
@Produces("application/vnd.test.books.v1+xml")
public Response getA(){
...
}

我还希望正则表达式匹配所有版本。所以我希望与application / vnd.test.books。* + xml的Accept标头匹配。所以在我的情况下任何版本。我尝试过类似下面的东西而没有运气。

@GET
@Path("/test")
@Produces("application/vnd.test.books*+xml")
public Response getB(){
...
}

我想要的是下线的能力具有v1的端点,然后是v2之上的任何东西我想要一个不同的终点。

1 个答案:

答案 0 :(得分:1)

您必须明确列出方法@Produces的所有MIME类型:

@Produces(value = {"application/vnd.test.books.v2+xml",
                   "application/vnd.test.books.v3+xml",
                   "application/vnd.test.books.v4+xml"})