authed路由中的http4sjson处理



我正在使用Scala 3http4s 1.0.0-M35。我想在json处理中使用auth。

val routes = AuthedRoutes.of[User, IO] {
case request@POST -> Root / "dialog" / LongVar(dialogId) / "send" as user => {
for {
sendMessageRequest <- request.as[SendMessageRequest]

但是得到错误

[error]    |        sendMessageRequest <- request.as[SendMessageRequest]
[error]    |                              ^^^^^^^^^^
[error]    |value as is not a member of org.http4s.ContextRequest[cats.effect.IO, repository.User], but could be made available as an extension method.

它建议一些进口:

[error]    |One of the following imports might fix the problem:
[error]    |
[error]    |  import cats.Functor.nonInheritedOps.toFunctorOps
[error]    |  import cats.Functor.ops.toAllFunctorOps
[error]    |  import cats.NonEmptyTraverse.ops.toAllNonEmptyTraverseOps
[error]    |  import cats.Traverse.ops.toAllTraverseOps
[error]    |  import cats.implicits.toFunctorOps
[error]    |  import cats.syntax.all.toFunctorOps
[error]    |  import cats.syntax.functor.toFunctorOps

但导入后,我有另一个错误:

sendMessageRequest类型为org.http4s.ContextRequest[cats.effect.IO, service.CreateDialogRequest]

如何在AuthedRoutes中使用json处理?

我解决了我的问题。只是:

request.req.as

最新更新