Spray非常简单,但是我在理解路由方面遇到了问题。它就像一只狗有时会取骨,往往不是。我错过了什么?
有没有办法查看Spray尝试的路线,以及为什么它会放弃某些路线?这基本上解决了这个问题。我在下面的logRequest
只显示了请求,但没有告诉我为什么路径无法与之匹配。
...
(get & logRequest("SAY AAA:")) {
path("results") {
complete("results")
} ~
path("results/") { // does not work
complete("results/")
} ~
complete("fallback")
}
导致:
"results/aaa" -> fallback
"results/" -> fallback
"results" -> results
如何抓住"results/"
案例?
略有类似的问题:19556196
附录:
我让它与path("results" / "")
一起工作。为什么"results/"
不起作用?
答案 0 :(得分:5)
好的,似乎正确的方法是:
(pathPrefix("results") & pathEndOrSingleSlash) {
complete( "results[/]" )
}
这将匹配我想要的results
和results/
。
pathEndOrSingleSlash
doc with sample