如何将多个OpenAPI 3规范文件组合在一起?

时间:2019-02-08 04:52:54

标签: api swagger openapi

我想结合使用OpenAPI 3规范编写的API规范,该规范目前分为使用$ref相互引用的多个文件。我该怎么办?

3 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是使用开源项目speccy

打开终端并通过运行安装speccy(要求Node.js):

npm install speccy -g

然后运行:

speccy resolve path/to/spec.yaml -o spec-output.yaml

答案 1 :(得分:0)

Swagger Codegen可以解析外部$ ref并创建一个文件:

java -jar swagger-codegen-cli-3.0.4.jar generate -i ./path/to/openapi.yaml -l openapi -o ./RESOLVED

答案 2 :(得分:0)

我最近写了一个快速工具来做到这一点。我称之为openapi-merge。有一个库和一个关联的CLI工具:

要使用CLI工具,您只需编写一个配置文件,然后运行npx openapi-merge-cli。配置文件非常简单,看起来像这样:

{
  "inputs": [
    {
      "inputFile": "./gateway.swagger.json"
    },
    {
      "inputFile": "./jira.swagger.json",
      "pathModification": {
        "stripStart": "/rest",
        "prepend": "/jira"
      }
    },
    {
      "inputFile": "./confluence.swagger.json",
      "disputePrefix": "Confluence",
      "pathModification": {
        "prepend": "/confluence"
      }
    }
  ], 
  "output": "./output.swagger.json"
}

有关更多详细信息,请参见README on the NPM package