我是新来喷的。我正在尝试构建路由,虽然我设法使用参数指令从查询字符串中获取参数,但当我希望其中一个参数成为列表时遇到了麻烦。
对于这个例子,我定义了这个案例类:
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
这不编译。我得到一个类型不匹配:找到:Person.type required: spray.routing.HListDeserializer[shapeless.::[String,shapeless.::[String,shapeless.HNil]],?] get { parameters('name, 'friend ).as(Person) { p => ^ 注释:this 指向 .as(Person) 中的 P
知道我做错了什么吗?我很想知道如何做到这一点。更好的是解释它正在寻找的这种无形类型是什么。谢谢