使用喷淋路由访问获取参数的java Scala?
我目前正在开发一个内置于Scala中的应用程序,该应用程序带有喷洒路由
因此,对于通过POST发送的JSON文档,访问主体中的变量非常容易,如下所示:
respondWithMediaType(`application/json`) {
entity(as[String]) { body =>
val msg = (parse(body) \ "msg").extract[String]
val url = (parse(body) \ "url").extractOpt[String]
然而,我现在正试图用GET编写一个额外的查询,在访问随查询发送的参数时遇到了一些问题
所以,我是以
get {
respondWithMediaType(`application/json`) {
parameterSeq { params =>
var paramsList = params.toList
因此,这工作得很好,因为我可以按顺序访问GET参数(仅通过访问索引)——问题是,不幸的是,我认为我们不能期望GET参数总是按正确的顺序发送
列表本身按以下格式打印
List((msg,this is a link to google), (url,http://google.com), (userid,13))
有没有简单的方法可以访问这些参数?例如,沿着以下路线的东西
var message = paramsList['msg']
println(message) //returns "this is a link to google"
还是我完全错了
如果这是一个愚蠢的问题,我深表歉意——我最近才切换到Scala,并且仍然在熟悉它,并且重新熟悉Java
# 1 楼答案
要构建路由,可以使用^{} 指令。我不确定这是否是您想要的,无论如何,您可以将其用作:
Spray指令可以很容易地组合,因此您可以使用任意方式组合它们
我希望这对你有帮助
# 2 楼答案
我通常使用parameters directive将数据解析为包含所有相关数据的case类: