respondWithHeader

Signature

def respondWithHeader(responseHeader: HttpHeader): Directive0 

Description

Adds a given HTTP header to all responses coming back from its inner route.

This directive transforms HttpResponseHttpResponse and ChunkedResponseStart messages coming back from its inner route by adding the given HttpHeaderHttpHeader instance to the headers list.

See also respondWithHeaders if you’d like to add more than one header.

Example

Scala
sourceval route =
  path("foo") {
    respondWithHeader(RawHeader("Funky-Muppet", "gonzo")) {
      complete("beep")
    }
  }

// tests:
Get("/foo") ~> route ~> check {
  header("Funky-Muppet") shouldEqual Some(RawHeader("Funky-Muppet", "gonzo"))
  responseAs[String] shouldEqual "beep"
}
Java
sourceimport static org.apache.pekko.http.javadsl.server.Directives.complete;
import static org.apache.pekko.http.javadsl.server.Directives.path;
import static org.apache.pekko.http.javadsl.server.Directives.respondWithDefaultHeader;

final Route route =
    path(
        "foo",
        () ->
            respondWithHeader(
                RawHeader.create("Funky-Muppet", "gonzo"), () -> complete("beep")));

testRoute(route)
    .run(HttpRequest.GET("/foo"))
    .assertHeaderExists("Funky-Muppet", "gonzo")
    .assertEntity("beep");