Java 中的 OpenApi multipleOf
OpenApi multipleOf in Java
我尝试在我的 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;
}
openapi-generator 不支持 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());
}
我尝试在我的 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;
}
openapi-generator 不支持 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());
}