【问题标题】:Java Restlets - Match arbitrarily long URI path parameterJava Restlets - 匹配任意长的 URI 路径参数
【发布时间】:2011-02-15 12:32:00
【问题描述】:
使用Restlets,您可以使用基于URI template specification 的系统路由URI。我希望能够路由匹配以下模式的 URI
http://www.blah.com/something/...arbitrarily long path.../somethingelse/
因此,以下两个 URI 将被匹配并路由相同:
http://www.blah.com/something/a/b/c/d/somethingelse/
and:
http://www.blah.com/something/z/y/x/w/v/somethingelse/
如何使用 Restlets 实现这一目标?
干杯,
皮特
【问题讨论】:
标签:
java
rest
uri
match
routes
【解决方案1】:
设置路由的最常见方法是使用路由器,如下所示:
router.attach("/path/to/resource", MyResource.class);
'attach' 返回一个Route,它有setMatchingMode 方法,所以你可以这样做:
router.attach("/path/to/resource", MyResource.class).setMatchingMode(Template.MODE_STARTS_WITH);
这会将路由设置为匹配以提供的模式开头的任何 URL。
我希望这足以满足您的需求。我不知道有任何内置方式来匹配具有特定前缀和特定后缀的 URL。但如果这正是您需要的,您可能可以实现自己的模板、路由等子类(我不确定需要哪个。)
我很确定基于正则表达式的路由已经在 Restlet 邮件列表中讨论过;你可能想在那里搜索。