如何解析包含特定单词的请求uri

时间:2016-03-25 11:45:35

标签: scala spray spray-routing

我正在尝试处理包含单词" filter"的请求。目前,我正在使用网址 http://localhost:9997/filter= ....

并使用pathPrefix(fiter)解析

但是url会改变并变得像 http://localhost:9997/something../filter=

所以在这里我不能使用pathPrefix()。 如何在路由中处理这种路径,以便任何包含" filter"它可以处理的关键字。 我非常喜欢akka喷雾剂。请让我知道你的意见。提前致谢

1 个答案:

答案 0 :(得分:0)

如果你想要匹配的字符串总是在最后,你可以使用“pathSuffix”(它可能足以满足你的需要)

pathSuffix("filter") { ... }

但如果它可以在路径的任何地方,那就不那么直截了当了。一种方法是使用细分:

path( Segment / "filter" / Segment ){ (prefix, postfix) => {...} }

但如果过滤器位于任何一端,则不匹配:“filter / blah / blah”或“balh / blah / filter”,但您可以通过匹配前缀和后缀来解决。我想有更好的方法,也许是使用自定义指令。

看一看 http://spray.io/documentation/1.2.3/spray-routing/predefined-directives-alphabetically/#predefined-directives