これまでのところ、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 はどのようにルートを分割しますか?