Swagger:"equivalent path already exists" 尽管参数不同

Swagger: "equivalent path already exists" despite different parameters

我正在尝试将 Atom 发布协议 (RFC5023) 转换为 Swagger/OpenAPI 规范以练习编写这些规范。

我运行陷入以下问题:在Atom中有不同类型的URI,例如集合和成员 URI。 我的想法是像这样记录它:

paths:
  /{CollectionURI}:
    get:
      summary: List Collection Members
      ...
    post:
      summary: Create a Resource
      ...
    parameters:
      - $ref: "#/parameters/CollectionURI"
  /{MemberURI}:
    get:
      summary: Retrieve a Resource
      ...
    parameters:
      - $ref: "#/parameters/MemberURI"

当我这样做时,swagger-editor 声称

Equivalent path already exists: /{MemberURI}

这些是不同类型的 URI,在查询时 return 有不同的东西。我想用不同的方式称呼它们以单独记录它们。

有什么办法吗?

谢谢!

编辑: 规范在 Swagger-UI 中显示得很好——这是编辑器中的错误还是 UI 只是忽略了我的错误?

那是因为两条路径可以相同。我知道参数可以唯一地标识它们,但是 OpenAPI 2.0 (Swagger 2.0)、3.0 和 3.1 不支持完整的 URI 模板,并且仅检查路径部分的唯一性。所以这些:

/{foo}
/{bar}

是相同的,即使 foo 必须是字符串,而 bar 必须是数字。请在 OpenAPI Specification Repo 上添加你的 0.02 美元,因为我们现在正在努力提供更好的路径支持。