mapHttpResponseHeaders

Changes the list of response headers that was generated by the inner route.

Signature

def mapHttpResponseHeaders(f: List[HttpHeader]  List[HttpHeader]): Directive0 

Description

The mapHttpResponseHeaders directive is used as a building block for Custom Directives to transform the list of response headers that was generated by the inner route.

See Directives transforming the response for similar directives.

Example

// adds all request headers to the response
val echoRequestHeaders = extract(_.request.headers).flatMap(respondWithHeaders)

val removeIdHeader = mapHttpResponseHeaders(_.filterNot(_.lowercaseName == "id"))
val route =
  removeIdHeader {
    echoRequestHeaders {
      complete("test")
    }
  }

Get("/") ~> RawHeader("id", "12345") ~> RawHeader("id2", "67890") ~> route ~> check {
  header("id") === None
  header("id2").get.value === "67890"
}