Динамический PathMatcher из String - PullRequest
3 голосов
/ 06 марта 2019

У меня есть тестовый сервер, который принимает ожидания во время выполнения и отвечает соответствующим образом при вызове ожидания. Ожидания хранятся в state. Вот маршрут:

val route: Route = ctx => {
  val routes = state.map { case (pathString, responses) =>
    get {
      path(pathString) {
         ...
      }
    }
  }
  concat(routes: _*)(ctx)
}

Этот подход работает, когда ожидаемый путь не имеет косых черт, например foo.html. Но когда у него более полный путь, например, foo/bar.html, тогда директива не будет совпадать.

Как правильно преобразовать заданную строку пути в PathMatcher?

Я пытался pathString.split("/").foldLeft(Neutral)(_ / _), но это привело к сбою простого случая foo.html.

1 Ответ

2 голосов
/ 06 марта 2019

PathMatchers.separateOnSlashes(String) предоставляется библиотекой и делает то, что мне нужно.

...