akka/akka-http

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

Ouverte

#879 ouverte le 20 févr. 2017

 (0 commentaire) (0 réaction) (0 personne assignée)Scala (598 forks)batch import
1 - triagedhelp wantedt:routing

Métriques du dépôt

Stars
 (1 311 étoiles)
Métriques de merge PR
 (Merge moyen 1j 10h) (2 PRs mergées en 30 j)

Description

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

Guide contributeur