用例
我正在编写一个简单的 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中删除的特征,将其混合到
items
servlet 中,尝试根据路由名称获取路由。结果异常:scala.runtime.BoxedUnit cannot be cast to org.scalatra.Route
为了明确这个问题:有没有办法使用一个 servlet 中的命名Route
来在另一个 servlet 中生成 URL?
(请随时更正我的术语,我刚从 Python 领域回来)