我没有在开发早期遇到这个问题,但只是注意到在调试另一个问题时发生了这种情况。这发生在所有REST端点上,但下面是一个示例:
@RestController
@RequestMapping("/editlisting")
public class EditParkingSpaceListingController {
@Autowired
ParkingSpaceRepository parkingSpaceRepository;
@Autowired
ParkingSpaceListingRepository parkingSpaceListingRepository;
@RequestMapping(method = RequestMethod.PUT)
public ResponseEntity<String> editParking(@RequestBody ParkingSpaceListingClient pslc, BindingResult result) {
if (result.hasErrors()) {
return new ResponseEntity<String>("", HttpStatus.BAD_REQUEST);
}
// Code to save pslc data to database.
现在,如果我以身体
发送HTTP请求{ }
我得到200响应,当我检查MongoDB时,集合中有一个新的空文档。如果我发送一个没有括号的空体,正如预期的那样它将返回400.如果我发送一个带有POJO中不存在的随机垃圾数据的主体,BindingResult似乎没有收到错误并且仍然有一个新的空白文档创建。
答案 0 :(得分:0)
您需要按照以下步骤进行输入文档验证:
(1)将javax.validation
包约束(如@NotNull
,@Size
等)添加到ParkingSpaceListingClient
bean类中。
(2)将@Validated annotation
添加到控制器方法中,将验证错误捕获到BindingResult
对象中。
您可以查看here以获取有关输入验证的更多详细信息。