0

スプレーの機能を理解するために単純な API を構築しようとしていますが、パラメーターを実際の型にマッピングすることで既に行き詰まっています。コンパイルに失敗する次のコードがありますが、Spray 自身のドキュメントに記載されているとおりに使用しています。

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

私が受け取るエラーは

[エラー] /.../MyService.scala:47: ')' が必要ですが、'[' が見つかりました。
[エラー] parameters('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 に答える