我正在尝试验证在其余端点中传递的列表的大小。
@PostMapping("/test")
public ResponseEntity<String> test(@RequestBody @Size(min = 2) List<Document> docs){
return new ResponseEntity<>(
"Tested",
HttpStatus.OK
);
}
看起来它不起作用。无论我在端点发送的文档数量是多少都可以获得200 OK。
有人知道如何让它运作起来吗?
答案 0 :(得分:0)
因为您正在更新资源
,所以它必须是PUT@PutMapping("/test")
public ResponseEntity<String> update(@Validated @RequestBody @Size(min = 2) List<Document> docs) {
return new ResponseEntity<>(
"Tested",
HttpStatus.OK
);
}
或
public class DocumentRequestDto {
@Valid
@Size(min = 2)
private List<Document> documents;
public List<Document> getDocuments() {
return documents;
}
public void setDocuments(List<Document> documents) {
this.documents = documents;
}
}
和控制器
@PutMapping("/test")
public ResponseEntity<String> update(@RequestBody DocumentRequestDto requestDto) {
return new ResponseEntity<>(
"Tested",
HttpStatus.OK
);
}
答案 1 :(得分:0)
尽量不要使用像这样的请求体...更好地使用列表作为其实例变量的pojo或DTO,并使用@Valid注释和bindingResult来验证任何实体。 这种方法不具备可扩展性。