Ошибка пользовательского результата в play.api.mvc.BodyParsers (scala) - PullRequest
0 голосов
/ 28 августа 2018

Я использую play.api.mvc.BodyParsers для своего проекта Scala. Но дело в том, что при сбое синтаксического анализа всегда выдается результат ошибки по умолчанию, например «Ошибка проверки Json ...». Что я хочу сделать, это отправить свой собственный Результат в случае неудачной проверки JSON.

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

Допустим, что при сбое синтаксического анализа myObject я хочу, чтобы мой результат был запрещен («недопустимые параметры в myObject»). Есть ли способ сделать это без проверки request.body.myObject после синтаксического анализа "успешно"?

1 Ответ

0 голосов
/ 28 августа 2018

Да. Вместо синтаксического анализа аргумента парсера тела действия можно вместо этого выполнить синтаксический анализ внутри блока кода действия:

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")
  }
}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...