FastAPI 接口文档 打开很卡或者在内网环境显示空白
遇到的FastAPI接口文档()打开很卡或者在内网环境显示空白,这通常是因为FastAPI默认使用的Swagger UI静态资源(如JavaScript、CSS文件)是从国外CDN加载的。在内网环境下无法访问这些外部资源,或者网络延迟高,就会导致这个问题。:使用pip安装或其他类似库(具体名称可能变化,请以官方为准,这里以(通常是main.py):from fastapi_cdn_host imp
遇到的FastAPI接口文档(http://127.0.0.1:8000/docs )打开很卡或者在内网环境显示空白,这通常是因为FastAPI默认使用的Swagger UI静态资源(如JavaScript、CSS文件)是从国外CDN加载的。在内网环境下无法访问这些外部资源,或者网络延迟高,就会导致这个问题。
方法一:使用第三方库(推荐,最简单)
-
安装库:使用
pip
安装fastapi-cdn-host
或其他类似库(具体名称可能变化,请以官方为准,这里以fastapi-cdn-host
为例):pip install fastapi-cdn-host
-
修改你的FastAPI应用代码(通常是
main.py
):from fastapi import FastAPI from fastapi_cdn_host import monkey_patch_for_docs_ui # 导入库 app = FastAPI() # 应用补丁,替换默认的CDN链接为国内可用或本地链接 monkey_patch_for_docs_ui(app) # ... 你的其他代码 ... @app.get("/") async def root(): return {"message": "Hello World"}
这个库会自动帮你把默认的国外CDN地址替换成国内可访问的地址(如
unpkg.com
或staticfile.org
)。
方法二:使用离线库(如 fastapi-offline
)
还有一个名为 fastapi-offline
的库,它打包了所有所需的离线资源,用法非常简单10。
-
安装库:
pip install fastapi-offline
-
修改你的FastAPI应用代码:
from fastapi_offline import FastAPIOffline # 导入离线FastAPI类 app = FastAPIOffline() # 代替原来的 FastAPI() # ... 你的其他代码 ...
这样就可以了,
FastAPIOffline
会自动处理所有静态资源的离线服务。
优点:使用简单,不需要关心资源文件的下载和管理。
缺点:同样依赖于特定库的维护。
备注:
访问 http://127.0.0.1:8000/docs
你可以看到所有定义的接口,点击任何一个可以展开查看详细信息,包括参数、请求体结构、响应模型等。点击 "Try it out" 按钮,可以直接填写参数并发送请求来测试接口
使用字符串形式的导入路径来启用重载功能
uvicorn.run("index:app", host="0.0.0.0", port=8000, reload=True)
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
更多推荐
所有评论(0)