如何在 Swagger UI 中禁用缓存

How to disable caching in Swagger UI

提问人:Poppy 提问时间:7/20/2016 更新时间:7/31/2023 访问量:11606

问:

我正在使用 swagger UI 来记录 API。我已经使用 docker 部署了 UI 和节点服务器(具有 JSON)。部署后,当我在JSON文件中进行更改时,除非我刷新整个页面,否则不会在swagger-UI中反映相同的内容。

我尝试添加swagger-ui的index.html,清单文件具有以下配置<html manifest="example.appcache">

CACHE MANIFEST
NETWORK:
*

即使在设置清单后,JSON 仍会从缓存中加载。有人可以帮忙吗?

json swagger swagger-ui

评论


答:

0赞 franchb 3/23/2020 #1

Swagger 存储库问题进行了讨论和一些解决方案,例如创建请求拦截器并在发送请求之前设置标头:

var interceptor = {
    requestInterceptor: {
        apply: function (requestObj) {

           var headers = request.Obj.headers || {};

           headers['If-Modified-Since'] = 'Mon, 26 Jul 1997 05:00:00 GMT';
           headers['Cache-Control'] = 'no-cache';
           headers['Pragma'] = 'no-cache';
           return requestObj;
       }
    }
};

// assign the request interceptor in the UI
new SwaggerClient({
  url: 'http://localhost:8000/v2/petstore.json',
  requestInterceptor: interceptor.requestInterceptor,
0赞 bastianowicz 6/20/2022 #2

您只需在浏览器开发工具(网络选项卡)中禁用缓存即可。

评论

1赞 mahdi 9/1/2023
它仅在 devtools 打开时才有效
0赞 gsan 7/1/2022 #3

如果您使用的是版本 3 (Springdoc),则只需将以下内容添加到您的 application.yaml 文件中即可。

springdoc:
  cache:
    disabled: true

与application.properties文件相关的属性。