私は、@RestController
の着信要求を検証するためにhibernate validations
を使用しています。@RequestMappingリクエストを条件で検証する方法は?
問題:複数のエンドポイントに同じDTO
オブジェクトを再利用したいとします。しかし、条件によってのみ(例えば、特定のエンドポイントでのみ)一部のフィールドを検証する。
@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;
}
もちろん、@Valid(with = GroupFuture.class)
ステートメントは無効です。しかし、それは私が達成しようとしていることを示しています。
これは可能ですか?
Springでは、グループを指定できる 'org.springframework.validation.annotation.Validated'を使うことができます。 –
例を挙げてください。 – membersound