mapRequest

mapRequest

シグネチャ

説明

内部ルートによって処理される前にリクエストを変換します。

``mapRequest``ディレクティブは内部ルートによって処理される前にリクエストを変換するための:ref:カスタムディレクティブ 'のビルディングブロックとして使用されます。 ` request.uri``パラメータを変更しても内部ルートのパスマッチングには影響しません。これは、一致しないパスがルートに渡される ``RequestContext``値の別のフィールドだからです。 `` RequestContext``の不一致なパスや他のフィールドを変更するには、:ref:`-mapRequestContext-`ディレクティブを使います。

同様のディレクティブの概要は:ref:Request Transforming Directives を参照してください。

def transformToPostRequest(req: HttpRequest): HttpRequest = req.copy(method = HttpMethods.POST)
val route =
  mapRequest(transformToPostRequest) {
    extractRequest { req =>
      complete(s"The request method was ${req.method.name}")
    }
  }

Get("/") ~> route ~> check {
  responseAs[String] shouldEqual "The request method was POST"
}

Contents