2

や などの REST リソースがauthorありarticleます。複数のが存在Authorし、それぞれが複数のauthorを所有できarticlesます。Scalatra ハンドラーを 1 つのサーブレットでモデル化できることはわかっています。

  • /author/:id/article
  • /author/:id/article/:id

などですが、これを行うと、サーブレットファイルが大きくなります。以下のすべてをauthor1 つのサーブレット内で処理する必要があるようです。

このようなものをいくつかの独立したサーブレットに分割して、一緒に登録するとリソース アドレス全体を構成したいと考えています。だから私はあるサーブレットに関連するものを持ち、別のauthorサーブレットに関連するものを持ちたいと思っていますarticle

Scalatraでそれを行う方法はありますか? Sinatra に関する同様の質問を見つけましたが、適切な回答がありません Sinatra でのサブ ルーティング

4

1 に答える 1

3

サーブレットとルートを好きなように設定できるはずです。

たとえば、次のように 2 つのサーブレットを設定できます。

class AuthorsServlet extends WebStack {
  get("/authors") { }

  get("/authors/:id") { }
}

class ArticlesServlet extends WebStack {
  get("/authors/:authorId/articles") { }

  get("/authors/:authorId/articles/:id) { }

}

そして、サーブレットを ScalatraBootstrap に登録します。

override def init(context: ServletContext) {
  context.mount(new AuthorsServlet, "/*")
  context.mount(new ArticlesServlet, "/*")
}
于 2013-04-04T09:19:20.900 に答える