我想在我的API文档中用2位数表示decimal,用1位数表示decimal。我使用的是swagger 2.0,是否有内置的定义类型或任何其他'轮'参数的规格,或者我唯一的选择是使用'x-'扩展?
v64noz0r1#
OpenAPI(fka Swagger)规范使用JSON Schema的子集来描述数据类型。如果参数是以数字的形式传递的,你可以按照this Q&A中的建议尝试使用multipleOf:
multipleOf
type: number multipleOf: 0.1 # up to 1 decimal place, e.g. 4.2 # multipleOf: 0.01 # up to 2 decimal places, e.g. 4.25
然而,由于floating-point math specifics,multipleOf对浮点数的验证可能不可靠。如果你的数字是作为字符串传递的,你可以为所需的数字格式指定一个正则表达式pattern:
pattern
type: string pattern: your_regex
在任何情况下,您也可以在description中口头记录任何限制。
description
mf98qq942#
我自己没有尝试过,但尝试创建一个Java Package 器,用你想要的注解标注 Package 字段(在这种情况下,@Digits可能会帮助你),用lombok提供@Getter和@Setter,然后使用importMappings和typeMappings来使用你的自定义 Package 器。举例来说:
@Getter
@Setter
@Getter @Setter public class MyWrapper { @Digits(integer = 1, fraction = 8) private BigDecimal bigDecimal; }
在pom.xml文件中,使用openapi-generator-maven-plugin。
openapi-generator-maven-plugin
<importMappings> <importMapping>MyWrapper=my.package.MyWrapper</importMapping> </importMappings> <typeMappings> <typeMapping>number+digits=MyWrapper</typeMapping> </typeMappings>
在yaml文件中:
properties: myProperty: type: number format: digits
2条答案
按热度按时间v64noz0r1#
OpenAPI(fka Swagger)规范使用JSON Schema的子集来描述数据类型。
如果参数是以数字的形式传递的,你可以按照this Q&A中的建议尝试使用
multipleOf
:然而,由于floating-point math specifics,
multipleOf
对浮点数的验证可能不可靠。如果你的数字是作为字符串传递的,你可以为所需的数字格式指定一个正则表达式
pattern
:在任何情况下,您也可以在
description
中口头记录任何限制。mf98qq942#
我自己没有尝试过,但尝试创建一个Java Package 器,用你想要的注解标注 Package 字段(在这种情况下,@Digits可能会帮助你),用lombok提供
@Getter
和@Setter
,然后使用importMappings和typeMappings来使用你的自定义 Package 器。举例来说:
在pom.xml文件中,使用
openapi-generator-maven-plugin
。在yaml文件中: