我需要对REST web服务API进行版本控制。我在Stack Overflow下面看过几篇文章。我发现有三种方法: Url版本控制、自定义请求头和接受头。我正要去做URL版本控制。
我的URL是这样的:
http://localhost:8080/api/svcs/1.0/usrLocation?1234现在我的问题是如何版本化上面的url。我没有从服务器端代码中找到任何实际的示例。我能够找到理论和URL,如下所示:
http://localhost:8081/api/svc/v1/ and blah blah..我的jax-rs实现代码将是什么样子,实际的概念将如何在服务器端实现?
我是这方面的初学者。我的JAX-RS实现是Apache CXF
我的代码:
@Get
@Path("/usrLocation")
@Produces (MediaType.APPLICATION_JSON)
public Response getUsrLocation(@QueryParam ("locId") String locId){
// logic
}如何将url http://localhost:8080/api/svcs/1.0/usrLocation?1234更改为版本控制,以便在将来对其有所帮助,以及它如何在jax-rs实现端工作?
发布于 2014-11-06 02:39:58
您可以遵循两种设计方法
@Path("/svc")公共类KPApiService {私有最终静态日志日志= LoggerFactory.getLogger(KPApiService.class);@Path("/{ version }/myapp") @GET公共响应myApp(@PathParam(“version”)字符串版本,@QueryParam(“kpdata”)字符串数据){LOG.debug(“您和输入的版本{}和数据{} ",版本,数据);}}
@Path("/svc")公共类KPApiService {私有最终静态记录器日志= LoggerFactory.getLogger(KPApiService.class);@Path("/1.0/myapp1") @GET公共响应数据(@QueryParam(“kpdata”)字符串myApp1){LOG.debug(“您和输入的版本v1和数据{} ",data);} @Path("/1.2/myapp1") @GET公共响应myApp2(@QueryParam(“kpdata”)字符串数据){LOG.debug(“您和输入的版本数据和数据{} ",v2 );} }
https://stackoverflow.com/questions/26751295
复制相似问题