如何在Akka HTTP中使用pathPrefix / rawPathPrefix匹配字符串?

时间:2019-01-15 13:19:29

标签: scala akka akka-http

这有效:

rawPathPrefix("Ad(" ~ LongNumber ~ ")") { id =>

id现在是Long,但这不起作用:

rawPathPrefix("Ad(" ~ String ~ ")") { id =>

id现在是RequestContext,而不是String

2 个答案:

答案 0 :(得分:1)

一种方法是使用正则表达式模式来捕获路径前缀Ad()之间的一个或多个字符:

pathPrefix("""Ad\((.+)\)""".r) { id =>
  ...
}

例如,id是发送到以下请求的字符串"12-34b"

http://host:port/Ad(12-34b)

答案 1 :(得分:-1)

您需要使用细分。

path("hello"/Segment) 

检查以下内容: https://doc.akka.io/docs/akka-http/current/routing-dsl/path-matchers.html#examples