trait PathDirectives extends PathMatchers with ImplicitPathMatcherConstruction with ToNameReceptacleEnhancements

Source
PathDirectives.scala
Linear Supertypes
ToNameReceptacleEnhancements, ImplicitPathMatcherConstruction, PathMatchers, AnyRef, Any
Type Hierarchy
Ordering
  1. Grouped
  2. Alphabetic
  3. By Inheritance
Inherited
  1. PathDirectives
  2. ToNameReceptacleEnhancements
  3. ImplicitPathMatcherConstruction
  4. PathMatchers
  5. AnyRef
  6. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  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. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from PathDirectives toany2stringadd[PathDirectives] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  13. def ->[B](y: B): (PathDirectives, B)
    Implicit
    This member is added by an implicit conversion from PathDirectives toArrowAssoc[PathDirectives] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  14. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  15. 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
  16. 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
  17. 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
  18. 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
  19. 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
  20. 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
  21. 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
  22. 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
  23. implicit def _string2NR(string: String): NameReceptacle[String]
    Definition Classes
    ToNameReceptacleEnhancements
    Annotations
    @implicitAmbiguous()
  24. 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
  25. implicit def _stringNameOptionReceptacle2PathMatcher(nr: NameOptionReceptacle[String]): PathMatcher0

  26. implicit def _symbol2NR(symbol: Symbol): NameReceptacle[String]
    Definition Classes
    ToNameReceptacleEnhancements
  27. 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
  28. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  29. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
  30. def ensuring(cond: (PathDirectives) => Boolean, msg: => Any): PathDirectives
    Implicit
    This member is added by an implicit conversion from PathDirectives toEnsuring[PathDirectives] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  31. def ensuring(cond: (PathDirectives) => Boolean): PathDirectives
    Implicit
    This member is added by an implicit conversion from PathDirectives toEnsuring[PathDirectives] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  32. def ensuring(cond: Boolean, msg: => Any): PathDirectives
    Implicit
    This member is added by an implicit conversion from PathDirectives toEnsuring[PathDirectives] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  33. def ensuring(cond: Boolean): PathDirectives
    Implicit
    This member is added by an implicit conversion from PathDirectives toEnsuring[PathDirectives] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  34. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  35. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  36. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  37. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  38. 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.

  39. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  40. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  41. def not(self: PathMatcher[_]): PathMatcher0
    Definition Classes
    PathMatchers
  42. def nothingMatcher[L](implicit arg0: Tuple[L]): PathMatcher[L]

    A PathMatcher that never matches anything.

    A PathMatcher that never matches anything.

    Definition Classes
    PathMatchers
  43. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  44. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  45. 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.

  46. 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.

  47. 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:

    See also

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

  48. 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.

  49. 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.

  50. def pathSingleSlash: Directive0

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

  51. 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!

  52. 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!

  53. 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.

  54. 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".

  55. 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.

  56. 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.

  57. 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
  58. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  59. def toString(): String
    Definition Classes
    AnyRef → Any
  60. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  61. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  62. 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)

  2. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from PathDirectives toStringFormat[PathDirectives] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @deprecated @inline()
    Deprecated

    (Since version 2.12.16) Use formatString.format(value) instead of value.formatted(formatString), or use the f"" string interpolator. In Java 15 and later, formatted resolves to the new method in String which has reversed parameters.

  3. def [B](y: B): (PathDirectives, B)
    Implicit
    This member is added by an implicit conversion from PathDirectives toArrowAssoc[PathDirectives] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use -> instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

Inherited from ToNameReceptacleEnhancements

Inherited from PathMatchers

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromPathDirectives to any2stringadd[PathDirectives]

Inherited by implicit conversion StringFormat fromPathDirectives to StringFormat[PathDirectives]

Inherited by implicit conversion Ensuring fromPathDirectives to Ensuring[PathDirectives]

Inherited by implicit conversion ArrowAssoc fromPathDirectives to ArrowAssoc[PathDirectives]

Path directives

Path matchers

Path matcher implicits

Ungrouped