Spring 数据 REST Bean 验证

use*_*786 5 java validation rest spring spring-data-rest

考虑一个Person具有name注释为的属性的实体@NotNull。然后是一个简单的PersonRepository,这个 repo 用 Spring Data Rest 公开。

当我POST创建一个 new 时Person,如果name属性是nullaValidationException按预期发生。但是我在客户端上实际得到的是一个内部服务器错误(500),并且该消息是TransactionSystemException在异常链中发生的很晚的消息。

我希望得到的是一个错误请求(400),其中包含实际的ValidationException和所有有用的信息,以便客户可以知道发布的数据有什么问题。

似乎是将自定义的验证与SDR作为解释的方式在这里。但问题是,这不是自定义验证器,而是在要求存储库保存数据时发生的标准 bean 验证。所以我不确定这两者是如何结合在一起的。

所以问题:

  1. 在使用 SDR 时,我有哪些选项可以让客户知道提交的数据有什么问题?。诸如哪些字段无效以及每个字段的错误是什么之类的事情会很棒。
  2. 有没有关于这方面的例子?

非常感谢。

Raf*_*LDI 0

您需要的是一个适当的ExceptionHandler,它将处理后端异常并向前端客户端发送有意义的丰富消息(json/xml)。

看看这个git 存储库