akka/akka-http

Provide Segments path directive that matches 0 to n segments regardless of leading slashes

Offen

#879 geöffnet am 20.02.2017

 (0 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Scala (598 Forks)batch import
1 - triagedhelp wantedt:routing

Repository-Metriken

Stars
 (1.311 Sterne)
PR-Merge-Metriken
 (Durchschn. Merge 1T 10h) (2 gemergte PRs in 30 T)

Beschreibung

The existing Segments PathMatcher is mostly useful when trailing slashes are enforced everywhere. When no trailing slashes it is a bit more complicated right now to get a list of segments.

The implementation can be basically this:

def pathSegments: Directive1[List[String]] = (Slash ~ Segment).repeat(0, 128, PathMatchers.Neutral) ~ PathEnd // or PathEndOrSingleSlash?

It would allow to use

pathPrefix("tree") {
  pathSegments { segments =>
    ...
  }
}

which would match all of

  • /tree
  • /tree/abc
  • /tree/abc/def

but not

  • /tree/
  • /tree/abc/

/cc @lihaoyi

Contributor Guide