为一堆网址添加前缀

时间:2014-02-03 03:58:10

标签: scala playframework routing playframework-2.2

我有一堆具有相同前缀的路线:

# with prefixes
GET         /api/v1.0/action1   controllers.Api.action1
GET         /api/v1.0/action2   controllers.Api.action2
GET         /api/v1.0/action3   controllers.Api.action3
GET         /api/v1.0/action4   controllers.Api.action4

# normal urls
GET         /action1   controllers.Home.action1
GET         /action2   controllers.Home.action2

我想摆脱/api/v1.0/的重复。网址必须保持不变,我只是不想为route文件中的每个网址手动编写它们。在Rails中它是可能的。如果有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

如Rich所述,您可以在James Ropers' post之后为这些操作实施自己的路由器。这样做,允许您将以下内容添加到路径文件中:

->  /api/v1.0   YourPathBindableController   

或者,您可以使用插件,例如navigator,它为您提供高级路由。然后,您的导航器路径文件将包含以下内容:

   // Namespace ...
namespace("api"){
  namespace("v1"){
    GET on "index" to Application.index _
  }
}

// ... or with reverse routing support
val api = new Namespace("api"){
  val v2 = new Namespace("v2"){
    val about = GET on "about" to Application.about _
  }
}