相关疑难解决方法(0)

如何在OpenAPI(Swagger)中定义一个可以是字符串或null的属性?

我有JSON模式文件,其中一个属性被定义为stringnull:

"type":["string", "null"]
Run Code Online (Sandbox Code Playgroud)

转换为YAML(与OpenAPI/Swagger一起使用)时,它变为:

type:
  - 'null'
  - string
Run Code Online (Sandbox Code Playgroud)

但Swagger编辑器显示错误:

架构"类型"键必须是字符串

在OpenAPI中定义可空属性的正确方法是什么?

swagger openapi

29
推荐指数
1
解决办法
1万
查看次数

如何指定属性可以为null或带有swagger的引用

如何将属性指定为null或引用?讨论如何使用jsonschema将属性指定为null或引用.

我希望以昂首阔步的方式做同样的事情.

回顾上面的答案,使用jsonschema,可以这样做:

{
   "definitions": {
      "Foo": {
         # some complex object
      }
   },

   "type": "object",
   "properties": {
      "foo": {
         "oneOf": [
            {"$ref": "#/definitions/Foo"},
            {"type": "null"}
         ]
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

答案的关键是使用oneOf.

我的问题的关键点:

  1. 我有一个复杂的对象,我想保持DRY,所以我把它放在一个定义部分,以便在我的swagger规范中重用:其他属性的值; 响应对象等

  2. 在我的规范中的各个地方,属性可能是对此类对象的引用或为null.

如何使用不支持的Swagger oneOfanyOf

注意:一些swagger实现使用x-nullable(或某些)指定属性值可以为null,但是,$ref 它引用的内容替换该对象,因此它将显示任何使用x-nullable被忽略.

swagger swagger-2.0

6
推荐指数
3
解决办法
7505
查看次数

标签 统计

swagger ×2

openapi ×1

swagger-2.0 ×1