Как я могу разобрать запрос URI, содержащий конкретное слово
Я пытаюсь обработать запрос, содержащий слово "фильтр". В настоящее время я использую URL как http://localhost:9997/filter=....
и синтаксический анализ с использованием pathPrefix(fiter)
Но URL изменится и станет как http://localhost:9997/something../filter=
Поэтому здесь я не могу использовать pathPrefix(). Как я могу обработать этот тип пути в маршрутизации, чтобы любой URL, содержащий ключевое слово "фильтр", он мог обработать. Я очень плохо знаком с акка спрей. Пожалуйста, дайте мне знать о вашем мнении. заранее спасибо
1 ответ
Если строка, которую вы хотите сопоставить, всегда будет в конце, вы можете использовать "pathSuffix" (этого может быть достаточно для того, что вы хотите)
pathSuffix("filter") { ... }
Но если это может быть где-нибудь на пути, это не так просто. Одним из способов является использование сегментов:
path( Segment / "filter" / Segment ){ (prefix, postfix) => {...} }
Но это не совпадает, если фильтр на обоих концах: "фильтр / бла / бла" или "балх / бла / фильтр", но вы можете обойти, сопоставив с префиксом и суффиксом. Я полагаю, есть лучший способ, может быть, с пользовательской директивой.
Ознакомьтесь с http://spray.io/documentation/1.2.3/spray-routing/predefined-directives-alphabetically/.