Маршаллинг пользовательского класса case с помощью Scala Spray httpx

я пытаюсь упорядочить строку в собственный класс case, который у меня есть. Вот код, который я пытаюсь использовать

import spray.httpx.SprayJsonSupport._
import NflWeekJsonProtocol._
    path("playerScore") {
      get {
        parameters('gsisId.as[String] ?, 'week.as[NflWeek] ?, 'playerId.as[String]).as(PlayerScoreRequest) {
          playerScoreRequest : PlayerScoreRequest =>

        }
      }
    }

и вот ошибка, которую я получаю:

[error] /home/chris/dev/suredbits-dfs/src/main/scala/com/suredbits/dfs/nfl/scoring/NflPlayerScoringService.scala:40: too many arguments for method parameters: (pdm: spray.routing.directives.ParamDefMagnet)pdm.Out
[error]         parameters('gsisId.as[String] ?, 'week.as[NflWeek] ?, 'playerId.as[String]).as(PlayerScoreRequest) {
[error]                   ^
[error] one error found

NflWeekJsonProtocol представляет собой способ сериализации класса case NflWeek. Я думал, что это все, что мне нужно сделать, чтобы это заработало, что мне не хватает?

РЕДАКТИРОВАТЬ:

object NflWeekJsonProtocol extends DefaultJsonProtocol {
  implicit object NflWeekFormat extends RootJsonFormat[NflWeek] {
    override def read(jsValue: JsValue) = {
      jsValue match {
        case JsString(string) => NflWeekFactory.factory(string)
        case _ => throw new RuntimeException("NFLWeek should always be reprsented by a JsString")
      }
    }
    override def write(week: NflWeek) = {
      JsString(week.toString)
    }
  }
}

person Chris Stewart    schedule 12.10.2015    source источник
comment
Можете ли вы показать код в NflWeekJsonProtocol?   -  person Gabriele Petronella    schedule 12.10.2015
comment
@GabrielePetronella я добавил это в OP   -  person Chris Stewart    schedule 12.10.2015
comment
У вас есть JsonFormat для PlayerScoreRequest в области видимости?   -  person Gabriele Petronella    schedule 12.10.2015
comment
Да, контекст заключается в том, что я добавляю параметр NflWeek к существующей веб-службе. Все работало правильно, прежде чем я добавил week в качестве параметра запроса   -  person Chris Stewart    schedule 12.10.2015


Ответы (1)


спрей docs предполагает, что вам нужны скобки, а не квадратные скобки, при использовании пользовательского десериализатора, .as(NflWeek)

person corn_dog    schedule 13.10.2015