
36 - Formatar validações
Nesta aula, vamos aprender como formatar as validações no Spring Boot para que, quando ocorrerem erros de validação, possamos retornar uma resposta personalizada com o status adequado.
Para isso, utilizamos a anotação @RestControllerAdvice e o tratamento de exceções específicas, como a MethodArgumentNotValidException, para capturar e formatar os erros de validação.
Estrutura do Código
O código a seguir mostra como tratamos as exceções de validação e retornamos uma resposta customizada quando ocorrem erros de validação nos parâmetros de entrada:
package br.com.api.pessoa.configuracao;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.validation.FieldError;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseStatus;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import java.util.HashMap;
import java.util.Map;
@RestControllerAdvice
public class ValidarRequisicoes {
@ExceptionHandler(MethodArgumentNotValidException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
public ResponseEntity
Explicação do Código
A classe ValidarRequisicoes é um componente especial que se aplica a todas as exceções de validação que podem ocorrer nos controladores REST da aplicação. Quando um erro de validação ocorre, o método handleValidationExceptions é acionado.
Esse método captura a exceção MethodArgumentNotValidException, que é lançada quando há erro nos parâmetros enviados para um método de controlador. Dentro do método, criamos um mapa para armazenar os erros de validação, onde a chave é o nome do campo e o valor é a mensagem de erro.
Personalizando a Resposta
Ao final, a resposta com o status HTTP 400 (Bad Request) é retornada com os erros de validação em formato de mapa. Isso garante que, quando o cliente faz uma requisição inválida, ele recebe informações detalhadas sobre os campos que falharam na validação.
Benefícios
Essa abordagem permite que a aplicação seja mais robusta ao lidar com entradas inválidas, proporcionando uma experiência melhor para os desenvolvedores que consomem a API, pois eles recebem mensagens claras sobre o que está errado com os dados fornecidos.
Clique aqui para se tornar membro do canal
Abaixo segue nossa aula no YouTube: