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

【FastAPI】离线使用Swagger UI 或 国内网络如何快速加载Swagger UI

在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(directory="static"), name="static")# 自定义 Swagger 文档路由,指向本地的 Swagger UI 文件
@app.get("/docs", include_in_schema=False)
async def custom_swagger_ui_html():return get_swagger_ui_html(openapi_url=app.openapi_url,title=app.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_schema=False)
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。

相关文章:

【FastAPI】离线使用Swagger UI 或 国内网络如何快速加载Swagger UI

在FastAPI中,默认情况下,当应用启动时,Swagger UI 会通过在线加载 Swagger UI 的静态资源。这意味着如果应用运行在没有互联网连接的环境中,默认的 Swagger 文档页面将无法加载。 为了在离线环境中使用 Swagger UI,你…...

Linux:从入门到放弃

目录 一、基础巩固Linux:常用命令 二、实战应用Linux:CentOS7基础配置Linux:CentOS7安装MySQL 三、常见问题Linux:yum源失效问题 一、基础巩固 Linux:常用命令 二、实战应用 Linux:CentOS7基础配置 Lin…...

SVM 监督学习

一、分类问题 利用一条直线分类存在很多问题 二、SVM 支持向量机 其核心思想是通过在特征空间中找到一个最优的超平面来进行分类,并且间隔最大。分类面尽可能远离样本点,宽度越大越好。 适用于中小型复杂数据集的分类。 三、硬间隔和软间隔 硬&#x…...

奖励模型的训练

文章目录 训练方法训练策略代码实践由于 RLHF 的训练过程中需要依赖大量的人类偏好数据进行学习,因此很难在训练过程中要求人类标注者实时提供偏好反馈。为此,我们需要训练一个模型来替代人类在 RLHF 训练过程中实时提供反馈,这个模型被称为奖励模型。在训练开始前,我们需要…...

Ubuntu22.04之禁止内核自动更新(二百六十八)

简介: CSDN博客专家、《Android系统多媒体进阶实战》一书作者 新书发布:《Android系统多媒体进阶实战》🚀 优质专栏: Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏: 多媒体系统工程师系列【…...

kaggle题-房价预测(Pytorch),手把手教,全文代码解释

房价预测 本题是经典的通过表格数据去预测最终值,主要分为几大步骤: 一.将数据集修改为可以代入到网络模型的数字,因为给的数据大部分都是str类型,是无法直接放到网络模型里跑的,例如下图,很多标签值为str类…...

PulseSensor心率传感器详解(STM32)

目录 一、介绍 二、传感器原理 1.接线图 2.引脚描述 3.工作原理:光电容积法原理 4.工作原理:心率采样数据处理算法 三、程序设计 main.c文件 adcx.h文件 adc.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 PulseSensor传感器是一种基…...

NISP 一级 | 3.1 网络基础知识

关注这个证书的其他相关笔记:NISP 一级 —— 考证笔记合集-CSDN博客 0x01:Internet 和 TCP/IP 协议 因特网(Internet)通过 TCP/IP 协议将遍布在全世界各地的计算机互联,从而形成超级计算机网络。因特网为用户提供了非…...

模拟网络丢包常用方法以及工具

文章目录 背景常用方法代码实现使用方法测试代码 使用网络流量控制工具 常用工具Clumsy 背景 在软件开发过程中,经常需要模拟不同的网络环境来测试应用在不同条件下的表现。 这些模拟可以采用多种方式进行,包括在代码中实现随机丢包、随机延时、乱序&am…...

ABC 370 E - Avoid K Partition

原题链接:E - Avoid K Partition 题意:给长度为n的数组,将数组划分成任意份,但是每一份的总和都不能是k,问有多少种分割方法。 思路:dp,f[i],代表前i个元素满足题意的划分的总和&a…...

C++: set与map容器的介绍与使用

本文索引 前言1. 二叉搜索树1.1 概念1.2 二叉搜索树操作1.2.1 查找与插入1.2.2 删除1.2.3 二叉搜索树实现代码 2. 树形结构的关联式容器2.1 set的介绍与使用2.1.1 set的构造函数2.1.2 set的迭代器2.1.3 set的容量2.1.4 set的修改操作 2.2 map的介绍与使用2.2.1 map的构造函数2.…...

单片机-STM32 看门狗(八)

