playframework 2 scala 中 play.mvc.Router.routes 的等价物是什么?
在 playframework 1.x 中,我可以迭代控制器中的可用路由:
for(Route route:Router.routes){
...
}
我将如何使用 playframework 2 scala 做到这一点?
未找到的开发模式模板似乎能够遍历它们,但我需要在控制器中执行此操作。
playframework 2 scala 中 play.mvc.Router.routes 的等价物是什么?
在 playframework 1.x 中,我可以迭代控制器中的可用路由:
for(Route route:Router.routes){
...
}
我将如何使用 playframework 2 scala 做到这一点?
未找到的开发模式模板似乎能够遍历它们,但我需要在控制器中执行此操作。
Play 2.0 无法做到这一点。
路由被定义为PartialFunction[RequestHeader, Handler]
,没有办法知道这个函数的域。
尽管如此,如not found模板所示,您可以检索有关应用程序路由的一些信息:Play 2.0 路由器生成一个documentation
字段,返回应用程序的每个路由、其 HTTP 方法(GET
、PUT
等)、其路径模式和最后是写入conf/routes
文件中的调用。
路由器会生成一个Routes
对象,该对象在您的 Play 应用程序启动时加载,您可以按如下方式访问它:
for {
routes <- play.api.Play.current.routes.toList
(method, pattern, call) <- routes.documentation
} yield {
…
}