スプレー初心者です。ルートの構築をいじっており、パラメーター ディレクティブを使用してクエリ文字列からパラメーターを取得することはできますが、パラメーターの 1 つをリストにしたい場合に問題が発生します。
この例では、次のケース クラスを定義しました。
case class Person(name: String, friends: Int)
私のルートは現在次のようになっています。
path("test") {
get { parameters('name, 'friend ).as(Person) { p => complete(p) } }
}
これは問題なく動作し、get: localhost:8080/test?name=jo&friends=12 を実行して、期待どおりの結果を得ることができます。
友達の数だけでなく、友達IDのリストを渡したいので、ケースクラスを次のように変更することから始めました。
case class Person(name: String, friends: Array[Int])
そして私の呼び出し: localhost:8080/test?name=jo&friends=1,2
これはコンパイルされません。タイプの不一致が発生します: found : Person.type required: Spray.routing.HListDeserializer[shapeless.::[String,shapeless.::[String,shapeless.HNil]],?] get { parameters('name, 'friend ).as(Person) { p => ^ コメント: これは .as(Person) の P を指します
私が間違っていることについて何か考えはありますか?やり方の回答をいただければ幸いです。さらに良いのは、探しているこの形のないタイプが何であるかについての説明です。ありがとう