pathEndOrSingleSlash

pathEndOrSingleSlash

Description

Only passes the request to its inner route if the unmatched path of the RequestContext is either empty or contains only one single slash.

This directive is a simple alias for rawPathPrefix(Slash.? ~ PathEnd) and is mostly used on an inner-level to discriminate "path already fully matched" from other alternatives (see the example below).

It is equivalent to pathEnd | pathSingleSlash but slightly more efficient.

Example

final Route route = 
    route(
        pathPrefix("foo", () -> 
            route(
                pathEndOrSingleSlash(() -> complete("/foo")),
                path("bar", () -> complete("/foo/bar"))
            )
        )
    );
// tests:
testRoute(route).run(HttpRequest.GET("/foo")).assertEntity("/foo");
testRoute(route).run(HttpRequest.GET("/foo/")).assertEntity("/foo");
testRoute(route).run(HttpRequest.GET("/foo/bar")).assertEntity("/foo/bar");

Contents