在同一方法上使用 Jax-Rs @Get @Post
Using Jax-Rs @Get @Post on same method
是否允许在 REST 服务的相同方法上使用 @Get @Post 或其他 @HttpMethod?我知道 Jersey return 异常,但我只想知道 JAX-RS API,没有别的。
JAX-RS API 允许这样做吗?
编辑:我问这个问题,因为我没有在规范或文档中找到任何关于此的内容。
http://download.oracle.com/otndocs/jcp/jaxrs-2_0_rev_A-mrel-spec/index.html 的 JAX-RS 规范似乎根本没有指定这种情况。在第 3.3 节中,它说“资源方法是用 a 请求方法指示符 注释的资源 class 的方法”——我强调"a" 这个词。 @Get 和@POST 是请求方法指示符的示例。
第 3.7.2 节描述了如何选择响应请求的方法,只是说过滤掉“支持请求方法”的方法。
所以我认为您在规范中发现了一个灰色区域,显然 JAX-RS 参考实现的创建者选择不支持您的用例。
您需要重构:
@GET
public void yourGetMethod() {
yourMethod();
}
@POST
public void yourPostMethod() {
yourMethod();
}
public void yourMethod(...
是否允许在 REST 服务的相同方法上使用 @Get @Post 或其他 @HttpMethod?我知道 Jersey return 异常,但我只想知道 JAX-RS API,没有别的。
JAX-RS API 允许这样做吗?
编辑:我问这个问题,因为我没有在规范或文档中找到任何关于此的内容。
http://download.oracle.com/otndocs/jcp/jaxrs-2_0_rev_A-mrel-spec/index.html 的 JAX-RS 规范似乎根本没有指定这种情况。在第 3.3 节中,它说“资源方法是用 a 请求方法指示符 注释的资源 class 的方法”——我强调"a" 这个词。 @Get 和@POST 是请求方法指示符的示例。 第 3.7.2 节描述了如何选择响应请求的方法,只是说过滤掉“支持请求方法”的方法。
所以我认为您在规范中发现了一个灰色区域,显然 JAX-RS 参考实现的创建者选择不支持您的用例。
您需要重构:
@GET
public void yourGetMethod() {
yourMethod();
}
@POST
public void yourPostMethod() {
yourMethod();
}
public void yourMethod(...