Primeiramente para podermos utilizar o @Valid do Spring, precisamos adicionar a dependência no POM do projeto.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
Com a dependência adicionada podemos agora utilizar o @Valid nos nossos controllers.
Nos códigos abaixo vou mostrar um controller básico e uma classe que vamos utilizar a validação.
@RestController
@RequestMapping(value = "v1", produces = MediaType.APPLICATION_JSON_VALUE)
public class TicketController {
.....
@PostMapping("/events")
public ResponseEntity<HttpStatus> saveEvents(
@Valid @RequestBody @JsonProperty("events") final EventsRequestJson eventsJson) {
...
}
}
public class EventsRequestJson {
@NotEmpty @NotNull @Valid private List<EventJson> events;
}
public class EventJson {
@NotEmpty @NotNull private String event;
private String value;
}
Como visto nos códigos acima, quando precisamos validar uma sub-classe, precisamos adicionar o @Valid também na assinatura dela.
0 comentários