8

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

我遇到了以下问题:在 Atom 中有不同类型的 URI,例如 Collection 和 Member 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 声称

等效路径已存在:/{MemberURI}

这些是不同类型的 URI,在查询时会返回不同的内容。我想以不同的方式称呼它们以单独记录它们。

有没有办法做到这一点?

谢谢!

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

4

1 回答 1

9

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

/{foo}
/{bar}

是相同的,即使 foo 必须是一个字符串,并且 bar 必须是一个数字。请在OpenAPI 规范回购中添加您的 0.02 美元,因为我们现在正在努力提供更好的路径支持。

于 2016-02-18T23:14:41.737 回答