在同一方法上使用Jax-Rs @Get和@Post

5

在REST服务的同一个方法中使用@Get @Post或其他@HttpMethod是否允许?我知道Jersey会返回异常,但我只想了解JAX-RS API,不想知道其他内容。

JAX-RS API是否允许这样做?

编辑:我提出这个问题,是因为我在规范或文档中没有找到任何关于此的信息。


“allowed”是什么意思?你测试过它是否有效吗? - jkalden
我指的是JAX-RS API,而不是框架。 - Lisa Doy
这并没有回答我的问题! - jkalden
1个回答

4
JAX-RS规范在http://download.oracle.com/otndocs/jcp/jaxrs-2_0_rev_A-mrel-spec/index.html中似乎没有明确指定这种情况。在第3.3节中,它说“资源方法是带有a请求方法标识符注释的资源类方法”,我强调“a”字。@Get和@POST是请求方法标识符的示例。 描述如何选择响应请求的方法的第3.7.2节仅说明要过滤掉“支持请求方法的方法”。 所以我认为你发现了规范中的一个灰色地带,显然JAX-RS参考实现的创建者选择不支持您的用例。
您需要进行重构:
@GET
public void yourGetMethod() {
    yourMethod();
}

@POST
public void yourPostMethod() {
    yourMethod();
}

public void yourMethod(...

谢谢!那是我想听到的答案 :) - Lisa Doy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接