getFromResource

Signature

def getFromResource(resourceName: String)(implicit resolver: ContentTypeResolver): Route
def getFromResource(resourceName: String, contentType: ContentType, classLoader: ClassLoader = _defaultClassLoader): Route

Description

Completes GET requests with the content of the given classpath resource.

For details refer to getFromFile which works the same way but obtaining the file from the filesystem instead of the applications classpath.

Note that it’s not required to wrap this directive with get as this directive will only respond to GET requests.

Example

Scala
sourceimport akka.http.scaladsl.server.directives._
import ContentTypeResolver.Default

val route =
  path("logs" / Segment) { name =>
    getFromResource(s"$name.log") // uses implicit ContentTypeResolver
  }

// tests:
Get("/logs/example") ~> route ~> check {
  responseAs[String] shouldEqual "example file contents"
}
Java
sourceimport static akka.http.javadsl.server.Directives.getFromResource;
import static akka.http.javadsl.server.Directives.path;

final Route route = path(PathMatchers.segment("logs").slash(segment()), name ->
  getFromResource(name + ".log")
);

// tests:
testRoute(route).run(HttpRequest.GET("/logs/example"))
  .assertEntity("example file contents");
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.