Scala 如何匹配Akka HTTP中的所有路径

Scala 如何匹配Akka HTTP中的所有路径,scala,akka-http,Scala,Akka Http,大多数Akka HTTP示例表明,使用path定义路由非常容易 我从 val路由= 路径(“你好”){ 完整的( HttpEntity( ContentTypes.`text/html(UTF-8)`, “向akka问好(http”)) } 但是,以上仅适用于“/hello”,我希望匹配所有可能的路径或URL,而不仅仅是“hello”。空字符串“””仅与根路径匹配,“*”与文本路径“/*”匹配。路径的参数是必需的,不能简单地忽略。有很多方法可以实现这一点。我相信下面展示了一些排序方式,从最优先

大多数Akka HTTP示例表明,使用
path
定义
路由非常容易

我从

val路由=
路径(“你好”){
完整的(
HttpEntity(
ContentTypes.`text/html(UTF-8)`,
“向akka问好(http”))
}

但是,以上仅适用于“/hello”,我希望匹配所有可能的路径或URL,而不仅仅是“hello”。空字符串“
”仅与根路径匹配,
“*”
与文本路径“/*”匹配。路径
的参数是必需的,不能简单地忽略。

有很多方法可以实现这一点。我相信下面展示了一些排序方式,从最优先到最不优先

使用其他类型的指令 最简单的解决方案需要知道路由可以是任意的,而不仅仅是。 因此,只需完全删除
路径
,即可修改原始示例以获得所需结果:

val route =
  complete(
    HttpEntity(
      ContentTypes.`text/html(UTF-8)`,
      "<h1>Say hello to akka-http</h1>"))
也可以使用正则表达式:

val route =
  path(".*".r) { _ =>
    complete(
      HttpEntity(
        ContentTypes.`text/html(UTF-8)`,
        "<h1>Say hello to akka-http</h1>"))
  }
val route =
  path(Remaining) { _ =>
    complete(
      HttpEntity(
        ContentTypes.`text/html(UTF-8)`,
        "<h1>Say hello to akka-http</h1>"))
  }
val route =
  path(".*".r) { _ =>
    complete(
      HttpEntity(
        ContentTypes.`text/html(UTF-8)`,
        "<h1>Say hello to akka-http</h1>"))
  }
val route =
  pathPrefix("") {
    complete(
      HttpEntity(
        ContentTypes.`text/html(UTF-8)`,
        "<h1>Say hello to akka-http</h1>"))
  }