繁体   English   中英

REST API输入上的Bean验证以及API版本控制

[英]Bean validation on REST API input, and API versioning

我有一个像这样的豆子:

  @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批注,对于某些API版本,该批注允许避免对我的REST API上的某些字段进行序列化/反序列化。

我在此API的输入有效负载上执行bean验证,以引发违反约束的情况。 我希望基于Gson注释(而不是分组!)无法在每个版本中引发相同的违规情况。


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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM