使用Swagger OAS3记录了我的API。我有使用yaml定义的属性为:
LoanAmount:
type: number
nullable: true
由此产生的json我可以从摇摇欲坠的外观出口如下:
"LoanAmount": {
"type": "number",
"nullable": true
},
当我使用jsonschemavalidator用架构进行验证时,AS
{
"title": "A JSON Schema for OpenAPI 3.0.",
"id": "http://openapis.org/v3/schema.json#", "$schema":
"http://json-schema.org/", "type": "object",
"properties": {
"LoanAmount": {
"type": "number",
"nullable": true}
}
}
和输入为:
{
"LoanAmount" : null
}
验证失败"无效类型。预期数字,但得无效"
我可以使用:
来完成这项工作"LoanAmount": {
"type": ["number","null"]
}
但是,我无法弄清楚如何使用OAS3 YAML来定义它。我的目标是不必在Swagger Hub之外保持单独的模式,以满足我对API中许多字段的无效要求。
宣传文档页面描述了OAS3"使用JSON Schema规范的扩展子集Wright草稿00(又名草稿5)来描述数据格式..."
JSON.NET模式文档说:"支持JSON Schema Draft 6的100%,并与较旧版本具有后退兼容性"
我的假设是,OAS3无效属性是扩展子集功能之一,而不是任何JSON模式草稿的一部分,但是我正在寻找在继续之前的确认。
oas3使用JSON模式关键字的子集超集。
请参阅https://github.com/oai/openapi-specification/blob/master/versions/3.0.2.md#data-types
OA中的原始数据类型基于由 JSON模式规格Wright Draft00。请注意,整数是一个 类型也得到支持,并定义为没有一个的JSON编号 分数或指数部分。NULL不支持类型(请参阅 可用于替代解决方案)。使用模型定义 模式对象,这是JSON模式的扩展子集 规格Wright草稿00。
确认。正在进行工作以允许在OAS的未来版本中充分使用JSON模式!