微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swagger合并多个规范

如何解决Swagger合并多个规范

我有各种独立模块生成的多种规格; 1个这样的规范的样本:

{
  "swagger": "2.0","tags": [
      {
        "name": "Tag1"
      },{
        "name": "Tag2"
      },{
        "name": "Tag3"
      }
  ],"paths": {
      "/api/v1/entities/{entityId}/status": {
          "post": {
              "tags": [
              ],.
              .
              .
            }
          "get": {
              "tags": [
                "Tag1","Tag3"
              ],.
              .
              .
            }
  },"/api/v1/entities": {
        "post": {
          "tags": [
            "Tag2","Tag3"
          ]
          .
          .
          .
       }
   }
}

每个单独的json文件都包含所有reqd引用。有什么方法可以将它们组合为一个规范(json文件)?

解决方法

我可以想象出这样做的多种动机,例如,提供一个单一的招摇即可导入AWS API Gateway。可能有一些合并JSON的现成功能(例如https://pypi.org/project/jsonmerge/),但是最好的选择是自己实现。您可能会发现需要对每个swagger文件中的模型进行“命名空间”以避免冲突。例如,如果file1.json和file2.json各自具有“事物”模型,则它们可能不一致,并且在合并的选项中,定义和用法应合并为“ file1_thing”和“ file2_thing”。否则,您还可以检查模型的一致性,避免不必要的命名空间。

,

这看起来像一个JSON到JSON转换的用例,因此也许您可以使用基于Java的Jolt转换库。他们在演示链接上也有很好的示例:https://jolt-demo.appspot.com/#inception。这是文档链接:https://github.com/bazaarvoice/jolt

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。