http:完整的请求与流量

假设我已经建立了一个任意复杂的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)

http://doc.akka.io/docs/akka/2.4.2/scala/http/routing-dsl/overview.html

你在寻找route2HandlerFlow还是Route.handlerFlow

我相信Route.handlerFlow将基于implicit s工作。

例如/

val serverBinding = Http().bindAndHandle(interface = "0.0.0.0", port = 8080, 
handler = route2HandlerFlow(mainFlow()))
链接地址: http://www.djcxy.com/p/90981.html

上一篇: http: complete request with flow

下一篇: What is a subnormal floating point number?