
34 - Anotações para validações
Olá pessoal! Nesta aula vamos aprender como validar os dados que chegam até nossa API.
Para garantir que as informações enviadas estejam corretas e completas, utilizamos anotações de validação. Essas anotações são aplicadas diretamente sobre os atributos da nossa classe de modelo e ajudam a evitar problemas como campos vazios, formatos inválidos ou valores inconsistentes.
Com o uso da dependência spring-boot-starter-validation
, temos acesso a diversas anotações que simplificam esse processo. A seguir, você confere uma tabela com as principais validações disponíveis e exemplos de como utilizá-las:
Tabela de Anotações de Validação
Anotação | Descrição | Exemplo de Uso |
---|---|---|
@NotNull | O campo não pode ser nulo | @NotNull private String nome; |
@NotBlank | Não pode ser nulo, nem vazio e nem conter apenas espaços | @NotBlank private String nome; |
@NotEmpty | Não pode ser nulo nem vazio (permite espaços) | @NotEmpty private String cidade; |
@Size(min = x, max = y) | Define o tamanho mínimo e/ou máximo da String, lista, array, etc. | @Size(min = 3, max = 20) private String nome; |
@Min(valor) | Define o valor mínimo numérico | @Min(18) private int idade; |
@Max(valor) | Define o valor máximo numérico | @Max(100) private int idade; |
@Positive | O número deve ser positivo | @Positive private int quantidade; |
@PositiveOrZero | O número deve ser positivo ou zero | @PositiveOrZero private int estoque; |
@Negative | O número deve ser negativo | @Negative private int temperatura; |
@NegativeOrZero | O número deve ser negativo ou zero | @NegativeOrZero private int saldo; |
Valida se o valor é um e-mail válido | @Email private String email; |
|
@Pattern | Valida usando expressão regular | @Pattern(regexp="\\d{11}") private String cpf; |
@Past | A data deve ser no passado | @Past private LocalDate nascimento; |
@Future | A data deve ser no futuro | @Future private LocalDate agendamento; |
@AssertTrue | O valor booleano deve ser true | @AssertTrue private boolean aceitouTermos; |
@AssertFalse | O valor booleano deve ser false | @AssertFalse private boolean bloqueado; |
Exemplos de annotation @Pattern
A anotação @Pattern é muito interessante, pois podemos customizar validações. Veja abaixo alguns exemplos:
@Pattern(regexp = "\\d{11}", message = "CPF deve conter 11 dígitos numéricos") private String cpf; @Pattern(regexp = "\\d{2}/\\d{2}/\\d{4}", message = "Data de nascimento deve estar no formato dd/MM/yyyy") private String dataNascimento; @Pattern(regexp = "\\(\\d{2}\\) \\d{4,5}-\\d{4}", message = "Telefone deve estar no formato (99) 99999-9999 ou (99) 9999-9999") private String telefone; @Pattern(regexp = "\\d{5}-\\d{3}", message = "CEP deve estar no formato 99999-999") private String cep;
Clique aqui para se tornar membro do canal
Abaixo segue nossa aula no YouTube: