休息端点版本控制和uri别名

时间:2016-06-29 17:14:16

标签: java rest jboss jax-rs resteasy

我经历了关于api版本化url rewrite的所有讨论。我们决定将版本号放在URI中,为此我们现在必须支持,客户端在uri中请求没有api版本的资源,默认情况下为最新版本。例如:

http://base_uri/api/customers/1234 (with out api version)
http://base_uri/api/v3.0/customers/1234 (default to current version)

第1步:要解决上述问题:我正在考虑使用(jboss valve,{{3}})重写网址,请告知是否有更好的方法。

步骤2:现在我需要使用我的版本号“v1”预先挂起所有@Path注释。

@Path("/foo/bar") will now change to @Path("v1/foo/bar"). 

我在考虑用占位符代替版本

ex: @Path("{version}/foo/bar") 

并从配置文件中读取版本名称,而rest-easy正在扫描资源并进行注册。因此,如果我们将来迁移到新版本,我们所需要的只是在一个地方进行更改。

我正在寻找step1&amp ;;中的最佳方法第2步。非常感谢任何帮助。

我正在使用Rest-easy,jax-rs 2.0,jboss

1 个答案:

答案 0 :(得分:0)

我建议第2步,因为对于此要求,URL重写可能有点复杂。它还增加了一个维护组件。 对于步骤2,您需要注意注释仅使用常量,因为它们在编译时进行评估。因此,声明一个常量并在@Path注释中重用它。

  

public static final String VERSION_1 =“1.0”; //在Constants类中。

然后在所有路径映射或任何注释中使用它。

  

@Path(“/”+ Constants.VERSION_1 +“/ foo / bar”)