建站服务搭建的页面时,烟台网站建设哪家便宜,公益机构网站建设方案,贵州省建设执业资格促进会网站在FastAPI中#xff0c;默认情况下#xff0c;当应用启动时#xff0c;Swagger UI 会通过在线加载 Swagger UI 的静态资源。这意味着如果应用运行在没有互联网连接的环境中#xff0c;默认的 Swagger 文档页面将无法加载。
为了在离线环境中使用 Swagger UI#xff0c;你…在FastAPI中默认情况下当应用启动时Swagger UI 会通过在线加载 Swagger UI 的静态资源。这意味着如果应用运行在没有互联网连接的环境中默认的 Swagger 文档页面将无法加载。
为了在离线环境中使用 Swagger UI你需要手动加载 Swagger UI 的静态文件并将其与 FastAPI 集成。以下是具体步骤
1. 下载 Swagger UI 静态资源
首先你需要下载 Swagger UI 的静态文件或者你可以直接从 官方文档页面 下载。下载后你可以将静态文件放置在项目中的某个文件夹中例如./static/swagger-ui/。备用方案在浏览器中加载你服务的swagger界面在debug界面找到swagger资源请求的url下载文件。如下图所示
2. 配置 FastAPI 以使用本地 Swagger UI 资源
你可以通过 FastAPI 提供的 swagger_ui_init_oauth 参数指定加载本地的 Swagger UI 文件。以下是一个实现示例
from fastapi import FastAPI
from fastapi.openapi.docs import get_swagger_ui_html
from fastapi.staticfiles import StaticFilesapp FastAPI()# 挂载静态文件夹
app.mount(/static, StaticFiles(directorystatic), namestatic)# 自定义 Swagger 文档路由指向本地的 Swagger UI 文件
app.get(/docs, include_in_schemaFalse)
async def custom_swagger_ui_html():return get_swagger_ui_html(openapi_urlapp.openapi_url,titleapp.title - Swagger UI,swagger_js_url/static/swagger-ui/swagger-ui-bundle.js,swagger_css_url/static/swagger-ui/swagger-ui.css)app.get(/)
async def read_root():return {Hello: World}# 自定义 OpenAPI 文档路由
app.get(/openapi.json, include_in_schemaFalse)
async def get_openapi():return app.openapi()3. 将本地静态资源与 FastAPI 配置集成
在这个示例中/static 路径被用来提供本地 Swagger UI 的静态文件。get_swagger_ui_html() 函数用于生成 Swagger 文档的页面并且使用本地的 JavaScript 和 CSS 文件。
目录结构示例
.
├── main.py # FastAPI 代码文件
└── static└── swagger-ui├── swagger-ui-bundle.js├── swagger-ui.css└── ... (其他 Swagger UI 的静态文件)4. 运行应用
运行 FastAPI 应用访问 http://localhost:8000/docs就可以在离线状态下正常访问 Swagger UI 文档页面了。
通过这种方式你可以在无网络连接的情况下依然加载和使用 Swagger UI。