首页 > 解决方案 > 有没有办法覆盖 OAS3 中的属性描述和示例?

问题描述

我一直在寻找有关 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

我的问题是

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

标签: openapi

解决方案


是的,这本质上是覆盖属性的方法。您在失败的示例中遇到了什么样的错误?它至少在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

推荐阅读