Play Framework - 为路由配置生成代码
Play Framework - Generates Code for Routes Configuration
我最近开始使用 Scala 学习 Play framework 2.6。我知道 Play 会为 conf/routes
中的路由配置文件编译和生成代码,例如 reverse-routing,但我很难理解它在何处以及如何生成它们。
根据我的观察,我在 target/scala-2.12/routes
目录下发现了 4 个生成的文件:
- Routes.scala
- RoutesPrefix.scala
- routes.java
- 反转Routes.scala
以上4个文件的purpose/role是什么?
基本上,它允许您根据 conf/routes
文件生成反向路由。
你有一个控制器:
package controllers
class SomethingController {
def doThings(param: String): Future[String] = ???
}
和routes
文件
GET /something/:param controllers.SomethingController.doThings(param: String)
然后播放会生成类那个
- 将查询连接到控制器 - 在
Routes.scala
中,您可以看到将查询传递到正确控制器的代码。它被Play应用程序使用,你不必处理这个文件,
允许您为特定操作生成 URL - routes.java
、ReverseRoutes.scala
controllers.routes.SomethingController.doThings("something") // Call
prefix 是一个实用程序,它允许您一次为所有路由添加前缀 - 如果您想在主机和 URI 之间的任何地方添加 /api
,那么这是可能的,因为前缀是可配置的(例如,通过 application.conf
中的设置 play.http.context=/api
)。您可能不必直接使用它。
我最近开始使用 Scala 学习 Play framework 2.6。我知道 Play 会为 conf/routes
中的路由配置文件编译和生成代码,例如 reverse-routing,但我很难理解它在何处以及如何生成它们。
根据我的观察,我在 target/scala-2.12/routes
目录下发现了 4 个生成的文件:
- Routes.scala
- RoutesPrefix.scala
- routes.java
- 反转Routes.scala
以上4个文件的purpose/role是什么?
基本上,它允许您根据 conf/routes
文件生成反向路由。
你有一个控制器:
package controllers
class SomethingController {
def doThings(param: String): Future[String] = ???
}
和routes
文件
GET /something/:param controllers.SomethingController.doThings(param: String)
然后播放会生成类那个
- 将查询连接到控制器 - 在
Routes.scala
中,您可以看到将查询传递到正确控制器的代码。它被Play应用程序使用,你不必处理这个文件, 允许您为特定操作生成 URL -
routes.java
、ReverseRoutes.scala
controllers.routes.SomethingController.doThings("something") // Call
prefix 是一个实用程序,它允许您一次为所有路由添加前缀 - 如果您想在主机和 URI 之间的任何地方添加
/api
,那么这是可能的,因为前缀是可配置的(例如,通过application.conf
中的设置play.http.context=/api
)。您可能不必直接使用它。