如何从查询 url 或 spray.io 中的正文中读取请求参数

How to read request param from query url or body in spray.io

我正在设计简单的端点,其中一些请求可以包含 param 作为查询参数或表单正文的一部分。任何解决方法的提示 - spray 是否支持这样的用例?如果两者都缺失,则应返回正确的错误。

当然我可以自己做,只是检查它们是否都存在,然后选择一个或者如果两个都不存在则抛出异常,但希望框架能做得更好!

是的,spray 通过 anyParams 指令支持它!这是 link 文档:http://spray.io/documentation/1.2.3/spray-routing/any-param-directives/anyParams/

这是文档中的示例

val route =
  anyParams('name, 'age.as[Int])((name, age) =>
    complete(s"$name is $age years old")
  )