我尝试在我的OpenApi规范中使用multipleOf -属性,但是生成的java代码不包含任何注释或逻辑来验证multipleOf。如何使用multipleOf-属性来验证我的JSON输入?对于规范定义,我们使用OpenApi 3.0.1
在这里您可以看到multipleOf的用法:
abc_field:
type: number
description: Description of ABC field
minimum: 0
maximum: 99999999999.99
multipleOf: 0.01
example: 200.57有什么解决方案来解决我的验证问题吗?我使用的验证api是javax.validation,但是multipleOf没有任何注释。
abc_field生成的代码如下所示:
public BetraegeKennzahlen abcField(BigDecimal abcField) {
this.abcField = abcField;
return this;
}
@ApiModelProperty(
example = "200.57",
value = "Description of ABC field"
)
@Valid
@DecimalMin("0")
@DecimalMax("99999999999.99")
public BigDecimal abcField() {
return this.abcField;
}
public void setAbcField(BigDecimal abcField) {
this.abcField = abcField;
}发布于 2020-05-28 10:48:16
openapi生成器multipleOf https://github.com/OpenAPITools/openapi-generator/issues/2192不支持该属性。
您可以为您的字段添加自定义约束验证程序。
public class CustomValidator implements Validator {
@Override
public boolean supports(Class<?> aClass) {
return GeneratedClass.class.isAssignableFrom(aClass);
}
@Override
public void validate(Object o, Errors errors) {
GeneratedClass generatedClass = (GeneratedClass)o;
//validate
}
}并为该验证器添加一个绑定程序。
@InitBinder("generatedClass")
protected void initBinderForAvatarId(WebDataBinder binder) {
binder.addValidators(new CustomValidator());
}https://stackoverflow.com/questions/62062462
复制相似问题