Swagger 大摇大摆地抛出;无法解析引用“;

Swagger 大摇大摆地抛出;无法解析引用“;,swagger,Swagger,作为我学习旅程的一部分(使用TestDriven.io),我正在学习Swagger或OpenApi。我从Swagger那里得到了这个错误:无法解析引用:无法解析指针:/components/schema/user在文档中不存在该引用显然在json文件中,为什么它会抱怨?(这里的文本是为了通过站点在帖子中的最小字符限制,与问题本身无关) components部分需要位于JSON文件的顶层,如下所示: { “openapi”:“3.0.2”, “组成部分”:{ “担保计划”:{ “bearerAut

作为我学习旅程的一部分(使用TestDriven.io),我正在学习Swagger或OpenApi。我从Swagger那里得到了这个错误:
无法解析引用:无法解析指针:/components/schema/user在文档中不存在
该引用显然在json文件中,为什么它会抱怨?(这里的文本是为了通过站点在帖子中的最小字符限制,与问题本身无关)


components
部分需要位于JSON文件的顶层,如下所示:

{
“openapi”:“3.0.2”,
“组成部分”:{
“担保计划”:{
“bearerAuth”:{
“类型”:“http”,
“方案”:“持票人”
}
},
...
},
...
}
错误在于
组件
位于
路径内
而不是顶层

{
  "openapi": "3.0.2",
  "info": {
    "version": "0.0.1",
    "title": "Users Service",
    "description": "Swagger spec for documenting the users service"
  },
  "servers": [
    {
      "url": "http://localhost"
    }
  ],
  "paths": {
    "/users/ping": {
      "get": {
        "summary": "Just a sanity check",
        "responses": {
          "200": {
            "description": "Will return 'pong!'"
          }
        }
      }
    },
    "/users": {
      "get": {
        "summary": "Returns all users",
        "responses": {
          "200": {
            "description": "user object"
          }
        }
      }
    },
    "/users/{id}": {
      "get": {
        "summary": "Returns a user based on a single user ID",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "ID of user to fetch",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "user object"
          }
        }
      }
    },
    "/auth/register": {
      "post": {
        "summary": "Creates a new user",
        "requestBody": {
          "description": "User to add",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/user-full"
              }
            }
          }
        }
      },

      "responses": {
        "200": {
          "description": "user object"
        }
      }
    },

    "/auth/login": {
      "post": {
        "summary": "Logs a user in",
        "requestBody": {
          "description": "User to log in",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/user"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Successfully logged in"
          }
        }
      }
    },
    "/auth/status": {
      "get": {
        "summary": "Returns the logged in user's status",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "user object"
          }
        }
      }
    },
    "/auth/logout": {
      "get": {
        "summary": "Logs a user out",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successfully logged out"
          }
        }
      }
    },
    "components": {
      "securitySchemes": {
        "bearerAuth": {
          "type": "http",
          "scheme": "bearer"
        }
      },

      "schemas": {
        "user": {
          "properties": {
            "email": {
              "type": "string"
            },
            "password": {
              "type": "string"
            }
          }
        },
        "user-full": {
          "properties": {
            "username": {
              "type": "string"
            },
            "email": {
              "type": "string"
            },
            "password": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}