我试图将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只是忽略了我的错误?
答案 0 :(得分:7)
那是因为两条路径可以相同。我知道参数可以唯一地标识它们,但Swagger 2.0不支持完整的URI模板,并且仅检查路径部分的唯一性。所以这些:
/{foo}
/{bar}
是相同的,即使foo必须是一个字符串,bar也必须是一个数字。请在OpenAPI Specification Repo上添加0.02美元,因为我们正在努力提供更好的路径支持。