首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的OpenApi multipleOf

Java中的OpenApi multipleOf
EN

Stack Overflow用户
提问于 2020-05-28 10:26:40
回答 1查看 713关注 0票数 0

我尝试在我的OpenApi规范中使用multipleOf -属性,但是生成的java代码不包含任何注释或逻辑来验证multipleOf。如何使用multipleOf-属性来验证我的JSON输入?对于规范定义,我们使用OpenApi 3.0.1

在这里您可以看到multipleOf的用法:

代码语言:javascript
复制
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生成的代码如下所示:

代码语言:javascript
复制
    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;
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-28 10:48:16

openapi生成器multipleOf https://github.com/OpenAPITools/openapi-generator/issues/2192不支持该属性。

您可以为您的字段添加自定义约束验证程序。

代码语言:javascript
复制
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
   }
}

并为该验证器添加一个绑定程序。

代码语言:javascript
复制
    @InitBinder("generatedClass")
    protected  void initBinderForAvatarId(WebDataBinder binder) {
        binder.addValidators(new CustomValidator());
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62062462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档