extractMaterializer • Akka HTTP (original) (raw)
Signature
def extractMaterializer: Directive1[Materializer]
Description
Extracts the MaterializerMaterializer from the RequestContextRequestContext, which can be useful when you want to run an Akka Stream directly in your route.
See also withMaterializer to see how to customise the used materializer for specific inner routes.
Example
Scala
source`` val route =
path("sample") {
extractMaterializer { materializer =>
complete {
// explicitly use the materializer
:
Source.single(s"Materialized by ${SystemMaterializer(system).materializer.##}!")
.runWith(Sink.head)(materializer)
}
}
} // default materializer will be used
// tests: Get("/sample") ~> route ~> check { responseAs[String] shouldEqual s"Materialized by ${SystemMaterializer(system).materializer.##}!" } ``
Java
source`import static akka.http.javadsl.server.Directives.extractMaterializer;
final Route route = path("sample", () -> extractMaterializer(mat -> onSuccess(() -> // explicitly use the materializer: Source.single("Materialized by " + mat.hashCode() + "!") .runWith(Sink.head(), mat), Directives::complete ) ) ); // default materializer will be used
testRoute(route).run(HttpRequest.GET("/sample")) .assertEntity("Materialized by " + materializer().hashCode()+ "!");`
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.