gpt4 book ai didi

java - Scala 与 Spray Routing - 访问 GET 参数?

转载 作者:行者123 更新时间:2023-11-30 02:37:31 24 4
gpt4 key购买 nike

我目前正在开发一个使用 Spray 路由在 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。

最佳答案

我通常使用parameters directive将数据解析为包含所有相关数据的案例类:

case class MyParams(msg: String, url: String, userId: Int)

parameters(
"msg".as[String],
"url".as[String],
"userId".as[Int]
).as[MyParams] {
myParams =>
// Here you have the case class containing all the data, already parsed.
}

关于java - Scala 与 Spray Routing - 访问 GET 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42648423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com