【问题标题】:OpenApi 3.0 anyOfOpenApi 3.0 任意版本
【发布时间】:2018-11-17 06:21:06
【问题描述】:

我读过以前的帖子。寻找一个条纹 OpenAPi3.0 模型。这是一个小片段。 应用类型是什么?它是递归引用自己吗? x-expansionResources 是供应商扩展。

 "charge": {
    "properties": {
      "amount": {
        "description": "A positive integer in the [smallest currency unit](https://stripe.com/docs/currencies#zero-decimal) ",
        "type": "integer"
      },
      "application": {
        "anyOf": [
          {
            "maxLength": 5000,
            "type": "string"
          },
          {
            "$ref": "#/components/schemas/application"
          }
        ],
        "description": "ID of the Connect application that created the charge.",
        "nullable": true,
        "x-expansionResources": {
          "oneOf": [
            {
              "$ref": "#/components/schemas/application"
            }
          ]
        }
      },
      ...

【问题讨论】:

    标签: openapi


    【解决方案1】:

    在本例中,application 属性的值可以是:

    • 最多 5000 个字符的字符串(“创建费用的 Connect 应用程序的 ID”)
    • application 架构的一个实例
    • null

    在 Stripe 术语中,application 是一个 expandable 属性。可扩展属性可以包含关联对象的 ID,也可以包含完整对象。这就是他们的x-expansionResources 扩展名。

    从技术上讲,此示例中的anyOf 可以替换为oneOf。子模式具有完全不同的类型(type: stringtype: object),因此anyOfoneOf 都可以工作。 (oneOf 表示“匹配一个子模式”,anyOf 表示“匹配一个或多个子模式”。)

    【讨论】:

      【解决方案2】:

      查看测试数据后,他们要么发送一个 id(字符串),要么发送一个类。 extensionResource 告诉它一个类。在这个例子中只有一个。我不明白为什么模型一开始不只使用 oneOf?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-11-14
        • 2018-11-05
        • 2020-02-26
        • 2019-04-21
        • 2022-01-04
        • 2019-07-23
        • 2020-12-24
        相关资源
        最近更新 更多