使用 Swagger 2.0,我如何显示一个接受多种类型的数组模型?

Using Swagger 2.0, How Can I Show a model that is an array that accepts multiple types?

我正在使用 app.swaggerhub.com 生成 swagger 2.0 规范。

我的代码如下所示:

036  definitions:

---    // code that defines 'fieldRequirement' and 'slideRequirement'

106    requirement:
107      type: array
108      items:
109        oneOf:
110          - $ref: '#/definitions/fieldRequirement'
111          - $ref: '#/definitions/slideRequirement'

这returns同一行有3个错误(106):

106 should NOT have additional properties additionalProperty: oneOf
106 should be array
106 should match some schema in anyOf

我想要完成的是一个允许 fieldRequirement 或 slideRequirement 作为需求中的数组元素的模型。

oneOf 不受 swagger 2.0 支持,仅受 swagger 3.0.

支持

但是,如果你不能升级到 swagger 3.0,你可以使用字段 discriminator 的多态性,在你的情况下,你需要一个像这样的文件:

requirement:
  type: array
  items:
    - $ref: '#/definitions/Requirement'

...

definitions:
  Requirement:
    type: object
    discriminator: requirementType
    properties:
      requirementType:
        type: string
    required:
    - requirementType
  FieldRequirement:
    allOf:
    - $ref: '#/definitions/Requirement'
    - type: object
      properties:
        ...
  SlideRequirement:
    allOf:
    - $ref: '#/definitions/Requirement'
    - type: object
      properties:
        ...