Swagger 2.0:具有不同路径但具有相同请求和响应的多路径对象

时间:2017-05-24 06:39:54

标签: swagger-2.0

由于一些向后兼容的原因,我需要支持路径/ ab和/ a-b。

两个路径的请求和响应对象都是相同的。

我的swagger规范中是否可以包含以下内容,以便我不必为这两个路径重复请求和响应对象定义。

paths:
  /ab:
  /a-b:
    post:
    ...

1 个答案:

答案 0 :(得分:4)

是的,您可以让路径项引用另一个路径项,如下所示:

paths:
  /ab:
    ...
  /a-b:
    $ref: '#/paths/~1ab'

此处,~1ab/ab的转义版本。

在JSON指针中,有两个特殊字符需要转义才能按字面解释:~变为~0/变为~1

  • /ab~1ab$ref: '#/paths/~1ab'
  • /foo/bar~1foo~1bar$ref: '#/paths/~1foo~1bar'
  • /ab~cd~1ab~0cd#/paths/~1ab~0cd
  • /ab/{c}/{d}~1ab~1{c}~1{d}#/paths/~1ab~1{c}~1{d}


此方法的一个限制是,在引用的路径项的所有操作中都不能有operationId。这是因为路径的副本最终具有相同的operationId值,但operationId必须是唯一的。