gpt4 book ai didi

akka-stream - akka-http:完整的请求流

转载 作者:行者123 更新时间:2023-12-04 04:16:12 25 4
gpt4 key购买 nike

假设我已经设置了一个任意复杂的 Flow[HttpRequest, HttpResponse, Unit] .

我已经可以使用上述流程来处理传入的请求

Http().bindAndHandle(flow, "0.0.0.0", 8080)

现在我想添加日志记录,利用一些现有的指令,比如 logRequestResult("my-service"){...}有没有办法将此指令与我的流程结合起来?我想我正在寻找另一个指令,类似于
def completeWithFlow(flow: Flow): Route

这可能吗?

注意: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)

关于akka-stream - akka-http:完整的请求流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36294428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com