OpenApi 无法解析引用

OpenApi couldn't resolve reference

我正在学习 OpenApi。我从 Swagger 收到此错误:

TypeError: O is undefined value parameter-row.jsx:149 render root-injects.jsx:93 React 8 _renderValidatedComponentWithoutOwnerOrContext _renderValidatedComponent performInitialMount mountComponent mountComponent mountChildren _createInitialChildren mountComponent root-injects.jsx:95:14

我的json数据是:

{
    "components": {
        "parameters": {
          "q": {
            "in": "query", 
            "name": "q", 
            "style": "form"
          }
        }
    }, 
    "info": {
        "title": "OpenWeatherMap API"
    }, 
    "openapi": "3.0.2", 
    "paths": {
        "/weather": {
          "get": {
              "parameters": [
                {
                  "$ref": "#/components/parameters/q"
                }
              ]
          }
       }
   }
}

您的 API 定义缺少一些必需的关键字。如果将其粘贴到 https://editor.swagger.io 中,它将显示错误所在。

具体来说,q 参数缺少 schema(数据类型定义)。

这是正确的版本:

{
  "components": {
    "parameters": {
      "q": {
        "in": "query",
        "name": "q",
        "style": "form",
        "schema": {
          "type": "string"
        }
      }
    }
  },
  "info": {
    "title": "OpenWeatherMap API",
    "version": "1.0.0"
  },
  "openapi": "3.0.2",
  "paths": {
    "/weather": {
      "get": {
        "parameters": [
          {
            "$ref": "#/components/parameters/q"
          }
        ],
        "responses": {
          "200": {
            "description": "ok"
          }
        }
      }
    }
  }
}