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