在国内网络经常遇到Swagger UI加载缓慢的问题,这是由于Swagger UI的CSS和JS代码源在国外导致的,所以我们的解决方法是更改Swagger UI的CSS代码和JS代码源到国内的CND实现加速。这里以Fastapi框架的Swagger UI加载缓慢举例:
一、解决方法
在main.py(入口代码)代码中新增如下代码:
from fastapi import applications
from fastapi.openapi.docs import get_swagger_ui_html
def swagger_monkey_patch(*args, **kwargs):
return get_swagger_ui_html(
*args, **kwargs,
swagger_js_url="https://cdn.staticfile.net/swagger-ui/5.1.0/swagger-ui-bundle.min.js",
swagger_css_url="https://cdn.staticfile.net/swagger-ui/5.1.0/swagger-ui.min.css")
applications.get_swagger_ui_html = swagger_monkey_patch
需要注意的是:上述代码要放置在app=FastAPI()代码之前,即如下所示的代码之前
app = FastAPI(
title="FastAPI",
description="FastAPI接口文档",
version="1.0.0",
)
二、常见问题
如果按照上述方案新增代码后出现入下图所示的提示,请尝试更换swagger_js_url和swagger_css_url版本即可。
例如:https://cdn.staticfile.net/swagger-ui/[版本号]/swagger-ui-bundle.min.js,链接数字即为版本号,你可以访问https://cdn.staticfile.net/网站搜索swagger-ui
查找适合的css和js版本即可