0

私は scala の世界の初心者で、アプリケーションの REST レイヤーを開発するために http4s を使用しています。サービスの展開/公開にブレイズサーバーを使用しています。フローが HttpService メソッドに到達する前に、サーブレット フィルターまたはインターセプターをフローにマウントする必要があります。どうやってやるの?

4

1 に答える 1

0

http4s ライブラリには、いわゆるミドルウェア機能があります。ミドルウェア機能は、サービスのラッパーです。たとえば、単純なエンドポイントがあります。

 val helloWorldService = HttpService {
  case GET -> Root / "hello" / name =>
    Ok(s"Hello, $name.")
}

ミドルウェアを適用するには、次のようにします。

     val service: HttpService = middleware(authedService)

      val authedService: AuthedService[User] =
        AuthedService {
          case GET -> Root / "welcome" as user => Ok(s"Welcome, ${user.name}")
        }
      val middleware = AuthMiddleware(authUser)

そして、あなたの実装する必要があるだけですauthUser:

val authUser: Service[Request, User] = ???

既存のミドルウェアについては、org.http4s.server.middleware パッケージを確認してください。

于 2017-08-16T14:21:28.270 に答える