我在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文档:
请注意,由于舍入错误,
double
和float
不受支持(某些提供程序可能提供近似支持(。CCD_ 3元素被认为是有效的。