到目前为止,我真的很喜欢 Vertx。文档很棒,跨语言支持也很棒。
但是,针对我的具体问题的示例和文档似乎都已过时。我想 API 已经发生了一些变化3.4.x
(我目前正在使用3.9.1
Scala 2.13.1
。
我希望能够将我的路线拆分到多个文件中,以使事情井井有条。例如,我想要一个UserRoutes
文件,并为 . 创建一个单独的文件TodoRoutes
,这两个文件都可以在我的ServerVerticle
.
我发现这样做的唯一方法基本上是:
用户路线:
object UserRoutes {
def createUser(context: RoutingContext): Unit = {
// do work
}
def login(context: RoutingContext): Unit = {
// do work
}
}
服务器垂直:
class ServerVerticle(vertx: Vertx) extends AbstractVerticle {
override def start(): Unit = {
val router: Router = Router.router(vertx)
router.post("/user/new").handle(UserRoutes.createUser)
router.post("/user/login").handle(UserRoutes.login)
....
}
}
我真正想做的是:
object UserRoutes {
// somehow get a reference to `router` or create a new one
router.post("/user/new", (context: RoutingContext) => {
// do work
})
router.post("/user/login", (context: RoutingContext) => {
// do work
})
}
我更喜欢这个的原因是因为这样更容易确切地看到正在做什么UserRoutes
,例如正在使用什么路径,需要什么参数等。
我尝试对这个示例应用程序采用类似的方法,但显然这对于 Vertx API 是不可能的,因为它存在于3.9
?
做这个的最好方式是什么?我错过了什么?大型 REST API 如何分解它们的路由?