1
resposta

@NotNull do spring não valida o campo Boolean #REST, #SPRING, #SWAGGER

Pessoal, o @NotNull do spring não valida meu campo do tipo boolean de jeito nenhum, todos os outros campos são validados normalmente e retornam 400 bad request quando retiro eles do body do POST, mas o boolean retorna 500 internal server error null.

Usei o swagger para gerar a api:

Swagger:

ProgramaRequest:
    type: "object"
    properties:
        nomePrograma:
            type: "string"
            example: "Programa teste 1"
        flHabilitado:
            type: boolean
            example: "true"
    required:
        - nomePrograma
        - flHabilitado        

E o código é gerado aparentemente certo, com o @NotNull e com o @Valid:

ProgramaRequestRepresentation :

@ApiModelProperty(example= "Programa Teste 1", required = true, value = "")
@NotNull
public String getNomePrograma() { return nomePrograma; }

@ApiModelProperty(example= "true", required = true, value = "")
@NotNull
public Boolean isFlHabilitado() { return flHabilitado; }

E o cara que usa o Programa Request, ou seja, o Controller:

default ResponseEntity<ProgramaResponseRepresentation> _salvarPrograma(@ApiParam(value = "salvarPrograma" ,required=true ) @Valid @RequestBody ProgramaRequestRepresentation body) {
    return salvarPrograma(body);
}

// Override this method
default ResponeEntity<ProgramaResponseRepresentation> salvarPrograma(ProgramaRequestRepresentation body) {
//... minha logica de salvar (repository.salvarPrograma)
}

Existe algum bug ou algo do tipo com os campos boolean? achei esses dois links que me levantaram essa suspeita:

https://nieldw.medium.com/the-problem-with-doing-bean-validation-on-a-java-boolean-52988ec2e0e5

https://stackoverflow.com/questions/57381893/validation-for-required-boolean-attributes-doesnt-work

1 resposta
O post foi fechado por inatividade. Para continuar o assunto, recomendamos criar um novo tópico. Bons Estudos!