这就是代码部分的样子
get{
respondWithMediaType(MediaTypes.`application/json`){
entity(as[HttpRequest]){
obj => complete{
println(obj)
"ok"
}
}
}
}~
我可以将请求映射到一个spray.http.HttpRequest对象,我可以从这个对象中提取uri但我想有一种更简单的方法来解析get请求中的参数而不是手动执行它。
例如,如果我的获取请求是
http://localhost:8080/url?id=23434&age=24
我希望能够从此请求中获取ID和年龄
答案 0 :(得分:30)
实际上你可以做得更好。在路由中有两个指令:parameter
和parameters
,我想差异很明显,您也可以使用一些修饰符:!
和?
。如果是!
,则表示必须提供此参数或请求将被拒绝,?
将返回一个选项,因此您可以在此情况下提供默认参数。例如:
val route: Route = {
(path("search") & get) {
parameter("q"!) { query =>
....
}
}
}
val route: Route = {
(path("search") & get) {
parameters("q"!, "filter" ? "all") { (query, filter) =>
...
}
}
}