当前位置: 首页 > 知识库问答 >
问题:

Swaggag-1.2:如何在模型模式中显示n嵌套JSON对象

施默
2023-03-14
{
   "parent" : {
      "child_1" : {
          "child_2a" : "string",
          "child_2b" : {
              "child_3a" : "string",
              "child_3b" : ["string"]
          }
       }
    }
}
....
stuff here
.....
api: [
{
            "path": "/api/foo/bar",
            "operations": [
                {
                    "method": "POST",
                    "summary": "a job",
                    "consumes": ["application/json"],
                    "authorizations": {},
                    "parameters": [
                        {
                            "name": "body",
                            "required": true,
                            "type" : "Parent",
                            "description": "some description",
                            "paramType": "body"
                        },
                        {
                            "name": "fooz",
                            "description": "some description",
                            "required": false,
                            "type": "string",
                            "paramType": "query"
                        }
                    ],
                    ...... 
                    ........
        }
],
"models" : {
    "Parent": {
            "id": "Parent",
            "required": ["parent"],
            "properties": {
              "parent": {
                "$ref": "Child1"
              }
            }
        },
        "Child1": {
            "id": "Child1",
            "required" : ["child_1"],
            "properties": {
              "child_1": {
                "$ref": "Child2"
              }
            }
        },

        "Child2" : {
            "id"  : "Child2",
            "required" : ["child_2a", "child_2b"],
            "properties" : {
                "child_2a" : {
                    "type" : "string"
                },
                "child_2b" : {
                    "$ref" : "Child3"
                }

            }
        },
        "Child3" : {
          "id"  : "Child2",
            "required" : ["child_3a", "child_3b"],
            "properties" : {
                "child_3a" : {
                    "type" : "string"
                },
                "child_3b" : {
                    "type" : "array",
                    "items": {
                       "type": "string"
                    }
                }
        }

}
{
   "parent" : "Child1"
}

共有1个答案

丁曦
2023-03-14

Swagger1.2要求整个模型定义是扁平的--也就是说,不能有嵌套的复杂对象,只能有原语和对其他复杂对象的引用。

从Swagger2.0开始,您可以拥有内联、嵌套或匿名对象。

所以简单的回答是,你不能对1.2中描述的内容进行建模。如果可以的话,请考虑更新您的库以使用Swagger2.0。

 类似资料:
  • 由于是一个对象,并且它有另一个对象,只能有字符串或数字字段,而不能有对象,如何扩展元化学以强制执行此操作。感谢任何帮助

  • 问题内容: 我正在尝试让Python解析如下的Avro模式… …并且出现以下异常: 我究竟做错了什么? 问题答案: 根据网络上的其他消息来源,我将重写您的第二个地址定义:

  • 问题内容: 我在这里看到了很多关于这个问题的答案,但是我还是不明白(也许是因为他们使用了更多“复杂”的例子)……所以我试图做的是为“客户”建立一个模式将具有两个具有嵌套“子字段”的字段,其他字段可能重复。这是我的意思: 电话 和 电子邮件 可能是一个数组。和地址将不会重复,但是您会看到一些子字段。 我该如何工作? 问题答案:

  • 我需要在这里显示json响应

  • 我将spring boot与thymeleaf结合使用,在页面中尝试显示表单及其嵌套对象。 我的对象工厂有 id 当我显示时 我的工厂有很多机器,但没有一台展出 任何想法?

  • 下面是使用的json文件(tasks.json) 错误:com.intuit.karate.exception.KarateException:javascript评估失败:字符串,引用错误:第1行中未定义“字符串” 我尝试了多种方法,如:obj1:“#(^schema)”,obj1:“#对象schema” 但无法解决问题。