考虑:
@PostMapping("/track")
public void sendTopicCallback(@RequestBody @Validated Request request): CompletableFuture<ResponseEntity<Void>>
并且
Request
是:
public class Request {
@Valid
private List<MyObjects> objects;
}
如何验证请求而不是返回 400 错误代码,而是获取与原始数据映射的错误的有效对象
List
和 List
?
我坐在火车上,没有带电脑,所以我只能给你指个方向。
Spring 内部发生的事情是抛出一个
ConstraintViolationException
。此异常包含验证器发现的所有违规行为。这些信息可以用来计算您需要的信息。
当
RestController
抛出异常时发生的第二件事是由异常处理程序处理,该异常处理程序将其映射到适当的 http 响应。如果未定义处理程序,则使用默认处理程序。
定义此类处理程序的方法有多种,最好在官方文档中进行解释。
您可以在此处为
ConstraintViolationException
定义一个处理程序,您可以在其中创建所需的响应。