responseEncodingAccepted

Signature

def responseEncodingAccepted(encoding: HttpEncoding): Directive0

Description

Passes the request to the inner route if the request accepts the argument encoding. Otherwise, rejects the request with an UnacceptedResponseEncodingRejection(encoding).

Example

Scala
val route = responseEncodingAccepted(gzip) { complete("content") }

Get("/") ~> route ~> check {
  responseAs[String] shouldEqual "content"
}
Get("/") ~> `Accept-Encoding`(deflate) ~> route ~> check {
  rejection shouldEqual UnacceptedResponseEncodingRejection(gzip)
}
Java
import static akka.http.javadsl.server.Directives.complete;
import static akka.http.javadsl.server.Directives.responseEncodingAccepted;

final Route route = responseEncodingAccepted(HttpEncodings.GZIP, () ->
  complete("content")
);

// tests:
testRoute(route).run(HttpRequest.GET("/"))
  .assertEntity("content");
runRouteUnSealed(route,
                 HttpRequest.GET("/")
                   .addHeader(AcceptEncoding.create(HttpEncodings.DEFLATE)))
  .assertRejections(Rejections.unacceptedResponseEncoding(HttpEncodings.GZIP));
Found an error in this documentation? The source code for this page can be found here. Please feel free to edit and contribute a pull request.