3

用例

我正在编写一个简单的 REST api 来评估 Scalatra 是否满足我的需求。我有两个控制器(servlet?),/items/*安装/categories/*ScalatraBootstrap. 我希望GET请求/items/1返回如下内容:

{
   "name": "item1",
   "category": {
     "url": "/categories/1"
   }
}

我找不到生成/categories/1. http://www.scalatra.org/2.2/guides/http/reverse-routes.html中的最后一部分看起来像我需要的,除了它没有描述跨 servlet 使用该功能的方法。

我试过的

  • 为负责 的 servlet 创建了一个伴随对象/categories,并尝试Route从那里使用 。我收到消息异常requirement failed: routeBasePath requires the servlet to be initialized。这让我相信有一些概念上的限制阻止了这种用法,但是文档说它的ScalateUrlGeneratorSupport作用远不止于此。我很困惑。
  • 复制粘贴https://github.com/ornicar/scalatra/commit/625f8a287d466122d8a0774b71188a62ec07ecb6中删除的特征,将其混合到itemsservlet 中,尝试根据路由名称获取路由。结果异常:scala.runtime.BoxedUnit cannot be cast to org.scalatra.Route

为了明确这个问题:有没有办法使用一个 servlet 中的命名Route来在另一个 servlet 中生成 URL?

(请随时更正我的术语,我刚从 Python 领域回来)

4

0 回答 0