Ste*_*tti 9 akka-stream akka-http
假设我已经设置了一个任意复杂的Flow[HttpRequest, HttpResponse, Unit].
我已经可以使用所述流来处理传入的请求了
Http().bindAndHandle(flow, "0.0.0.0", 8080)
Run Code Online (Sandbox Code Playgroud)
现在我想添加日志记录,利用一些现有的指令,比如logRequestResult("my-service"){...}
有没有办法将这个指令与我的流程结合起来?我想我正在寻找另一个指令,一些类似的东西
def completeWithFlow(flow: Flow): Route
Run Code Online (Sandbox Code Playgroud)
这有可能吗?
注意:logRequestResult就是一个例子,我的问题适用于任何可能有用的指令.
结果是一种(也许是唯一的)方法是连接和实现新流,并将提取的请求提供给它.以下示例
val myFlow: Flow[HttpRequest, HttpResponse, NotUsed] = ???
val route =
get {
logRequestResult("my-service") {
extract(_.request) { req ?
val futureResponse = Source.single(req).via(myFlow).runWith(Sink.head)
complete(futureResponse)
}
}
}
Http().bindAndHandle(route, "127.0.0.1", 9000)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1096 次 |
| 最近记录: |