我正在使用akka 指令来匹配特定的路径模式:
/item/quantity
例子是
/apples/100
/bananas/200
可能的项目(例如“apples”、“bananas”、...)事先不知道,因此使用硬编码项目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]
路径元素,但是我必须手动提取列表头和列表尾,这看起来很不雅。
预先感谢您的考虑和回复。