首页 > 解决方案 > 在 Swagger UI 中拦截消息

问题描述

我正在尝试使用以下代码在 Swagger 中拦截响应消息:

var full = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '');

var ui = SwaggerUIBundle({

    url: full + "/swagger/v2/swagger.json",

    responseInterceptor: function (resp) {
        console.log('#response');
        return resp;
    },

    onComplete: function () {
        console.log('#onComplete');

    }
});

问题是响应拦截器只被调用一次(对于https://localhost:5001/swagger/v2/swagger.json文件)并且它不会被任何 API 消息调用。

是否可以拦截所有招摇的 API 消息?

根据这篇文章,它应该是可能的:https ://stackoverflow.com/a/46892528/1882699 ,但由于某种原因这对我不起作用。

标签: swaggerswagger-ui

解决方案


这个 Swagger UI 的配置对我有用,在这篇文章中。

不同之处在于这一行:

dom_id: '#swagger-ui',

当使用此行时,拦截器会拦截每条消息。如果没有这条线,拦截器只会捕获第一条消息。


推荐阅读