【问题标题】:Swagger 2.0 anyOf replacementSwagger 2.0 任意替换
【发布时间】:2016-10-09 01:24:47
【问题描述】:

我有一个定义模型,我们将其命名为A

A 有一个属性,它是一个复杂对象,它可以是多种类型的复杂对象。 如何使用 swagger 2.0 实现它? swagger 不支持anyOf,我在这里检查了discriminator 和多态类型:

https://github.com/OAI/OpenAPI-Specification/issues/403

但我不知道如何使用它来满足我的需要。 我已经构建了一个多态类型(插图):

  Father:
      discriminator: fatherType
  SonA:
    type: object
    allOf:
      - $ref: '#/definitions/Father'
      - properties:
          fatherType:
            type: string
            enum:
              - SonA
          name:
            type: string

在我的模型A 中使用它没有按预期工作:

A
  type: object
  properties:
    father:
      $ref: '#/definitions/Father'

【问题讨论】:

    标签: json schema swagger jsonschema


    【解决方案1】:

    我认为你必须等待 OpenAPI/Swagger 规范 3.0 版本,它支持anyOf

    您可以通过 Tony Tam 的 interview 找到有关 OpenAPI/Swagger 规范 3.0 的更多信息。

    【讨论】:

    • 我知道它会在 3.0 中出现,但在那之前,对于我需要一个对象为 A、B 或 C 的这种要求,我最好的选择是什么?我应该把它作为一个空对象吗?所以对于我的示例 A 只有这样:A type: object
    • 暂时使用vendor extensions怎么样,例如x-anyOf ?
    • 我不想使用它,它会限制我将使用的工具集。我想我将不得不等待
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 2015-03-03
    • 1970-01-01
    相关资源
    最近更新 更多