Java Restlets - 匹配任意长的URI路径参数

时间:2011-02-15 12:32:01

标签: java rest uri match routes

使用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实现此目的?

干杯,

皮特

1 个答案:

答案 0 :(得分:2)

设置路由的最常用方法是使用路由器,如下所示:

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邮件列表中已经讨论过基于正则表达式的路由;你可能想在那里搜索。