withPrecompressedMediaTypeSupport
Signature¶
def withPrecompressedMediaTypeSupport: Directive0
Description¶
Inspects the response entity and adds a Content-Encoding: gzip
response header if the entity’s media-type is precompressed with gzip and no Content-Encoding
header is present yet.
Example¶
sourceval svgz = compress("<svg/>", Coders.Gzip)
val route =
withPrecompressedMediaTypeSupport {
complete(HttpResponse(entity = HttpEntity(`image/svgz`, svgz)))
}
// tests:
Get("/") ~> route ~> check {
header[`Content-Encoding`] shouldEqual Some(`Content-Encoding`(gzip))
mediaType shouldEqual `image/svg+xml`
}
sourceimport static org.apache.pekko.http.javadsl.server.Directives.complete;
import static org.apache.pekko.http.javadsl.server.Directives.withPrecompressedMediaTypeSupport;
final ByteString svgz = Coder.Gzip.encode(ByteString.fromString("<svg/>"));
final Route route =
withPrecompressedMediaTypeSupport(
() ->
complete(
HttpResponse.create()
.withEntity(
HttpEntities.create(MediaTypes.IMAGE_SVGZ.toContentType(), svgz))));
// tests:
testRoute(route)
.run(HttpRequest.GET("/"))
.assertMediaType(MediaTypes.IMAGE_SVG_XML)
.assertHeaderExists(ContentEncoding.create(HttpEncodings.GZIP));
1.0.1