0
我在斯卡拉世界的新手,並使用http4s開發我的應用程序的REST層。我正在使用Blaze服務器來部署/發佈服務。我需要在它到達我的HttpService方法之前在流中裝入一個servlet過濾器或攔截器。我怎樣才能做到這一點?如何安裝在大火服務器(http4s)Servlet過濾器
我在斯卡拉世界的新手,並使用http4s開發我的應用程序的REST層。我正在使用Blaze服務器來部署/發佈服務。我需要在它到達我的HttpService方法之前在流中裝入一個servlet過濾器或攔截器。我怎樣才能做到這一點?如何安裝在大火服務器(http4s)Servlet過濾器
http4s圖書館所謂middleware功能。中間件功能是您的服務的一個包裝。 例如,你有簡單的端點:
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包是否已存在的中間件。