我正在尝试动态定义URI路由中的版本。
我的不懈想法是
A) 我在application.conf中配置了一行说明我当前的版本:
myApp.ver = 0.1
我不想在路由文件中将其用作URI的一部分,例如:
GET /myApp/{version}/welcome controller.myApp.Welcome()
我们的想法是不将版本号传递给Welcome()方法 但要从application.conf文件中获取版本。
我已经在路径文件中搜索定义参数,但没有找到帮助我的信息。
b)另一个想法是在路线中有一个变量,如:
CurrentVersion = 0.1
路径文件中的并在URI中使用它。
我该如何解决这个问题?我没有为此找到一个例子。
感谢。
答案 0 :(得分:1)
如果您想为每条路线执行此操作,则应该可以将application.baseUrl
设置为包含您的版本号。为方便起见,您可以在application.conf
而不是Build.scala
文件as described here中定义版本。
myApp.name = myApp
myApp.ver = 0.1
application.baseUrl = ${myApp.name}/${myApp.ver}
如果你只想为某些路线做这件事,似乎没有一个简单的解决方案。如果你可以忽略路由中的参数,我会说使用regexp参数并在你的全局路由器中验证它 - 不幸的是这个doesn't seem possible没有将参数传递给控制器。
所以我看到另外两个选择:
答案 1 :(得分:0)
在Play 1.2.x中,在conf/routes
文件中,添加如下路线:
GET /myApp/${play.configuration.getProperty("myApp.ver")}/welcome myApp.Welcome()