Swagger:"等效路径已经存在"尽管参数不同

时间:2016-02-18 10:13:22

标签: swagger atom-feed swagger-editor

我试图将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声称

  

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

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

有没有办法做到这一点?

谢谢!

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

1 个答案:

答案 0 :(得分:7)

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

/{foo}
/{bar}

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