有没有一种方法可以覆盖OAS3中属性的描述和示例?

时间:2019-05-29 06:50:57

标签: openapi

我一直在OAS3中寻找有关继承的资源,但是我得到的最接近的是https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.2.md,而上面的内容我没有找到答案。

这是工作示例

components:
  schemas:
    Pet:
      properties:
        no_legs:
          description: "Number of legs"
          type: number
          example: 4
    Duck:
      allOf:
        - $ref: '#/components/schemas/Pet'
        - type: object
          properties:
            no_legs:
              example: 2
      properties:
        no_legs:
          description: 'Number of webbed feet'

受规范启发的失败示例

    Duck:
      allOf:
        - $ref: '#/components/schemas/Pet'
        - type: object
          properties:
            no_legs:
              description: 'Number of webbed feet'
              example: 2

我的问题是

  • 我正在查看的替代功能是否可用/受支持?

  • 如果是的话,什么合适的方法呢?

我知道我可以使用合成来解决这个问题,但是我会重复很多定义。

1 个答案:

答案 0 :(得分:0)

是的,从本质上讲,这就是覆盖属性的方法。您在失败的示例中遇到什么样的错误?至少在https://editor.swagger.io/,它可以正常工作。您还记得在文档的根部指定openapi: 3.0.0吗?

请注意以下两个定义相同:

Duck:
  allOf:
    - $ref: '#/components/schemas/Pet'
    - type: object
      properties:
        no_legs:
          description: 'Number of webbed feet'
          example: 2
Duck:
  allOf:
    - $ref: '#/components/schemas/Pet'
  properties:
    no_legs:
      description: 'Number of webbed feet'
      example: 2