Значение decode не является членом org.http4s.AuthedRequest.
Я использую http4s
версия 0.18, с Circe и я получаю ошибку value decode is not a member of org.http4s.AuthedRequest
когда я преобразую тело JSON в case class
в пределах AuthedService
со следующим кодом:
// case class definition
case class UserUpdate(name: String)
import org.http4s.AuthedService
import org.http4s.circe._
val updateUserService: AuthedService[String, F] =
AuthedService {
case req @ PATCH -> Root / "mypath" as _ =>
req.decode[UserUpdate] { userUpdate =>
...
}
}
1 ответ
Решение
Оказывается, что, как указано в документации, AuthedService
работает на AuthedRequest
что эквивалентно (User, Request[F])
Итак, что нужно сделать, это позвонить decode
на request
часть AuthedRequest
, увидеть:
// case class definition
case class UserUpdate(name: String)
import org.http4s.AuthedService
import org.http4s.circe._
val updateUserService: AuthedService[String, F] =
AuthedService {
case authReq @ PATCH -> Root / "mypath" as _ =>
authReq.req.decode[UserUpdate] { userUpdate =>
...
}
}