我正在将swagger UI集成到我的项目中。我需要传递 token 才能发出请求。

const mytoken = "heareismytoken";

const ui = SwaggerUIBundle({
    url: "/swagger/v2/swagger.json",
    dom_id: '#swagger-ui',
    deepLinking: true,
    requestInterceptor: function (req) {
        var key = mytoken;

        if (key && key.trim() !== "") {
            req.headers.Authorization = 'Bearer ' + key;
            console.log('Authorized from authKey');
        }
    },
    presets: [
        SwaggerUIBundle.presets.apis,
        SwaggerUIStandalonePreset
    ],
    plugins: [
        SwaggerUIBundle.plugins.DownloadUrl
    ],
    layout: "StandaloneLayout",
});

使用上面的代码,我获得了成功的响应,但是问题是curl命令显示为未定义,如下图javascript - 在swagger UI中显示为undefined且带有 token 的Curl命令。-LMLPHP

如果我删除了以下代码部分
    /*
    requestInterceptor: function (req) {
        var key = mytoken;

        if (key && key.trim() !== "") {
            req.headers.Authorization = 'Bearer ' + key;
            console.log('Authorized from authKey');
        }
    }, */

显示curl命令,但是响应抛出认证错误。

我不知道我在哪里想念它。如何同时显示CURL命令和响应。

最佳答案

根据the documentation of Swagger UI:

在提供的代码中,返回语句缺少。正确的代码将是:

requestInterceptor: function (req) {
    var key = mytoken;

    if (key && key.trim() !== "") {
        req.headers.Authorization = 'Bearer ' + key;
        console.log('Authorized from authKey');
    }
    return req; // <--- This line was added
}

关于javascript - 在swagger UI中显示为undefined且带有 token 的Curl命令。,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60883186/

10-09 03:56