我可以在swagger 2.0中定义嵌套数组对象吗?

时间:2015-08-27 18:32:49

标签: swagger swagger-ui swagger-2.0 swagger-editor

我们正在使用Swagger 2.0作为文档。我们在Pro-gramically中直接创建swagger 2.0规范我们的数据设计文档。

我们的模型非常复杂且嵌套。我想了解我们可以定义内联定义的嵌套数组对象。

例如:

{
    "definitions": {
        "user": {
            "type": "object",
            "required": ["name"],
            "properties": {
                "name": {
                    "type": "string"
                },
                "address": {
                    "type": "array",
                    "items": {
                        "type": "object",
                        "properties": {
                            "type": {
                                "type": "string",
                                "enum": ["home",
                                "office"]
                            },
                            "line1": {
                                "type": "string"
                            }
                        },
                        "Person": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                }
                            }
                        }
                    }
                }
            }
        }
    }
} 

我们在很多情况下会在模型中遇到这种情况,并且定义#ref不是我们此时想要考虑的选项。我们需要这个内联处理。

根据以下帖子:https://github.com/swagger-api/swagger-editor/issues/603#even enter code here t-391465196看起来不支持处理内联定义的嵌套数组对象。

由于许多大型企业都有非常复杂的数据模型,我们希望在swagger 2.0规范中支持此功能。

是否有任何想法要添加此功能。

1 个答案:

答案 0 :(得分:3)

您的文档只是无效,这与嵌套数组无关:Person内的Swagger 2.0架构中不允许使用属性items

$ref中唯一允许的属性包括:formattitledescriptiondefaultmultipleOf,{{1} },maximumexclusiveMaximumminimumexclusiveMinimummaxLengthminLengthpatternmaxItemsminItemsuniqueItemsmaxPropertiesminPropertiesrequiredenumadditionalPropertiestype,{{ 1}},itemsallOfpropertiesdiscriminatorreadOnlyxmlexternalDocs