我正在使用Restlet制作RESTful平台。我之前没有使用它,但我决定使用2.0,因为最好从最新最好的技术开始,对吧?
我正在寻找的关键是能够让某人放入像http://mysite/New%20York/3
这样的网址并让服务响应[New York,New York,New York]
这样的内容,所以我需要传递请求属性。使用这篇文章Restlet 1.1(因为我似乎无法在Restlet网站上找到任何文档),我就这样连接了我的应用程序:
router.attach("{text}/{count}", RepeaterResource.class);
执行此操作的新方法显然位于UniformResource#doInit()
方法中,因此我看起来像(没有错误检查):
@Override
public void doInit()
{
magicText = "" + getRequestAttributes().get("text");
repeatAmount = Integer.parseInt("" + getRequestAttributes().get("count"));
}
问题是从Map<String, Object>
返回的getRequestAttributes()
始终是空的!这似乎很奇怪。我的布线错误吗?
当然,我可以使用getQuery()
并自己解析,但这绝对是错误的做法,似乎应该有一个简单的方法来做到这一点(类似于以前的版本工作)。
答案 0 :(得分:2)
我的问题似乎是路由器附件必须以/
字符开头。我应该像这样依恋:
router.attach("/{text}/{count}", RepeaterResource.class);
我似乎无法找到这种记录的行为,这似乎很奇怪,但它确实解决了我的问题。
答案 1 :(得分:0)
您可以使用与1.1相同的方式执行此操作。
参见教程,第11部分:http://www.restlet.org/documentation/2.0/tutorial#part11
Restlet很棒,BTW。