Scala 如何在API-Lift框架中提取POST参数

Scala 如何在API-Lift框架中提取POST参数,scala,rest,lift,post-parameter,Scala,Rest,Lift,Post Parameter,嗨,我在Lift中使用以下api: case“api”:“all”:\uget req=>for{ 瓦尔在之后,如果你不理解理解如何在Scala中工作,请考虑以下内容: scala>valx:Option[String]=Some(“x”) x:选项[String]=Some(x) scala>valy:Option[String]=None y:选项[字符串]=无 scala>for(xx)我不能使用后者,因为如果其中一个参数不在URL中,我需要一个默认值。但是第一个参数不起作用,因为它表示o

嗨,我在Lift中使用以下api:

case“api”:“all”:\uget req=>for{

瓦尔在

之后,如果你不理解理解如何在Scala中工作,请考虑以下内容:

scala>valx:Option[String]=Some(“x”)
x:选项[String]=Some(x)
scala>valy:Option[String]=None
y:选项[字符串]=无

scala>for(xx)我不能使用后者,因为如果其中一个参数不在URL中,我需要一个默认值。但是第一个参数不起作用,因为它表示openOr不是字符串的成员。对于.openOr(“defaultvalue”)之后的行。是否需要:req.param(“after”).openOr(“default”)[INFO]found:String[INFO]required:?{val flatMap:?}[INFO]注意,隐式转换不适用,因为它们是不明确的:[INFO]类型(String)net.liftweb.http.js.JE.Str[INFO]的对象JE中的方法strToS和类型(String)scala.runtime.RichString[INFO]的对象Predef中的方法stringWrapper都是从String到{val flatMap:?}的可能的转换函数[INFO]val,我已经尝试过了,但是我得到了那个错误,所以不确定它为什么不工作。我让它工作了。我做的是:case“api”:“events”:“all”::uu-Get-req=>JsonResponse(json(eventsResponseLimitAfterBefore(req)),然后我定义了这个函数如下:def eventsResponseLimitAfterBefore(params:HasParams)={val after=params.param(“after”)openOr/*value*/val before=params.param(“before”)openOr/*value*/val limit=(params.param(“limit”)openOr“25”).toInt