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

tri*_*ean 7 swagger swagger-editor atom-feed

我正在尝试将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"
Run Code Online (Sandbox Code Playgroud)

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

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

这些是在查询时返回不同内容的不同类型的URI.我想以不同方式调用它们来单独记录它们.

有没有办法做到这一点?

谢谢!

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

feh*_*guy 8

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

/{foo}
/{bar}
Run Code Online (Sandbox Code Playgroud)

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