在OpenApi中将"最小值"和"最大值"设置为介于0.1和0.9之间



我在openApi-yaml文件中定义了missingRatio变量,如下所示。Openapi版本是"3.0.0〃

api.yaml

missingRatio:
type: number
format: float
minimum: 0.1
maximum: 0.3
default: 0.2
multipleOf: 0.1
description: "Ratio of data to remove for validation"

但不幸的是,在生成的代码中,最小值和最大值被设置为0。因此,当我使用时,它只接受0作为值。

生成的代码

/**
* Ratio of data to remove for validation
* minimum: 0
* maximum: 0
* @return missingRatio
**/
@ApiModelProperty(value = "Ratio of data to remove for validation")
@DecimalMin("0") @DecimalMax("0") 
public Float getMissingRatio() {
return missingRatio;
}

如何解决此问题?

也许您应该从模式中删除format:foat。浮点运算是不可靠的。将字段保留为BigDecimal,然后查看它是否有效。

@DecimalMin和@DecimalMax适用于BigDecimals,而不是根据文档浮动

https://docs.oracle.com/javaee/7/api/javax/validation/constraints/DecimalMin.html

摘录自Oracle文档:

请注意,由于舍入错误,doublefloat不受支持(某些提供程序可能提供近似支持(。

CCD_ 3元素被认为是有效的。

相关内容

  • 没有找到相关文章

最新更新