2

これまでのところ、Vertx が大好きです。ドキュメンテーションは素晴らしく、言語間のサポートは驚くべきものです。

ただし、特定の問題の例とドキュメントはすべて古くなっているようです。それ以来、API は少し変更されていると思います3.4.x(私は現在3.9.1Scala で使用してい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 はどのようにルートを分割しますか?

4

1 に答える 1