我正在使用scala 2.0.2 play框架实现web api.我想提取并验证一些get参数.为此,我使用了一个游戏"形式",它允许我定义可选字段.
问题:对于那些可选字段,如果未传递参数,我需要定义默认值.该代码旨在正确解析这三个用例:
我想出了以下代码:
def test = Action {
implicit request =>
case class CData(top:Int)
val p = Form(
mapping(
"top" -> optional(number)
)((top) => CData($top.getOrElse(42))) ((cdata:CData) => Some(Some(cdata.top)))
).bindFromRequest()
Ok("all done.")
}
Run Code Online (Sandbox Code Playgroud)
代码有效,但绝对不优雅.为了设置缺少的请求参数的默认值,有很多锅炉板正在进行.
谁能建议一个更清洁,更巧合的解决方案?