0

我正在尝试构建一个简单的 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 as[Double], 'lng as[Double]).as(Nearby) { lat =>

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

4

1 回答 1

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])

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

祝你好运。

于 2013-07-17T14:30:44.303 回答