[英]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.