如何合并几个Swagger(v.1.2)JSON文件?

时间:2014-08-08 11:43:27

标签: swagger

拥有主JSON文件

{"swaggerVersion":"1.2",
 "apiVersion":"1.0",
 "apis":[{"path":"/api1"},{"path":"/api2"},{"path":"/api3"},{"path":"/api4"}]}

和4个API中每个API的JSON文件,每个都与Swagger库配合使用。

但是当我尝试将它们全部放入一个JSON文件中时,如

 {"swaggerVersion":"1.2",
  "apiVersion":"1.0",
  "apis":[{<api1 json file contents>},{<api2 json file contents>},{<api3 json file contents>},{<api4 json file contents>}]}

它没有用。

将几个Swagger v.1.2文件合并到一个文件中的正确方法是什么?

2 个答案:

答案 0 :(得分:5)

根据Swagger 1.2 Specification你不能这样做。

“master”JSON文件(正如您所说)是Swagger API的Resource Listing,它只包含“可用资源的清单”。

此JSON文档的“apis”属性应该是具有特定结构的Resource Object数组:

{
  "path": "/pets",
  "description": "Operations about pets."
}

引用规范的API Declaration部分:

  

API声明提供有关在资源上公开的API的信息。每个资源应该有一个文件描述。该文件必须在路径字段描述的URL中提供。

答案 1 :(得分:2)

查看演示应用程序,以便在一个位置查看所有服务文档:https://github.com/varghgeorge/microservices-single-swagger

Repo展示了如何创建一个springboot应用程序,它将作为所有springfox / swagger文档的单个位置。

可以使用yaml config在此服务器中配置来自不同服务/位置的Swagger文档。详细信息在github位置。