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!