0

我使用http4s的是 Circe 0.18 版,当我使用以下代码value decode is not a member of org.http4s.AuthedRequest将 json 正文转换为 a 时出现错误:case classAuthedService

  // 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 =>
          ...
        }
    }
4

1 回答 1

1

事实证明,正如文档所指定的那样,AuthedService操作AuthedRequest相当于(User, Request[F]),因此需要做的是调用decoderequest部分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 =>
          ...
        }
    }
于 2019-02-27T16:25:58.857 回答