Я использую директивы akka для соответствия определенному шаблону пути:
/item/quantity
Примеры были бы
/apples/100
/bananas/200
Возможные элементы (например, яблоки, бананы и т. д.) заранее неизвестны, поэтому жесткое кодирование элементов с помощью path
невозможно.
Однако я не могу найти PathMatcher, который извлекает заголовок пути. Я ищу что-то в форме
val route =
get {
path(PathHeadAsString) { item : String =>
path(IntNumber) { qty : Int =>
complete(s"item: $item quantity: $qty")
} ~ complete("no quantity specified")
} ~ complete("no item specified")
}
Где
Get("/apples/100") ~> route ~> check {
responseAs[String] shouldEqual "item: apples quantity: 100"
}
Есть ли способ извлечь первый сегмент пути?
Сопоставитель path(segment)
не будет соответствовать, если количество находится в пути.
Я, очевидно, мог бы использовать path(segments)
для получения List[String]
элементов пути, но тогда мне пришлось бы вручную извлекать начало и конец списка, что кажется неэлегантным.
Заранее благодарю за внимание и ответ.