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