1
resposta

Meu controller não aplica a validação que fiz em meu model

Estou tentando validar meu Model, que coloquei as anotações @NotEmpty(message ="o nome não pode ser null") @Size(min=1, max=32) @Column(name = "nome_artista") por exemplo porém ao enviar uma request no insomnia, ele não valida e retorna um 200 Ok (ou seja, o request deu certo) o maior problema está pois, mesmo null em algum campo,ele consegue enviar a requisição, e o outro relacionado ao tamanho, pois mesmo com max 40 em alguns campos, ele excede e envia o request mesmo assim:

Model Controller ![Insomnia] (https://cdn1.gnarususercontent.com.br/1/1221086/af640b2e-4c3c-4d8f-aa9e-b2b5440d33dc.png)

1 resposta

Oii, Rodrigo, tudo certo?

Primeiro, é importante verificar se você está utilizando a anotação @Valid no parâmetro do seu método no Controller que recebe o objeto a ser validado. Essa anotação é essencial para que o Spring Boot saiba que deve aplicar as validações especificadas nas anotações do Model antes de prosseguir com a execução do método.

No seu código de Controller, você deve ter algo semelhante a isso:

@PostMapping("/caminho")
public ResponseEntity<?> criarEntidade(@Valid @RequestBody TipoDaEntidade dados) {
    // seu código aqui
}

A anotação @Valid precisar estar presente e colocada junto ao @RequestBody ou outro binding que você esteja utilizando.

Além disso, verifique, por favor, se as dependências necessárias para validação estão presentes no seu projeto. Para projetos Spring Boot, geralmente você precisa ter a dependência spring-boot-starter-validation no seu arquivo pom.xml ou equivalente se estiver usando Gradle:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>

Após essas verificações, tente enviar novamente a requisição através do Insomnia.

Se outra dúvida surgir, estamos aqui no fórum.

Abraços.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.