为什么在导入 OpenAPI 定义时 "schema" 从 "responses" 对象中消失?

Why does the "schema" disappear from the "responses" object when importing an OpenAPI definition?

我可以成功地将以下 OpenAPI 定义导入到 Azure API 管理中。

但是,当我导出 OpenAPI 定义时,"schema" 名称已从 "responses" 对象中删除。因此,我的门户中的开发人员不会显示此操作的架构或示例。

我的 API 定义是有效的,如果添加到 the official editor 则可以正常运行。

如何防止模式被删除?

{
  "swagger": "2.0",
  "info": {
    "title": "Foo",
    "description": "Foo",
    "version": "1"
  },
  "host": "example.org",
  "schemes": [
    "https"
  ],
  "paths": {
    "/foo": {
      "get": {
        "summary": "List all foo.",
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/Foo"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "Foo": {
      "type": "object",
      "properties": {
        "example": {
          "type": "string",
          "description": "An example."
        }
      }
    }
  }
}

当定义在根对象或操作对象中缺少 "produces" 名称时,似乎会出现此问题。

例如,下面的定义应该成功导入,然后在不删除 "schema" 的情况下导出。请注意,"produces" 名称已添加到根对象,在 "schemes" 和 "paths"

之间
{
  "swagger": "2.0",
  "info": {
    "title": "Foo",
    "description": "Foo",
    "version": "1"
  },
  "host": "example.org",
  "schemes": [
    "https"
  ],
  "produces": ["application/json"]
  "paths": {
    "/foo": {
      "get": {
        "summary": "List all foo.",
        "responses": {
          "200": {
            "description": "Success.",
            "schema": {
              "$ref": "#/definitions/Foo"
            }
          }
        }
      }
    }
  },
  "definitions": {
    "Foo": {
      "type": "object",
      "properties": {
        "example": {
          "type": "string",
          "description": "An example."
        }
      }
    }
  }
}