FastApi框架运行以及交互式接口文档访问错误的问题解决

fastapi安装启动

pip install fastapi[all]

创建一个 main.py 文件并写入以下内容:

from typing import Union

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
    return {"item_id": item_id, "q": q}

运行
通过以下命令运行服务器:

uvicorn main:app --reload

使用浏览器访问 http://127.0.0.1:8000
你将会看到如下 JSON 响应:

{"item_id": 5, "q": "somequery"}

交互式 API 文档
现在访问 http://127.0.0.1:8000/docs
发现打开是空白页面,且pycharm中报错,提示访问不到静态资源。
因为是国外的静态资源,所以我们要下载下来存到本地,从本地启。

swagger-ui下载地址:
https://github.com/swagger-api/swagger-ui/tree/master/dist
下载内容:
FastApi框架运行以及交互式接口文档访问错误的问题解决_第1张图片
FastApi框架运行以及交互式接口文档访问错误的问题解决_第2张图片

redoc下载地址:
https://github.com/Redocly/redoc
下载内容:

FastApi框架运行以及交互式接口文档访问错误的问题解决_第3张图片

FastApi框架运行以及交互式接口文档访问错误的问题解决_第4张图片

FastApi框架运行以及交互式接口文档访问错误的问题解决_第5张图片

百度云盘下载:
链接:https://pan.baidu.com/s/1h67KjIXaHYEqsxOrCjC45Q
提取码:exht

下载资源后,更改python安装路径下的docs.py配置文件
路径:
python安装路径\Lib\site-packages\fastapi\openapi

FastApi框架运行以及交互式接口文档访问错误的问题解决_第6张图片
修改内容:
FastApi框架运行以及交互式接口文档访问错误的问题解决_第7张图片
如果路径一致,可以直接复制下面代码

 	swagger_js_url: str = "/static/swagger-ui/swagger-ui-bundle.js",
    swagger_css_url: str = "/static/swagger-ui/swagger-ui.css",
    swagger_favicon_url: str = "/static/swagger-ui/img/favicon.png",

FastApi框架运行以及交互式接口文档访问错误的问题解决_第8张图片
如果路径一致,可以直接复制下面代码

    redoc_js_url: str = "/static/redoc/bundles/redoc.standalone.js",
    redoc_favicon_url: str = "/static/redoc/img/favicon.png",

然后在main.py文件中加上如下代码:

导入StaticFiles库:

from fastapi.staticfiles import StaticFiles

寻找资源路径添加:
在这里插入图片描述

app.mount("/static", StaticFiles(directory="static"), name="static")

再以uvicorn main:app --reload命令启动后
输入127.0.0.1:8000/docs展示如下
FastApi框架运行以及交互式接口文档访问错误的问题解决_第9张图片

输入127.0.0.1:8000/redoc展示如下
FastApi框架运行以及交互式接口文档访问错误的问题解决_第10张图片
希望能帮助解决各位遇到的问题。

你可能感兴趣的:(fastapi,python,pycharm,fastapi)