Swagger UI 和 OpenAPI 3 - 通过示例 $ref

问题描述 投票:0回答:1

我有 2 个模式和一个例子。我想用下拉菜单更改请求正文。

实际上一切都正常。我有显示示例的列表,并且仅当我将它们写为“值”时,RequestBody 中的值才会更改。 如果我将示例指定为 ref,则会加载第一个示例,但当下拉列表中的值发生更改时,不会显示第二个示例。

这只是没有实现,这是一个错误还是我做了什么/配置了错误?

截图: enter image description here

以及配置示例:

"requestBody": {
  "content": {
    "application/json": {
      "schema": {
        "oneOf": [
          {"$ref": "#/components/schemas/reportexample1"},
          {"$ref": "#/components/schemas/reportexample2"}
        ]
      },
      "examples": {
        "reportexample1": {
          "summary": "reportexample1",
          "$ref": "#/components/schemas/reportexample1"
        },
        "reportexample2": {
          "summary": "reportexample2",
          "$ref": "#/components/schemas/reportexample2"
        }
      }
    }
  }
},

......

  "components": {
    "schemas": {
      "reportexample1": {
        "type": "object",
        "properties": { .... }
      },
      "reportexample2": {
        "type": "object",
        "properties": { .... }
      }
    }
  }
swagger openapi swagger-ui swagger-2.0
1个回答
0
投票

您可以尝试直接在示例部分定义示例,而不是使用 $ref 引用它们。

类似这样的:

"requestBody": {
  "content": {
    "application/json": {
      "schema": {
        "oneOf": [
          {"$ref": "#/components/schemas/reportexample1"},
          {"$ref": "#/components/schemas/reportexample2"}
        ]
      },
      "examples": {
        "reportexample1": {
          "summary": "reportexample1",
          "value": {
            // Provide the actual example value for reportexample1 here
            "property1": "value1",
            "property2": "value2"
          }
        }
      }
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.