【问题标题】:Custom result error in play.api.mvc.BodyParsers (scala)play.api.mvc.BodyParsers(scala)中的自定义结果错误
【发布时间】:2018-08-28 16:57:02
【问题描述】:

我在我的 Scala 项目中使用 play.api.mvc.BodyParsers。但问题是如果解析失败,它总是会抛出默认错误结果,如“Json 验证错误......”。我想要做的是在 json 验证失败的情况下发送我的自定义结果。

def myAction = (authAction)(parse.json(myObject.reads)) { request =>
   //some code here
   Ok
}

假设如果 myObject 解析失败,我希望我的结果是 Forbidden("invalid params in myObject")。解析“成功”后,有没有办法在不检查 request.body.myObject 的情况下做到这一点?

【问题讨论】:

    标签: json scala model-view-controller playframework


    【解决方案1】:

    是的。您可以在动作的代码块内进行解析,而不是在动作的正文解析器参数中进行解析:

    def myAction = (authAction)(parse.json) { request =>
      request.body.validate[MyObject](MyObject.reads) match {
        case JsSuccess(myObject, _) =>
          //some code here
          Ok
        case JsError(_) => Forbidden("invalid params in myObject")
      }
    }
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-08
      • 2011-04-04
      • 1970-01-01
      • 2020-06-10
      • 2018-11-13
      • 1970-01-01
      • 1970-01-01
      • 2018-08-14
      相关资源
      最近更新 更多