mapRouteResultFuture
シグネチャ
説明
:ref:`-mapRouteResult-`の非同期版です。
:ref:`-mapRouteResultWith-`と同様ですが、``RouteResult ⇒ Future[RouteResult]``のかわりに``Future[RouteResult] ⇒ Future[RouteResult]``として、複数の変換を組み合わせたり、失敗したルート結果から``recover``することを望む場合に役立ちます。
同様のディレクティブは:ref:`Result Transformation Directives`を参照してください。
例
val tryRecoverAddServer = mapRouteResultFuture { fr =>
fr recover {
case ex: IllegalArgumentException =>
Complete(HttpResponse(StatusCodes.InternalServerError))
} map {
case Complete(res) => Complete(res.addHeader(Server("MyServer 1.0")))
case rest => rest
}
}
val route =
tryRecoverAddServer {
complete("Hello world!")
}
// tests:
Get("/") ~> route ~> check {
status shouldEqual StatusCodes.OK
header[Server] shouldEqual Some(Server("MyServer 1.0"))
}
Contents