【问题标题】:Including Multiple File Paths in Open API Doc在 Open API Doc 中包含多个文件路径
【发布时间】:2021-04-29 18:11:08
【问题描述】:

我有一个相当大的 API,其中有很多轮子在转动。将所有这些记录在一个巨大的 openapi.yaml 文件中对我来说并不容易,因此我决定将文档分解为单独的 paths,如下面的屏幕截图所示:

现在在我的customer.yaml 文件中,我有以下路线:

/customers/new:
/customers/login:
/customers/logout:

在我的partner.yaml 文件中,我有以下路线:

/partners/new:
/partners/login:
/partners/logout:

现在我将以上两个文件包含在我的最终index.yaml 文件中,如下所示

paths:
  - $ref: "./paths/partner.yaml"
  - $ref: "./paths/customer.yaml"

swagger-cli 最终生成的文档是在路径引用之前添加- 字符,从而导致格式错误的不可用文档。

我该如何解决这个问题?

【问题讨论】:

    标签: swagger openapi


    【解决方案1】:

    OpenAPI 中的paths 是映射,而不是数组,所以不能使用 yaml - 语法。

    您需要在顶级文件中包含 pathItem 键,并将 $refs 放入相关文件或文件片段中。

    例如:

    paths:
      /foo:
        $ref: "./foo.yaml"
      /bar:
        $ref: "./paths.yaml#/paths/bar"
    

    【讨论】:

    • 感谢您的意见。但这是一种现实的做事方式吗?这意味着我需要为特定路径的所有不同操作提供不同的文件。也就是说createNewPartner会在一个不同于updatePartner的文件中??
    • 没有理由在您引用的文件中不能有多个 pathItem 并使用 $ref: './paths.yaml#/paths/foo' 之类的东西,就像我的第二个示例一样。
    猜你喜欢
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 2016-09-27
    • 1970-01-01
    • 2014-05-18
    • 2012-02-15
    • 2023-03-18
    • 2013-10-04
    相关资源
    最近更新 更多