我正在编写一个简单的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
甚至比这更多。我很困惑。items
servlet中,尝试根据路由名称获取路由。结果异常:scala.runtime.BoxedUnit cannot be cast to org.scalatra.Route
使问题显式化:有没有办法使用一个servlet中的命名Route
在另一个servlet中生成一个URL?
(请随意纠正我的术语,我来自Python-land的新鲜事物)