我是 scala 世界的新手,使用 http4s 开发我的应用程序的 REST 层。我正在使用 blaze 服务器来部署/发布服务。我需要在流到达我的 HttpService 方法之前在流中安装一个 servlet 过滤器或拦截器。我怎样才能做到这一点?
问问题
315 次
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 回答