在 OpenAPI 2 中等效使用 oneOf(来自 OpenAPI 3)

Equivalent use of oneOf (from OpenAPI 3) in OpenAPI 2

如何使用 oneOf 将此代码段调整为等效的 OpenAPI 2.0 版本?

  formats:
    type: array
    description: Possible parameter format.
    items:
      oneOf:
      - type: string
      - type: object
        description: Matched alias formats
        properties:
          representation:
            type: array
            description: Alias format representations
            items:
              type: string
          match_multiple:
            type: boolean
            optional: true
          display:
            type: string
            description: Display string of alias format

在 OpenAPI 2.0 中,您最多可以为 items 使用 typeless schema {},这意味着项目可以是 null 以外的任何内容 – 数字、objects、字符串等。您无法为 items 指定确切的类型,但您可以添加具有不同项目类型的数组的 example

formats:
  type: array
  items: {}  # <--- means "any type" (except null)

  example:
    # example of a string item
    - test

    # example of an object item
    - representation: [one, two]
      match_multiple: false
      display: something

注意: 无类型模式 {} 只能用于 OAS2 body 参数和响应模式。路径、header 和表单参数需要原始数组项 type