Tratamento Exception

Nós iremos utilizar o ResourceExceptionHandler (os dados que retorna no Postman conforme tínhamos feito no outro projeto).

Só tem uma coisa, e se for mais de um erro?

Para isso, usaremos a propriedade "e". Ela possui vários atributos tais como: getBindingResult, onde dentro dela, podemos resgatar "getFieldErrors", uma lista de erros (que é onde colocaremos os nossos).

Criaremos um for para percorrer essa lista (esses FieldErros) e tratá-los!

Além disso, criaremos uma classe auxiliar dentro de Exceptions do controller: FieldMessage.

E para completar, criaremos um Objeto de erro (ainda dentro do mesmo pacote), que terá TUDO que o StandError tem + uma lista de FieldMessage.

O fieldName é o campo que está erro: price, name ou whatever.

Agora no ExceptionHandler muda. O retorno não é mais StandartError e sim ValidationError (criado acima).

Novo retorno do Postman passando um preço e nome inválido:

Atualizado