Я новичок в спрее. Я играю вокруг с построением маршрутов, и пока мне удается получить параметры из строки запроса с помощью директивы параметров, у меня возникают проблемы, когда я хочу, чтобы один из параметров был списком.Как можно распылить unmarshall список в параметрах запроса
Для этого примера я определил этот случай класс:
case class Person(name: String, friends: Int)
мой маршрут в настоящее время выглядит следующим образом:
path("test") {
get { parameters('name, 'friend).as(Person) { p => complete(p) } }
}
это работает отлично, и я могу сделать ПОЛУЧАЕТЕ: локальный: 8080/test? name = jo & friends = 12 и получить то, что я ожидаю.
Я хочу, чтобы передать список друзьям идентификаторов, а не только количества друзей, так что я начал, изменяя мой случай класс следующим образом:
case class Person(name: String, friends: Array[Int])
и мой призыв к: локальному хосту: 8080/теста ? name = jo & друзья = 1,2
это не скомпилировано. Я получаю несоответствие типа: найдено: Person.type требуется: spray.routing.HListDeserializer [shapeless. :: [String, shapeless. :: [String, shapeless.HNil]],] get {parameters ('name , 'friend) .as (Person) {p => ^ комментарий: это указывает на P в .as (Person)
Любая идея о том, что я делаю неправильно? Мне бы хотелось получить ответ о том, как это сделать. Еще лучше будет объяснение того, что этот бесформенный тип, который он ищет. Благодаря