Validando Payloads com Spring Boot 3.4.0

O Spring Boot 3.4.0 traz melhorias significativas no suporte à validação de dados em APIs REST. A validação de payloads é essencial para garantir a integridade dos dados recebidos e prevenir falhas em etapas posteriores da aplicação.

Por que validar o payload?

Ao expor endpoints REST, é comum receber dados inconsistentes, ausentes ou fora do formato esperado. A validação automática com anotações melhora a robustez da aplicação e reduz a necessidade de lógica manual para verificação de entrada.

Configuração inicial

Certifique-se de ter o seguinte no pom.xml:

<dependency>
  <groupId>jakarta.validation</groupId>
  <artifactId>jakarta.validation-api</artifactId>
</dependency>

O Spring Boot já traz a implementação padrão do Bean Validation (Hibernate Validator), então não é necessário configurar manualmente.

Exemplo prático

Suponha que você tenha um endpoint para cadastro de usuários. Veja como aplicar validações:

@RestController
@RequestMapping("/usuarios")
public class UsuarioController {

    @PostMapping
    public ResponseEntity<Void> criar(@RequestBody @Valid UsuarioRequest request) {
        // lógica de persistência
        return ResponseEntity.status(HttpStatus.CREATED).build();
    }
}

Classe de requisição com validações:

public class UsuarioRequest {

    @NotBlank
    private String nome;

    @Email
    @NotBlank
    private String email;

    @Size(min = 8)
    private String senha;

    // getters e setters
}

Tratamento de erros

Para tratar erros de validação e retornar mensagens customizadas, use um @ControllerAdvice:

@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(MethodArgumentNotValidException.class)
    public ResponseEntity<Map<String, String>> handleValidationException(MethodArgumentNotValidException ex) {
        Map<String, String> errors = new HashMap<>();
        ex.getBindingResult().getFieldErrors().forEach(error ->
            errors.put(error.getField(), error.getDefaultMessage())
        );
        return ResponseEntity.badRequest().body(errors);
    }
}

Novidades no Spring Boot 3.4.0

  • Suporte refinado para validação com records Java.
  • Integração aprimorada com o Jakarta Bean Validation 3.0.
  • Melhor suporte ao uso de validação com endpoints reativos (WebFlux).

Conclusão

A validação de payloads com Spring Boot 3.4.0 é simples e poderosa. Utilizando anotações como @NotBlank, @Email e @Size, você garante a integridade dos dados e melhora a experiência de uso da sua API. Com o suporte aprimorado para Jakarta Validation e melhorias no tratamento de erros, essa prática se torna ainda mais eficiente e padronizada.

Implemente desde o início e evite problemas no futuro!

Deixe um comentário