我已实施版本化,如下所示。目前我正在以这种方式实施它
@GET
@Path("/{id}")
@Produces("application/v1+json;version=1")
public TrackV1 getV1(@PathParam("id") int id) String version) {
return new TrackV1("Version=1", "Version=1", "2:30", 1941);
}
@GET
@Path("/{id}")
@Produces("application/v2+json;version=2")
public TrackV1 getVa1(@PathParam("id") int id) {
return new TrackV1("Version=2", "Version=2", "2:30", 2941);
}
但我需要将其改为以下实施: -
@GET
@Path("/{id}")
@Produces("application/json;version=1")
public TrackV1 getV1(@PathParam("id") int id) String version) {
return new TrackV1("Version=1", "Version=1", "2:30", 1941);
}
@GET
@Path("/{id}")
@Produces("application/json;version=2")
public TrackV1 getVa1(@PathParam("id") int id) {
return new TrackV1("Version=2", "Version=2", "2:30", 2941);
}
所以任何帮助如何在Spring或Jax-Rs和Jersey中实现。
答案 0 :(得分:0)
我找到了问题的解决方案: -
@GET
@Produces("application/xml;version=1")
public Response getAddonListVersion1(@Context UriInfo uriinfo) {
logger.debug("START:Addons Dummy Service Implementation");
return Response.ok("Version 1", "application/xml").build();
}
@GET
@Produces("application/xml;version=2")
public Response getAddonListVersion1(@Context UriInfo uriinfo) {
logger.debug("START:Addons Dummy Service Implementation");
return Response.ok("Version 2", "application/xml").build();
}
使用Jersey它给出了问题,但当你使用apache-cxf ws实现或使用RestEasy时,你可以轻松地进行这些类型的版本控制。