为什么同时运行三个Spray.io路由?

时间:2013-03-01 19:04:00

标签: scala spray

我在Spray.io中定义了以下路由。真正奇怪的是,每当我调用类似/user/8dsdf974jj之类的东西时,它实际上都会运行以下三条路线。幽默地,我注意到了,因为我同时收到了20封发送给我的验证邮件。

pathPrefix("user") {
  pathPrefix(PathElement) { id =>
        path("") {
              get { // code here }
        } ~
        path("verify" / "request") {
              get { // code here }
        } ~
        path("verify" / "confirm") {
              get { // code here }
        }
      }
}

有人可以解释为什么路径不会终止路由树吗?谢谢你的帮助。

1 个答案:

答案 0 :(得分:5)

简而言之,问题是您的代码在路由构建时运行,而不是在实际处理请求时。

本文档以较长的形式解释:http://spray.io/documentation/spray-routing/advanced-topics/understanding-dsl-structure/

如果你查看邮件列表,你会发现很多关于这个确切问题的线索,它可以帮助你进一步。

HTH