Ich verwende hibernate validations
für die Validierung eingehender Anfragen im Frühjahr @RestController
.Wie validiere @RequestMapping-Anfragen nach Bedingung?
Problem: Ich möchte das gleiche DTO
Objekt in mehreren Endpunkten wiederverwenden. Aber validiere einige Felder nur nach Bedingung (zB nur an bestimmten Endpunkten).
@RestController
public class ProductsServlet {
@GetMapping("/avail/product")
public Object avail(@Valid ProductDTO product) {
//should validate id field only
}
@GetMapping("/sell/product")
public Object sell(@Valid(with = GroupFuture.class) ProductDTO product) {
//should validate id + from field
}
}
public class ProductDTO {
@NotNull
@NotBlank
private String id;
@Future(groups = GroupFuture.class)
private Date from;
}
Natürlich ist die @Valid(with = GroupFuture.class)
Anweisung ungültig. Aber es zeigt, was ich zu erreichen versuche.
Ist das möglich?
Im Frühjahr sollten Sie 'org.springframework.validation.annotation.Validated' verwenden können, mit dem Sie eine Gruppe angeben können. –
Können Sie ein Beispiel geben? – membersound