responseEncodingAccepted • Akka HTTP (original) (raw)
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
source`` val route = responseEncodingAccepted(gzip) { complete("content") }
Get("/") ~> route ~> check {
responseAs[String] shouldEqual "content"
}
Get("/") ~> Accept-Encoding
(deflate) ~> route ~> check {
rejection shouldEqual UnacceptedResponseEncodingRejection(gzip)
} ``
Java
source`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.