У меня есть простой код, который возвращает ошибку json, когда customerId отсутствует в RequestBody.
VO класс:
public class OrderVO {
private int orderId;
@NotNull(message = "CustomerId Cant be null")
private Long customerId;
}
Метод контроллера:
@RequestMapping(value="/testOrderbyOrderid", method=RequestMethod.GET,produces=MediaType.APPLICATION_JSON_VALUE)
public void testOrderJson (@Valid @RequestBody OrderVO orderVO ) {
}
В настоящее время, когда customerId отсутствует в RequestBody, структура JSON возвращается, как показано ниже:
{
"timestamp": "2019-05-14T17:08:01.318+0000",
"status": 400,
"error": "Bad Request",
"errors": [
{
"codes": [ ],
"arguments": [ ],
"defaultMessage": "CustomerId Cant be null",
"objectName": "orderVO",
"field": "customerId",
"rejectedValue": null,
"bindingFailure": false,
"code": "NotNull"
}
],
"message": "Validation failed for object='orderVO'. Error count: 1",
"path": "/testOrderbyOrderid"
}
как я могу изменить вышеуказанную структуру Json, возвращаемую @Notnull, на структуру JSON, показанную ниже:
{
"timestamp": "2019-05-14T17:08:01.318+0000",
"status": 400,
"error": "Bad Request",
"message": "CustomerId Cant be null"
}
Редактировать - я уже знаю, что мы можем выбросить пользовательское исключение и обработать его в ControllerAdvice, но примите во внимание, что если количество полей, необходимых для проверки = 20, объем кода, необходимый для проверки исключения null & throw, также увеличится, код выглядит некрасиво. Вот почему я разместил этот Qn.