相关疑难解决方法(0)

如何将属性指定为null或引用?

我有一个json文档,其中一个部分可以是null或子对象,如下所示:

[{
    "owner":null    
},
{
    "owner":{
        "id":1
    }   
}]
Run Code Online (Sandbox Code Playgroud)

问题是,是否可以使用ref在json模式草案v4中对此进行建模?

我想要的是这样的

{
    "type":"object",
    "properties":{
        "owner":{
            "type":["null", "object"],
            "$ref":"#/definitions/id"
        }
    },
    "definitions":{
        "id":{
            "type":"object",
            "properties":{
                "id":{
                    "type":"number"
                }
            }
        } 
    }
}
Run Code Online (Sandbox Code Playgroud)

jsonschema

23
推荐指数
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
查看次数

标签 统计

jsonschema ×1

swagger ×1

swagger-2.0 ×1