如何在playframework 2 scala应用程序中迭代路由?

Som*_*tik 3 scala routes playframework-2.0

在playframework 2 scala中play.mvc.Router.routes的等价物是什么?

在playframework 1.x中我可以迭代控制器中的可用路由:

for(Route route:Router.routes){
    ...
}
Run Code Online (Sandbox Code Playgroud)

我如何使用playframework 2 scala执行此操作?

未找到的开发模式模板似乎能够迭代它们,但我需要在控制器中执行此操作.

Jul*_*Foy 8

Play 2.0无法真正做到这一点.

路由被定义为a PartialFunction[RequestHeader, Handler],没有办法知道这个函数的域.

然而,如图中未发现模板,就可以检索应用程序的路径的一些信息:播放2.0路由器生成documentation场返回,为应用程序的每个路由,它的HTTP方法(GET,PUT其路径模式,等等),和最后调用它写在conf/routes文件中.

路由器生成一个Routes在启动时由Play应用程序加载的对象,您可以按如下方式访问它:

for {
  routes <- play.api.Play.current.routes.toList
  (method, pattern, call) <- routes.documentation
} yield {
  …
}
Run Code Online (Sandbox Code Playgroud)