如何在喷雾路由中捕获斜杠结尾的URL

  • 本文关键字:结尾 URL 路由 spray
  • 更新时间 :
  • 英文 :


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/"不工作?

好的,看来正确的做法是:

    (pathPrefix("results") & pathEndOrSingleSlash) {
      complete( "results[/]" )
    }

这将匹配resultsresults/,这是我想要的。

背景讨论

pathEndOrSingleSlash doc with sample

最新更新