object PathDirectives extends PathDirectives

Source
PathDirectives.scala
Linear Supertypes
Content Hierarchy
Ordering
  1. Grouped
  2. Alphabetic
  3. By Inheritance
Inherited
  1. PathDirectives
  2. PathDirectives
  3. ToNameReceptacleEnhancements
  4. ImplicitPathMatcherConstruction
  5. PathMatchers
  6. AnyRef
  7. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. abstract class NumberMatcher[T] extends PathMatcher1[T]

    Definition Classes
    PathMatchers

Value Members

  1. object HexIntNumber extends NumberMatcher[Int]

    A PathMatcher that efficiently matches a number of hex-digits and extracts their (non-negative) Int value.

    A PathMatcher that efficiently matches a number of hex-digits and extracts their (non-negative) Int value. The matcher will not match 0 digits or a sequence of digits that would represent an Int value larger than Int.MaxValue.

    Definition Classes
    PathMatchers
  2. object HexLongNumber extends NumberMatcher[Long]

    A PathMatcher that efficiently matches a number of hex-digits and extracts their (non-negative) Long value.

    A PathMatcher that efficiently matches a number of hex-digits and extracts their (non-negative) Long value. The matcher will not match 0 digits or a sequence of digits that would represent an Long value larger than Long.MaxValue.

    Definition Classes
    PathMatchers
  3. object IntNumber extends NumberMatcher[Int]

    A PathMatcher that efficiently matches a number of digits and extracts their (non-negative) Int value.

    A PathMatcher that efficiently matches a number of digits and extracts their (non-negative) Int value. The matcher will not match 0 digits or a sequence of digits that would represent an Int value larger than Int.MaxValue.

    Definition Classes
    PathMatchers
  4. object LongNumber extends NumberMatcher[Long]

    A PathMatcher that efficiently matches a number of digits and extracts their (non-negative) Long value.

    A PathMatcher that efficiently matches a number of digits and extracts their (non-negative) Long value. The matcher will not match 0 digits or a sequence of digits that would represent an Long value larger than Long.MaxValue.

    Definition Classes
    PathMatchers
  5. object PathEnd extends PathMatcher0

    A PathMatcher that matches the very end of the requests URI path.

    A PathMatcher that matches the very end of the requests URI path.

    Definition Classes
    PathMatchers
  6. object Remaining extends PathMatcher1[String]

    A PathMatcher that matches and extracts the complete remaining, unmatched part of the request's URI path as an (encoded!) String.

    A PathMatcher that matches and extracts the complete remaining, unmatched part of the request's URI path as an (encoded!) String. If you need access to the remaining unencoded elements of the path use the RemainingPath matcher!

    Definition Classes
    PathMatchers
  7. object RemainingPath extends PathMatcher1[Path]

    A PathMatcher that matches and extracts the complete remaining, unmatched part of the request's URI path.

    A PathMatcher that matches and extracts the complete remaining, unmatched part of the request's URI path.

    Definition Classes
    PathMatchers
  8. object Segment extends PathMatcher1[String]

    A PathMatcher that matches if the unmatched path starts with a path segment.

    A PathMatcher that matches if the unmatched path starts with a path segment. If so the path segment is extracted as a String.

    Definition Classes
    PathMatchers
  9. object Slash extends PathMatcher0

    A PathMatcher that matches a single slash character ('/').

    A PathMatcher that matches a single slash character ('/').

    Definition Classes
    PathMatchers
  10. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  11. final def ##: Int
    Definition Classes
    AnyRef → Any
  12. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  13. val DoubleNumber: PathMatcher1[Double]

    A PathMatcher that matches and extracts a Double value.

    A PathMatcher that matches and extracts a Double value. The matched string representation is the pure decimal, optionally signed form of a double value, i.e. without exponent.

    Definition Classes
    PathMatchers
  14. val JavaUUID: PathMatcher1[UUID]

    A PathMatcher that matches and extracts a java.util.UUID instance.

    A PathMatcher that matches and extracts a java.util.UUID instance.

    Definition Classes
    PathMatchers
  15. val Neutral: PathMatcher0

    A PathMatcher that always matches, doesn't consume anything and extracts nothing.

    A PathMatcher that always matches, doesn't consume anything and extracts nothing. Serves mainly as a neutral element in PathMatcher composition.

    Definition Classes
    PathMatchers
  16. def Segments(min: Int, max: Int): PathMatcher1[List[String]]

    A PathMatcher that matches between min and max (both inclusively) path segments (separated by slashes) as a List[String].

    A PathMatcher that matches between min and max (both inclusively) path segments (separated by slashes) as a List[String]. If there are more than count segments present the remaining ones will be left unmatched. If the path has a trailing slash this slash will *not* be matched.

    Definition Classes
    PathMatchers
  17. def Segments(count: Int): PathMatcher1[List[String]]

    A PathMatcher that matches the given number of path segments (separated by slashes) as a List[String].

    A PathMatcher that matches the given number of path segments (separated by slashes) as a List[String]. If there are more than count segments present the remaining ones will be left unmatched. If the path has a trailing slash this slash will *not* be matched.

    Definition Classes
    PathMatchers
  18. val Segments: PathMatcher1[List[String]]

    A PathMatcher that matches up to 128 remaining segments as a List[String].

    A PathMatcher that matches up to 128 remaining segments as a List[String]. This can also be no segments resulting in the empty list. If the path has a trailing slash this slash will *not* be matched.

    Definition Classes
    PathMatchers
  19. implicit def _regex2PathMatcher(regex: Regex): PathMatcher1[String]

    Creates a PathMatcher that consumes (a prefix of) the first path segment if the path begins with a segment (a prefix of) which matches the given regex.

    Creates a PathMatcher that consumes (a prefix of) the first path segment if the path begins with a segment (a prefix of) which matches the given regex. Extracts either the complete match (if the regex doesn't contain a capture group) or the capture group (if the regex contains exactly one). If the regex contains more than one capture group the method throws an IllegalArgumentException.

    Definition Classes
    ImplicitPathMatcherConstruction
  20. implicit def _segmentStringToPathMatcher(segment: String): PathMatcher0

    Creates a PathMatcher that consumes (a prefix of) the first path segment (if the path begins with a segment).

    Creates a PathMatcher that consumes (a prefix of) the first path segment (if the path begins with a segment).

    Definition Classes
    ImplicitPathMatcherConstruction
  21. implicit def _string2NR(string: String): NameReceptacle[String]
    Definition Classes
    ToNameReceptacleEnhancements
    Annotations
    @implicitAmbiguous()
  22. implicit def _stringExtractionPair2PathMatcher[T](tuple: (String, T)): PathMatcher1[T]

    Creates a PathMatcher that consumes (a prefix of) the first path segment (if the path begins with a segment) and extracts a given value.

    Creates a PathMatcher that consumes (a prefix of) the first path segment (if the path begins with a segment) and extracts a given value.

    Definition Classes
    ImplicitPathMatcherConstruction
  23. implicit def _stringNameOptionReceptacle2PathMatcher(nr: NameOptionReceptacle[String]): PathMatcher0

  24. implicit def _symbol2NR(symbol: Symbol): NameReceptacle[String]
    Definition Classes
    ToNameReceptacleEnhancements
  25. implicit def _valueMap2PathMatcher[T](valueMap: Map[String, T]): PathMatcher1[T]

    Creates a PathMatcher from the given Map of path segments (prefixes) to extracted values.

    Creates a PathMatcher from the given Map of path segments (prefixes) to extracted values. If the unmatched path starts with a segment having one of the maps keys as a prefix the matcher consumes this path segment (prefix) and extracts the corresponding map value. For keys sharing a common prefix the longest matching prefix is selected.

    Definition Classes
    ImplicitPathMatcherConstruction
  26. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  27. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
  28. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  29. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  30. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  31. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  32. def ignoreTrailingSlash: Directive0

    Tries to match the inner route and if it fails with an empty rejection, it tries it again adding (or removing) the trailing slash on the given path.

    Tries to match the inner route and if it fails with an empty rejection, it tries it again adding (or removing) the trailing slash on the given path.

    Definition Classes
    PathDirectives
  33. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  34. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  35. def not(self: PathMatcher[_]): PathMatcher0
    Definition Classes
    PathMatchers
  36. def nothingMatcher[L](implicit arg0: Tuple[L]): PathMatcher[L]

    A PathMatcher that never matches anything.

    A PathMatcher that never matches anything.

    Definition Classes
    PathMatchers
  37. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  38. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  39. def path[L](pm: PathMatcher[L]): Directive[L]

    Applies the given PathMatcher to the remaining unmatched path after consuming a leading slash.

    Applies the given PathMatcher to the remaining unmatched path after consuming a leading slash. The matcher has to match the remaining path completely. If matched the value extracted by the PathMatcher is extracted on the directive level.

    Definition Classes
    PathDirectives
  40. def pathEnd: Directive0

    Rejects the request if the unmatchedPath of the RequestContext is non-empty, or said differently: only passes on the request to its inner route if the request path has been matched completely.

    Rejects the request if the unmatchedPath of the RequestContext is non-empty, or said differently: only passes on the request to its inner route if the request path has been matched completely.

    Definition Classes
    PathDirectives
  41. def pathEndOrSingleSlash: Directive0

    Only passes on the request to its inner route if the request path has been matched completely or only consists of exactly one remaining slash.

    Only passes on the request to its inner route if the request path has been matched completely or only consists of exactly one remaining slash.

    Note that trailing slash and non-trailing slash URLs are not the same, although they often serve the same content. It is recommended to serve only one URL version and make the other redirect to it using redirectToTrailingSlashIfMissing or redirectToNoTrailingSlashIfPresent directive.

    For example:

    def route = {
      // redirect '/users/' to '/users', '/users/:userId/' to '/users/:userId'
      redirectToNoTrailingSlashIfPresent(Found) {
        pathPrefix("users") {
          concat(
            pathEnd {
              // user list ...
            },
            path(UUID) { userId =>
              // user profile ...
            }
          )
        }
      }
    }

    For further information, refer to:

    Definition Classes
    PathDirectives
    See also

    https://webmasters.googleblog.com/2010/04/to-slash-or-not-to-slash.html

  42. def pathPrefix[L](pm: PathMatcher[L]): Directive[L]

    Applies the given PathMatcher to a prefix of the remaining unmatched path after consuming a leading slash.

    Applies the given PathMatcher to a prefix of the remaining unmatched path after consuming a leading slash. The matcher has to match a prefix of the remaining path. If matched the value extracted by the PathMatcher is extracted on the directive level.

    Definition Classes
    PathDirectives
  43. def pathPrefixTest[L](pm: PathMatcher[L]): Directive[L]

    Checks whether the unmatchedPath of the RequestContext has a prefix matched by the given PathMatcher.

    Checks whether the unmatchedPath of the RequestContext has a prefix matched by the given PathMatcher. In analogy to the pathPrefix directive a leading slash is implied.

    Definition Classes
    PathDirectives
  44. def pathSingleSlash: Directive0

    Only passes on the request to its inner route if the request path consists of exactly one remaining slash.

    Only passes on the request to its inner route if the request path consists of exactly one remaining slash.

    Definition Classes
    PathDirectives
  45. def pathSuffix[L](pm: PathMatcher[L]): Directive[L]

    Applies the given PathMatcher to a suffix of the remaining unmatchedPath of the RequestContext.

    Applies the given PathMatcher to a suffix of the remaining unmatchedPath of the RequestContext. If matched the value extracted by the PathMatcher is extracted and the matched parts of the path are consumed. Note that, for efficiency reasons, the given PathMatcher must match the desired suffix in reversed-segment order, i.e. pathSuffix("baz" / "bar") would match /foo/bar/baz!

    Definition Classes
    PathDirectives
  46. def pathSuffixTest[L](pm: PathMatcher[L]): Directive[L]

    Checks whether the unmatchedPath of the RequestContext has a suffix matched by the given PathMatcher.

    Checks whether the unmatchedPath of the RequestContext has a suffix matched by the given PathMatcher. However, as opposed to the pathSuffix directive the matched path is not actually "consumed". Note that, for efficiency reasons, the given PathMatcher must match the desired suffix in reversed-segment order, i.e. pathSuffixTest("baz" / "bar") would match /foo/bar/baz!

    Definition Classes
    PathDirectives
  47. def rawPathPrefix[L](pm: PathMatcher[L]): Directive[L]

    Applies the given matcher directly to a prefix of the unmatched path of the RequestContext (i.e.

    Applies the given matcher directly to a prefix of the unmatched path of the RequestContext (i.e. without implicitly consuming a leading slash). The matcher has to match a prefix of the remaining path. If matched the value extracted by the PathMatcher is extracted on the directive level.

    Definition Classes
    PathDirectives
  48. def rawPathPrefixTest[L](pm: PathMatcher[L]): Directive[L]

    Checks whether the unmatchedPath of the RequestContext has a prefix matched by the given PathMatcher.

    Checks whether the unmatchedPath of the RequestContext has a prefix matched by the given PathMatcher. However, as opposed to the pathPrefix directive the matched path is not actually "consumed".

    Definition Classes
    PathDirectives
  49. def redirectToNoTrailingSlashIfPresent(redirectionType: Redirection): Directive0

    If the request path ends with a slash, redirect to the same uri without trailing slash in the path.

    If the request path ends with a slash, redirect to the same uri without trailing slash in the path.

    Note, however, that this directive doesn't apply to a URI consisting of just a single slash. HTTP does not support empty target paths, so that browsers will convert a URI such as http://example.org to http://example.org/ adding the trailing slash.

    Redirecting the single slash path URI would lead to a redirection loop.

    Caveat: pathSingleSlash directive will only match on the root path level inside of this directive.

    Definition Classes
    PathDirectives
  50. def redirectToTrailingSlashIfMissing(redirectionType: Redirection): Directive0

    If the request path doesn't end with a slash, redirect to the same uri with trailing slash in the path.

    If the request path doesn't end with a slash, redirect to the same uri with trailing slash in the path.

    Caveat: path without trailing slash and pathEnd directives will not match inside of this directive.

    Definition Classes
    PathDirectives
  51. def separateOnSlashes(string: String): PathMatcher0

    Converts a path string containing slashes into a PathMatcher that interprets slashes as path segment separators.

    Converts a path string containing slashes into a PathMatcher that interprets slashes as path segment separators.

    Definition Classes
    PathMatchers
  52. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  53. def toString(): String
    Definition Classes
    AnyRef → Any
  54. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  55. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  56. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from PathDirectives

Inherited from ToNameReceptacleEnhancements

Inherited from PathMatchers

Inherited from AnyRef

Inherited from Any

Path directives

Path matchers

Path matcher implicits

Ungrouped