有没有一种方法可以将Swaggerfile / OpenAPI定义拆分为多个文件?

时间:2019-05-24 12:59:11

标签: json swagger jsonschema openapi

是否可以将swaggerfile / OpenAPI specs文件(JSON或YAML)拆分为每个$ ref编码为单独的文件?因为我找到了很多解决方案来实现相反的目的(多个文件->单个文件),但没有一个解决方案。

我想实现以下目标: 我有一个巨大的JSON swaggerfile,其中包含内部$ refs。 我想为每个对象或路径定义使用一个文件,并且在根文件中引用这些文件(本地或绝对)。这样,我可以编辑根文件,以轻松获得所需路径和对象的最小子集。

{
"in": "inputField",
"required": true,
"schema": {
    "$ref": "#/components/schemas/MyObject"
},
"components": {
    "schemas": {
        "MyObject": {
            "type": "object",
            "properties": {
                "value": {
                    "type": "string"
                }
            }
        }
    }
},
"____comment": "I want MyObject definition in MyObject.json file and the $ref to that file"

}

1 个答案:

答案 0 :(得分:0)

是的,可能的话,您只能使用正则表达式,并检测缺陷等。

regex example from my project
new Regex("\"#/definitions/(.*)\"");
new Regex("#\\/definitions\\/(.*?)\\\"");
new Regex("\"" + key + "\": ");

等 您必须用依赖项替换元素,然后保存到文件。我确实这样做是为了从模型中获取jschema。您的情况有些不同,但很滑稽。