Значение decode не является членом org.http4s.AuthedRequest. - PullRequest
0 голосов
/ 27 февраля 2019

Я использую 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 Ответ

0 голосов
/ 27 февраля 2019

Оказывается, что, как указано в документации , 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 =>
          ...
        }
    }
...