【发布时间】:2019-04-25 21:07:50
【问题描述】:
我创建了两条Http4s 路由:
class FirstRoutes[F[_] : Async](service: FirstService[F]) extends Http4sDsl[F] {
def routes: HttpRoutes[F] = HttpRoutes.of[F] {
//... some code
}
}
class SecondRoutes[F[_] : Async] extends Http4sDsl[F] {
def routes: HttpRoutes[F] = HttpRoutes.of[F] {
//... some code
}
}
现在在我的main 方法中,我想这样称呼这条路线:
override def run(args: List[String]): IO[ExitCode] =
for {
_ <- {
val app = {
//...
val firstRoutes = new FirstRoutes[F](someService)
val secondRoutes = new SecondRoutes[F]
(firstRoutes.routes <+> secondRoutes.routes).orNotFound
}
但是当我编译这段代码时,我得到了一个错误:
Error:(26, 33) value <+> is not a member of org.http4s.HttpRoutes[Server.F]
(firstRoutes.routes <+> secondRoutes.routes).orNotFound
这对我来说很奇怪,因为当我在路由类上使用 ctrl+space 时,我通常可以使用这个 <+> 符号,而且我有很好的导入:
import cats.effect._
import cats.data._
import org.http4s.server.blaze.BlazeServerBuilder
import cats.effect._
import cats.implicits._
找不到解决此问题的方法并使用<+> 调用路由类。也许是intellij问题?有人可以帮我吗?
【问题讨论】:
标签: scala scala-cats http4s