映射喷涂参数

时间:2013-07-08 04:41:48

标签: scala akka spray

我正在尝试构建一个简单的API来理解Spray的功能,并且已经因为将参数映射到实际类型而陷入困境。我有以下代码无法编译,但我正在使用它,如Spray自己的文档中所述:

  val myRoute =
    pathPrefix("people") {
      path("nearby") {
        parameters('lat as[Double], 'lng as[Double]).as(Location) { location =>
          complete {
            locationWorker ! location
          }
        }
      }
    }

我收到的错误是

[错误] /.../MyService.scala:47:')'预计但'''找到了。
[错误]参数('lat为[Double],'lng为[Double])。as(Nearby){lat =>

值得一提的是我对Scala也有些新意,所以我很容易做出一些非常简单的错误。

1 个答案:

答案 0 :(得分:1)

我是Scala / Akka等的新手,本周早些时候我花了一些时间来解决参数映射问题。我将分享我所拥有的工作,也许它可以指导你走正确的道路。这不是告诉你为什么Scala会对这个符号感到窒息,但希望在某种程度上有所帮助。

我的GET指令如下所示:

get { parameters('filter, 'sort ?, 'skip ?, 'take ?).as(Search) { model => complete { (account ? UserSearchReq(model)).mapTo[SearchResult[User]] } } } ~

我的搜索模型如下:

case class Search(filter: String, sort: Option[String], skip: Option[Int], take: Option[Int])

如您所见,过滤器是必需的,但其余参数是可选的。我没有指定类型,但一切正常。

祝你好运。