0
我有一個使用Spray Custom Directive0的路由處理器過濾器。全球過濾器從噴霧遷移到Akka-Http 2
此自定義指令的目的是構建一個請求過濾器來定時請求處理時間。
裏面的噴自定義指令,我可以使用RequestContext的的功能withHttpResponseMapped採取的HttpResponse =>的HttpResponse的參數,withHttpResponseMapped會返回一個新的RequestContext對象,像這樣:
def timeRequestInterval: Directive0 = {
mapRequestContext { context =>
val requestTimer = new RequestTimer(context.request)
context.withHttpResponseMapped { response =>
requestTimer.stop()
response.mapEntity { entity =>
entity
}
}
}
現在,我嘗試從噴霧自定義指令遷移到阿卡-HTTP(2.4.8),但我無法找到HttpResponseMapped或RequestContext對象中可以接受「HttpResponse => HttpResponse」參數並返回新的RequestContext對象的任何函數。是否有任何支持的功能或方法可以幫助我解決Akka-Http遷移中的這個問題?
感謝您提前給予幫助。
謝謝你,約翰。它現在有效。非常感謝您的幫助。 Alan – Alan
我在嘗試一個非常類似的流程,而是得到以下錯誤: 'type mismatch; [error] found:akka.http.scaladsl.server.Directive [Unit] required:akka.http.scaladsl.server.RequestContext => scala.concurrent.Future [akka.http.scaladsl.server.RouteResult] extractRequestContext.flatMap { requestContext =>' – gregsilin