首页 > 解决方案 > 如何在 Akka-HTTP 中映射两个不同的 url:一个带参数的 url 和相同的不带参数的 url?

问题描述

我想用相同的 URI 定义 2 个不同的 GET REST 端点,一个没有任何查询参数,另一个有查询参数。

前任:

http://host:port/resource/resourceID (没有查询参数的uri)

http://host:port/resource/resourceID?key=value (带有查询参数的uri)

如何使用 scala 在 Akka-HTTP 中实现上述要求,并且还需要 URI 中的 Segment(resource ID)。

提前致谢。

标签: scalarestakka-http

解决方案


由于您的 uri 可以带有或不带有查询参数,因此您可以执行类似的操作

path("resource" / Segment) { resourceId => 
    parameter("key".optional) { value => //value of type Option[String]
       ???
    }
}

文档

"color".optional (symbolic notation "color".?) 提取参数“color”的可选值作为Option[String]


推荐阅读