【问题标题】:Bean validation on REST API input, and API versioningREST API 输入的 Bean 验证和 API 版本控制
【发布时间】:2013-03-04 00:53:07
【问题描述】:

我有一个像这样的豆子:

  @Data
  public static class ClassUnderTest {
    @NotNull
    private String field1;

    @NotNull
    @Since(2.0)
    private String field2;

    @NotNull
    @Until(3.0)
    private String field3;
  }

@Since 和 @Until 是 Gson 注释,允许避免序列化/反序列化我的 REST API 上的某些字段,对于某些 API 版本。

我对此 API 的输入负载执行 bean 验证以引发约束违规。 根据 Gson 注释(而不是组!),我希望能够不针对每个版本提出相同的违规行为。


有没有办法从ConstraintViolation<T> 获取产生违规的Member(如Method / Field),以便我检查它是否被注释?

有没有办法使用 Bean Validation 处理验证版本控制?

我唯一的解决方案似乎是从路径 (getPropertyPath) 中检索该成员,但这似乎并不容易......

【问题讨论】:

    标签: java api rest bean-validation


    【解决方案1】:

    您可以通过getPropertyPath() 从违规中检索属性名称。也就是说,将您的约束分配给与版本相对应的组可能是更好的方法。请注意,验证组也可以扩展现有组,这可能有助于对新版本中添加的模型约束。

    【讨论】:

      猜你喜欢
      • 2014-08-29
      • 2012-05-31
      • 1970-01-01
      • 2017-03-18
      • 2018-09-30
      • 2012-12-25
      • 2015-03-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多