如何在 Akka-HTTP 中映射两个不同的 url:一个 url 有参数,另一个没有参数?
How to map two different urls in a Akka-HTTP: one url with param and the same without the param?
我想用相同的 URI 定义 2 个不同的 GET REST 端点,一个没有任何查询参数,另一个有查询参数。
例如:
http://host:port/resource/resourceID(没有查询参数的uri)
http://host:port/resource/resourceID?key=value (uri with query parameter)
如何使用scala在Akka-HTTP中实现上述要求,并且还需要URI中的Segment(resource ID)。
提前致谢。
由于您的 uri 可以带或不带查询参数,您可以做类似的事情
path("resource" / Segment) { resourceId =>
parameter("key".optional) { value => //value of type Option[String]
???
}
}
来自doc
"color".optional
(symbolic notation "color".?)
extract the optional value of parameter “color” as Option[String]
@cceneson 的解决方案对我有用。
如果您使用的 Akka-HTTP 版本高于 10.2.0,则使用
下面的解决方案
path("resource" / Segment) { resourceId =>
parameter("key".optional) { value => //value of type Option[String]
???
}
}
否则使用下面的解决方案
path("resource" / Segment) { resourceId =>
parameter("key".?) { value => //value of type Option[String]
???
}
}
我想用相同的 URI 定义 2 个不同的 GET REST 端点,一个没有任何查询参数,另一个有查询参数。
例如:
http://host:port/resource/resourceID(没有查询参数的uri)
http://host:port/resource/resourceID?key=value (uri with query parameter)
如何使用scala在Akka-HTTP中实现上述要求,并且还需要URI中的Segment(resource ID)。
提前致谢。
由于您的 uri 可以带或不带查询参数,您可以做类似的事情
path("resource" / Segment) { resourceId =>
parameter("key".optional) { value => //value of type Option[String]
???
}
}
来自doc
"color".optional (symbolic notation "color".?) extract the optional value of parameter “color” as Option[String]
@cceneson 的解决方案对我有用。
如果您使用的 Akka-HTTP 版本高于 10.2.0,则使用 下面的解决方案
path("resource" / Segment) { resourceId =>
parameter("key".optional) { value => //value of type Option[String]
???
}
}
否则使用下面的解决方案
path("resource" / Segment) { resourceId =>
parameter("key".?) { value => //value of type Option[String]
???
}
}