This documentation regards version 10.1, however the current version is 10.7.0.
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). For a comparison between path directives check Overview of path directives.
It is equivalent to pathEnd | pathSingleSlash
but slightly more efficient.
Example
- Scala
-
source
val route = pathPrefix("foo") { concat( pathEndOrSingleSlash { complete("/foo") }, path("bar") { complete("/foo/bar") } ) } // tests: Get("/foo") ~> route ~> check { responseAs[String] shouldEqual "/foo" } Get("/foo/") ~> route ~> check { responseAs[String] shouldEqual "/foo" } Get("/foo/bar") ~> route ~> check { responseAs[String] shouldEqual "/foo/bar" }
- Java