Scalatra:从另一个Servlet生成反向路由

时间:2013-07-12 14:55:14

标签: scala routing scalatra

用例

我正在编写一个简单的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中使用该功能的方法。

我尝试了什么

  • 为负责/categories的servlet创建了一个伴随对象,并尝试从那里使用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-land的新鲜事物)

0 个答案:

没有答案