当前位置: 首页 > news >正文

fastapi完全离线环境(无外网)的访问Swagger所做特殊处理

在互联网环境中,只要 启动FastAPI 服务运行在本地机器上,访问 http://localhost:8000/docs(Swagger UI)就可以访问到Swagger界面,但是在完全离线环境(无外网)下如何访问Swagger页面呢?

默认情况下,Swagger UI 会从外部 CDN 加载 CSS 和 JavaScript 文件(如 cdn.jsdelivr.net)。若机器完全无法访问外网,会导致 Swagger UI 样式丢失。
解决方法:配置 FastAPI 使用本地资源。

下载 Swagger UI 资源
  1. 从 Swagger UI GitHub 下载最新版本,解压后找到 dist 目录。

  2. 将 dist 目录中的以下文件复制到 FastAPI 项目的 static/swagger 目录:

    • swagger-ui-bundle.js

    • swagger-ui.css

    • favicon-32x32.png(可选)

修改 FastAPI 配置

重写 Swagger UI 的 HTML 模板,指向本地资源:

from fastapi import FastAPI
from fastapi.openapi.docs import get_swagger_ui_html
from fastapi.staticfiles import StaticFiles

app = FastAPI(docs_url=None)  # 禁用默认的 Swagger UI
app.mount("/static", StaticFiles(directory="static"), name="static")

@app.get("/docs", include_in_schema=False)
async def custom_swagger_ui_html():
    return get_swagger_ui_html(
        openapi_url=app.openapi_url,
        title="API Docs",
        swagger_js_url="/static/swagger/swagger-ui-bundle.js",
        swagger_css_url="/static/swagger/swagger-ui.css",
    )
your_project/
├── main.py
└── static/
    └── swagger/
        ├── swagger-ui-bundle.js
        ├── swagger-ui.css
        └── favicon-32x32.png
验证访问

重启服务后,访问 http://localhost:8000/docs,Swagger UI 会从本地加载资源,无需外网。

相关文章:

  • 做网站要学宁波seo推广平台
  • 泉州模板建站源码线上宣传有哪些好的方式方法
  • 专业的网站建设设计价格网站开发报价方案
  • 商城建站服务百度推广多少钱
  • 怎么做软件 用手机seo课堂
  • 天津通信网站建设百度一下首页百度一下
  • 详解 MySQL 中的索引
  • LLM架构解析:循环神经网络(RNN)(第三部分)—— 从基础原理到实践应用的深度探索
  • SAP学习笔记 - 豆知识18 - (TODO)Msg 番号 ME154 構成品目无法決定
  • 网络:华为数通HCIA学习:静态路由基础
  • 虚拟电商-话费充值业务(四)供应商轮转逻辑
  • MySQL-SQL-DDL语句、表结构创建语句
  • 覆盖学术、职场、生活的专业计算工具
  • Vue面试常考内容[从宏观到微观]
  • 在 IntelliJ IDEA 2019 中安装/启用 PlantUML 插件
  • MySQL全链路指南
  • 常考题:通过解方程组求矩阵
  • mysql-MRR优化技术
  • 大模型参数高效微调方法
  • Spring Boot 自定义日志打印(日志级别、logback-spring.xml 文件、自定义日志打印解读)
  • 复合分位回归的统计推断
  • B2B2C多用户商城系统:打造新零售电商生态的创新解决方案
  • 哈希表系列一>两数之和
  • Linux | 无头 Linux 服务器安装和设置
  • CentOS 7 强制升级Docker 24.x终极指南(解决MySQL8镜像兼容性问题)
  • 基础常问 (概念、代码)