当我使用json时,如果json无效,我会以格式发送错误:
error: { error: { obj.email: [{args: "", msg: "error.email"}] } //1
但是使用json验证器,我有一个标准方法,可以验证数据(例如,如果数据库中存在电子邮件)。 如何统一所有以json形式发送错误的方法(1)?
例如带有操作的控制器:
implicit val loginReads: Reads[Login] = (
(__ \ "email").read[String](email) and
(__ \ "password").read[String]
)(Login.apply _)
def login() = Action { request =>
request.body.asJson match {
case Some(login) => login.validate[Login] fold (
err => BadRequest(Json.toJson(Map("error" -> JsError.toFlatJson(err)))),
result => if (!isPresentInDb(result.email)) {
//how to handle error and send it as json error form: "error" -> JsError.toFlatJson(err)
} else {
//success
}
)
case None => //bad request
}
}
//login class
case class Login(email: String, password: String)
答案 0 :(得分:0)
三个选项: