首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么不能识别OAS3可空属性?

为什么不能识别OAS3可空属性?
EN

Stack Overflow用户
提问于 2019-03-14 14:39:02
回答 1查看 436关注 0票数 0

我的API是使用Swagger OAS3记录的。我有一个使用YAML定义的属性:

代码语言:javascript
复制
LoanAmount:
 type: number
 nullable: true 

我可以从swagger导出的JSON如下所示:

代码语言:javascript
复制
  "LoanAmount": {
    "type": "number",
    "nullable": true
  },

当我使用模式使用jsonschemavalidator测试验证时,如下所示:

代码语言:javascript
复制
   {
      "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}
       }
    }

和投入如下:

代码语言:javascript
复制
{
  "LoanAmount" : null
}

验证失败

“无效类型。期望数但得到零”

我可以通过以下方法来完成这项工作:

代码语言:javascript
复制
"LoanAmount": {
"type": ["number","null"]
}

但是,我不知道如何用OAS3 YAML那样定义它。我的目标是不必在swagger集线器之外维护一个单独的模式,以满足我的API中许多字段上的可空需求。

一个傲慢的文档页面描述OAS3“使用JSON规范的一个扩展子集data草案00 (也就是草案5)来描述数据格式.”

Json.Net文档指出,“支持100%的Json.Net架构草案6,并且与旧版本具有向后兼容性”

我的假设是,OAS3可空属性是扩展的子集特性之一,而不是任何JSON模式草案的一部分,但在继续之前,我正在寻找这方面的确认。

EN

回答 1

Stack Overflow用户

发布于 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!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55165301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档