Я создал два 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 + пробел в классе маршрута, а также у меня есть хороший импорт:
import cats.effect._
import cats.data._
import org.http4s.server.blaze.BlazeServerBuilder
import cats.effect._
import cats.implicits._
Не удается выяснить, как это исправить, и используйте <+>
для вызова классов маршрутов. Может быть, это интеллигентная проблема? Кто-нибудь может мне помочь?