【发布时间】:2016-03-02 20:13:37
【问题描述】:
考虑一个Person 实体,其属性name 被注释为@NotNull。然后是一个简单的PersonRepository,这个 repo 暴露在 Spring Data Rest 中。
当我POST 创建一个新的Person 时,如果name 属性为null,则ValidationException 按预期发生。但我在客户端上实际得到的是 Internal Server Error (500),而消息是 TransactionSystemException,发生在异常链的后面。
我希望得到的是一个 Bad Request (400),其中包含实际的 ValidationException 以及所有有用的信息,因此客户可以知道发布的数据有什么问题。
正如here 所解释的那样,似乎有一种方法可以将自定义验证器与 SDR 连接起来。但问题是,这不是自定义验证器,它是在要求存储库保存数据时发生的标准 bean 验证。所以我不太确定这两者是如何结合在一起的。
所以问题:
- 在使用 SDR 时,我有哪些选项可以让客户知道提交的数据有什么问题?诸如哪些字段无效以及每个字段的错误是什么之类的东西会很棒。
- 在任何地方都有这方面的例子吗?
非常感谢。
【问题讨论】:
标签: java spring validation rest spring-data-rest