我的API是使用Swagger OAS3记录的。我有一个使用YAML定义的属性:
LoanAmount:
type: number
nullable: true 我可以从swagger导出的JSON如下所示:
"LoanAmount": {
"type": "number",
"nullable": true
},当我使用模式使用jsonschemavalidator测试验证时,如下所示:
{
"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集线器之外维护一个单独的模式,以满足我的API中许多字段上的可空需求。
一个傲慢的文档页面描述OAS3“使用JSON规范的一个扩展子集data草案00 (也就是草案5)来描述数据格式.”
Json.Net文档指出,“支持100%的Json.Net架构草案6,并且与旧版本具有向后兼容性”
我的假设是,OAS3可空属性是扩展的子集特性之一,而不是任何JSON模式草案的一部分,但在继续之前,我正在寻找这方面的确认。
发布于 2019-03-18 09:18:50
OAS3使用JSON关键字的子集超集。
请参阅https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md#data-types
美洲组织中的原始数据类型基于JSON模式规范赖特草案00支持的类型。注意,整数作为一种类型也是受支持的,并且被定义为没有分数或指数部分的JSON数。null作为类型不受支持(另一种解决方案请参见可空)。模型是使用Schema对象定义的,Schema对象是JSON草案00的扩展子集。
确认。正在做的工作是允许在美洲组织的未来版本中充分使用JSON!
https://stackoverflow.com/questions/55165301
复制相似问题