Spring Data REST Bean验证

时间:2015-11-28 23:07:33

标签: java spring validation rest spring-data-rest

考虑Person实体,其属性name注释为@NotNull。然后是一个简单的PersonRepository,这个repo暴露在Spring Data Rest中。

当我POST创建新的Person时,如果name属性为null,则ValidationException按预期发生。但我在客户端上实际得到的是内部服务器错误(500),并且消息是TransactionSystemException,它发生在异常链的后期。

我希望获得的是错误请求(400),其中包含实际的ValidationException及其所有有用的信息,以便客户可以知道&# 39;发布的数据有误。

似乎有一种方法可以使用SDR附加自定义验证器here。但问题是,这不是自定义验证器,它是在要求存储库保存数据时发生的标准bean验证。所以我不确定这两者是如何结合在一起的。

所以问题:

  1. 在使用SDR时,我有什么选择让客户知道提交的数据有什么问题?诸如哪些字段无效以及每个字段的错误都会很棒。
  2. 在任何地方都有这方面的例子吗?
  3. 非常感谢。

1 个答案:

答案 0 :(得分:0)

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

看看这个git repository