pathEndOrSingleSlash

pathEndOrSingleSlash

Signature

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

val route =
  pathPrefix("foo") {
    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"
}

Contents