Customizando a resposta da validação
ara que possamos customizar as mensagens, criaremos uma classe chamada FieldMassage no pacote de dto.
public class FieldMessage {
//name ou price
private String fieldName;
private String message;
public FieldMessage(String fieldName, String message) {
this.fieldName = fieldName;
this.message = message;
}
public String getFieldName() {
return fieldName;
}
public String getMessage() {
return message;
}
}Só que são várias mensagens para serem exibidas. Com isso, precisamos criar uma Lista de FieldMessage.
Criaremos uma classe chamada ValidationError. Ela será uma sub-classe de CustomError. Ou seja, terá TUDO que o CustomError tem + a lista de erros, veja:
O que acontece agora é o seguinte. Na nossa classe ControllerExceptionHandler, nós iremos alterar o método. (LEMBRE-SE, ESTE MÉTODO ALTERADO É PARA O RETORNO DO JSON)
Antes, nós instanciávamos o erro em um construtor CustomError, veja:
Nós iremos retirar o CustomError e instanciar um ValidationError no seu lugar.
Além disso, para que possamos adicionar os erros na lista, iremos fazer o seguinte.
O método MethodArgumentNotValidException, possui dentro dele uma lista de erros.
Nós iremos percorrer essa lista e adicionar dentro da nossa FieldMessage, veja:
Ao fazer a requisição no Postman:
Atualizado
