Scala Play Framework-为路由配置生成代码
我最近开始用Scala学习Play framework 2.6。我知道Play编译并生成代码,例如,为我的路由配置文件在Scala Play Framework-为路由配置生成代码,scala,playframework,routes,Scala,Playframework,Routes,我最近开始用Scala学习Play framework 2.6。我知道Play编译并生成代码,例如,为我的路由配置文件在conf/routes中编译和生成代码,但我很难理解它在哪里以及如何生成代码 根据我的观察,我在target/scala-2.12/routes目录下找到了4个生成的文件: 斯卡拉酒店 斯卡拉航线 routes.java 斯卡拉反向口 上述4个文件的目的/作用是什么?基本上,它允许您基于conf/routes文件生成反向路由 您有一个控制器: package control
conf/routes
中编译和生成代码,但我很难理解它在哪里以及如何生成代码
根据我的观察,我在target/scala-2.12/routes
目录下找到了4个生成的文件:
- 斯卡拉酒店
- 斯卡拉航线
- routes.java
- 斯卡拉反向口
上述4个文件的目的/作用是什么?基本上,它允许您基于
conf/routes
文件生成反向路由
您有一个控制器:
package controllers
class SomethingController {
def doThings(param: String): Future[String] = ???
}
和路由
文件
GET /something/:param controllers.SomethingController.doThings(param: String)
然后play将生成
- 将查询连接到控制器-在
中,您可以看到将查询传递到正确控制器的代码。它由Play应用程序使用,您不必处理此文件Routes.scala
- 允许您为特定操作生成URL-
,routes.java
ReverseRoutes.scala
controllers.routes.SomethingController.doThings(“某物”)//调用
- prefix是一个实用程序,允许您一次向所有路由添加前缀-如果您希望在主机和URI之间的任何位置添加
,那么这是可能的,因为前缀是可配置的(例如,通过/api
中的设置应用程序.conf
)。您可能不必直接使用它播放.http.context=/api
ReverseRoutes.scala
。你能告诉我什么时候用这个文件吗?它会生成Call
对象,你可以用它来:生成请求的URI,如果你的作用域中有一个隐式请求,那么是一个请求的绝对URL,但是你也可以给它提供正文和标题,并用它来发出一个实际的请求。它在测试中很有用,或者如果您有多个应用程序具有聚合反向路由(),那么您可以非常可靠地从一个站点向另一个站点发出请求。