Java JAX-RS 2.0/RESTeasy中的版本API
我们想对RESTAPI进行版本设置。该版本适用于整个API,而不是单个资源 我认为每个API版本都有一个javax.ws.rs.core.Application,然后引用它公开的资源Java JAX-RS 2.0/RESTeasy中的版本API,java,rest,jakarta-ee,resteasy,Java,Rest,Jakarta Ee,Resteasy,我们想对RESTAPI进行版本设置。该版本适用于整个API,而不是单个资源 我认为每个API版本都有一个javax.ws.rs.core.Application,然后引用它公开的资源 - com.foo.bar.rest.v1 - MyApiApplicationV1 - MyResourceOne (Path: /api/one; X-VERSION: 1) - MyResourceTwo (Path: /api/two; X-VERSION: 1) - com.foo.b
- com.foo.bar.rest.v1
- MyApiApplicationV1
- MyResourceOne (Path: /api/one; X-VERSION: 1)
- MyResourceTwo (Path: /api/two; X-VERSION: 1)
- com.foo.bar.rest.v2
- MyApiApplicationV2
- MyResourceOne (Path: /api/one; X-VERSION: 2)
- MyResourceThree (Path: /api/three; X-VERSION: 2)
API的版本在X版本头中传递
我的问题是:如果X版本头为1,是否可以激活MyApiApplicationV1;如果X版本头为2,是否可以激活MyApiApplicationV2?怎么做
我们使用的是JAX RS 2/RESTeasy 3
感谢JAX-RS应用程序通常通过web.xml配置或使用映射到路径。如果路径标识了应用程序,则不能让两个应用程序在同一路径上运行 为了解决这个问题,您可以添加第三个应用程序或简单的servlet,根据您的版本头重定向到适当的版本
无关:这里介绍RESTful API的版本控制是否有意义(从00:26开始)。谢谢。是的,现在我们正在使用applicationpath/rest/1、/rest/2等。映射是在企业服务网关中完成的。我刚刚想到在RESTeasy中有一个映射可能性,可以在没有ESG的情况下进行本地测试。因此,我将采用servlet/重定向方法。