目录 一、看门狗概念 1、定义: 二、单片机中的看门狗 1、功能描述: 2、看门狗设置部分 预分频寄存器(IWDG_PR) 3、窗口看门狗 特性: 4、看门狗配置: 一、看门狗概念 看门狗--定时器(不属于基本定时器、通用定…...

iOS 18.1将上线新功能,可惜这波国内的小伙伴无缘了

在科技巨头苹果持续推动其生态系统全球化的进程中,最新的iOS 18.1、iPadOS 18.1及macOS 15.1开发者测试版发布,不仅为开发者们带来了新功能的预览,还悄然间对Apple智能功能的地区限制进行了微妙而重要的调整。 这一变化,虽看似细…...

MySQL中DML操作(二)

默认值处理(DEFAULT) 在MySQL中可以使用DEFAULT为列设定一个默认值。如果在插入数据时并未指定该列的值,那么MySQL将默认值添加到该列中。 创建表时指定列的默认值 CREATE TABLE 表名(列名 类型 default 默认值......); 示例:…...

LLMs技术 | 整合Ollama实现本地LLMs调用

前言 近两年AIGC发展的非常迅速,从刚开始的只有ChatGPT到现在的很百家争鸣。从开始的大参数模型,再到后来的小参数模型,从一开始单一的文本模型到现在的多模态模型等等。随着一起进步的不仅仅是模型的多样化,还有模型的使用方式。…...

【C-实践】文件服务器(3.0)

文件服务器1.0文件服务器2.0文件服务器4.0 概述 使用了 tcp epoll 线程池 生产者消费者模型,实现文件服务器 有两个进程,主进程负责接收退出信号用来退出整个程序;子进程负责管理线程池、客户端连接以及线程池的退出 子进程中的主线程生…...

LeetCode 2181.合并零之间的节点

题目描述 给你一个链表的头节点 head ,该链表包含由 0 分隔开的一连串整数。链表的 开端 和 末尾 的节点都满足 Node.val 0 。 对于每两个相邻的 0 ,请你将它们之间的所有节点合并成一个节点,其值是所有已合并节点的值之和。然后将所有 0 …...

千益畅行,共享旅游卡,引领旅游新潮流

千益畅行旅游卡是一款专为旅游爱好者打造的超值卡片。它就像一把神奇的钥匙,为您打开国内丰富多彩的旅游世界。 我们的旅游卡拥有众多令人惊喜的特点。首先,它涵盖了国内 40 多条精心策划的旅游线路,无论您是向往历史文化名城的厚重底蕴&…...

K均值聚类

根据到给点样本的距离,来聚类。 1.曼哈顿距离、 2.欧几里得距离 直线距离 3.切比雪夫距离 4.闵氏距离 5.余弦相似度 对数据大小/长度等不关注,只关注相似度。 6.汉明距离 二进制距离 二、密度聚类 DBSCAN 前提是样本是根据紧密程度分布的。 先用超参…...

【Ubuntu】安装常用软件包

安装java 直接输入java,如果没有安装的话会提醒你输入命令安装,类似 Command java not found, but can be installed with: sudo apt install jdkxxxxxxxxxxxxxx然后选一个版本安装就好,我这里选的jdk17,安装完确认一下 ubuntuVM-4-13-ubu…...

告别复杂配置!Wan2.2-I2V-A14B私有镜像开箱即用,小白也能做视频

告别复杂配置!Wan2.2-I2V-A14B私有镜像开箱即用,小白也能做视频 1. 为什么选择这个私有镜像? 如果你曾经尝试过部署AI视频生成模型,一定经历过这些痛苦:环境配置冲突、依赖版本不匹配、显存不足报错、模型权重下载缓…...

Isaac Sim 4.1.0 国内网络环境下的三种下载与安装提速方案(含离线包处理)

Isaac Sim 4.1.0 国内网络环境下的高效安装指南 对于国内开发者而言,安装NVIDIA Isaac Sim往往面临下载速度缓慢、连接不稳定等问题。本文将提供三种经过验证的解决方案,帮助您快速完成安装。 1. 直链下载加速方案 通过分析Omniverse Launcher的日志文件…...

保姆级教程:从GEO下载Hi-C数据到HiC-Pro完整分析(避坑指南+实战脚本)

从零开始掌握Hi-C数据分析:HiC-Pro全流程实战与避坑指南 Hi-C技术已经成为三维基因组研究的重要工具,但对于刚接触生物信息学的研究人员来说,从原始数据到最终分析结果的过程往往充满挑战。本文将带你完整走通Hi-C数据分析全流程,…...

SenseVoice语音识别问题解决:常见音频格式支持与ITN功能详解

SenseVoice语音识别问题解决:常见音频格式支持与ITN功能详解 1. 音频格式兼容性:你的音频文件能被识别吗? 语音识别系统的第一步就是正确读取音频文件。很多用户在实际使用中遇到的第一个问题往往是:"为什么我的音频文件无…...

教你把歌曲原声调小的5个技巧!简单又好用 赶紧收藏

在日常生活中,调整歌曲原声调小是非常常见的音频处理需求。比如在剪辑视频时,可能需要降低背景音乐的音量以突出旁白;或者在制作播客时,需要平衡人声与背景音的比例;还有在手机上听音乐时,某些歌曲突然出现…...

向量化计算失效的7大隐性陷阱,深度解析HotSpot向量编译器决策逻辑

第一章:向量化计算失效的7大隐性陷阱,深度解析HotSpot向量编译器决策逻辑HotSpot JVM 的向量化编译(Vector API 编译支持与循环自动向量化)并非在所有场景下都能生效。其背后由C2编译器的向量化决策引擎驱动,该引擎基于…...

ncmdumpGUI:一站式NCM音乐格式转换解决方案,轻松搞定加密音乐跨设备播放

ncmdumpGUI:一站式NCM音乐格式转换解决方案,轻松搞定加密音乐跨设备播放 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 清晨的音乐烦恼…...

LabVIEW高手进阶:巧用层叠移位寄存器,轻松实现数据队列与历史状态追踪

LabVIEW高手进阶:巧用层叠移位寄存器实现工业级数据流处理 在工业自动化测试和实时信号处理领域,数据流的连续处理能力往往决定着整个系统的可靠性。传统的数据缓存方案要么消耗过多内存资源,要么引入难以预测的延迟,而LabVIEW中一…...

Ubuntu 23.04 避坑指南:pip install virtualenv 报错 extern-managed-environment 的3种解决方案

Ubuntu 23.04 Python包管理新规深度解析:安全与灵活性的平衡之道 最近升级到Ubuntu 23.04的Python开发者们可能遇到了一个令人困惑的新错误——当尝试使用pip install安装包时,系统会抛出"externally-managed-environment"的警告并拒绝执行。这…...

探索CELLxGENE:突破单细胞数据分析壁垒的交互可视化指南

探索CELLxGENE:突破单细胞数据分析壁垒的交互可视化指南 【免费下载链接】cellxgene An interactive explorer for single-cell transcriptomics data 项目地址: https://gitcode.com/gh_mirrors/ce/cellxgene 单细胞转录组学研究正以前所未有的分辨率揭示细…...