私は、スプレイカスタムディレクティブ0を使用してルートハンドラのフィルタを持っています。グローバルフィルタスプレイからAkka-Httpへの移行2
このカスタムディレクティブの目的は、リクエスト処理時間を計るためのリクエストフィルタを構築することです。 インサイド
がカスタムディレクティブをスプレー、私はのHttpResponse =>のHttpResponseのパラメータを取るためにwithHttpResponseMappedRequestContextのの機能を使用することができ、そして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)が、withHttpResponseMapped、または "HttpResponse => HttpResponse"のパラメータをとり、新しいRequestContextオブジェクトを返すことができるRequestContextオブジェクトの関数を見つけることができません。 Akka-Http Migrationでこの問題を解決するのに役立つサポートされている機能やアプローチはありますか?
ありがとうございました。
、ヨハン、ありがとうございました。それは今働く。本当に助けに感謝します。 Alan – Alan
私は非常に似たフローを試みていますが、代わりに次のエラーが発生しています。 'タイプの不一致。 [エラー]が見つかりました:akka.http.scaladsl.server.Directive [Unit] required:akka.http.scaladsl.server.RequestContext => scala.concurrent.Future [akka.http.scaladsl.server.RouteResult] extractRequestContext.flatMap { requestContext => ' – gregsilin