在国内网络经常遇到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://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.20.1/swagger-ui-bundle.min.js", swagger_css_url="https://cdnjs.cloudflare.com/ajax/libs/swagger-ui/5.20.1/swagger-ui.min.css" ) applications.get_swagger_ui_html = swagger_monkey_patch
ps: 上述两个链接也可替换为国内静态资源库链接提升加载速度,鉴于国内静态资源库劫持事件,暂采用cloudflare。
需要注意的是:上述代码要放置在app=FastAPI()代码之前,即如下所示的代码之前
app = FastAPI( title="FastAPI", description="FastAPI接口文档", version="1.0.0", )
常见问题
如果按照上述方案新增代码后出现入下图所示的提示,请尝试更换swagger_js_url和swagger_css_url版本即可。