【发布时间】:2016-09-27 10:53:34
【问题描述】:
我正在使用 Swagger 来生成我的 REST API 的文档。根据所写的内容,Swagger UI 不提供对基本身份验证的支持(与 online editor 不同)。我的问题是我的 API 之一是需要摘要(甚至不是基本)身份验证的 POST。
我发现的一个可能的解决方案是通过 javascript 代码在请求中添加一个固定的 user:pass authentication 标头。这应该根据Swagger UI documentation 轻松完成(请参阅Custom Header Parameters)。我举报涉案代码行:
swaggerUi.api.clientAuthorizations.add("key", new SwaggerClient.ApiKeyAuthorization("Authorization", "XXXX", "header"));
不幸的是,它不起作用。在我初始化 SwaggerUi 对象后,swaggerUi.api 字段未初始化(null),因此 swaggerUi.api.clientAuthorizations 未定义。我尝试以不同的方式初始化这些字段,但每次都失败。我还尝试了对我在讨论该主题的线程中找到的 API 的类似调用,但它们都没有奏效。有人对此有想法吗?文档对此并不是特别清楚。
为了完整起见,我报告了我初始化Swagger UI的js sn-p
var urlPush = "./doc_push.yaml";
window.swaggerUiPush = new SwaggerUi({
url: urlPush,
dom_id: "swagger-ui-container-push",
supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
onFailure: function(data) {
log("Unable to Load SwaggerUI");
},
docExpansion: "list",
jsonEditor: false,
defaultModelRendering: 'model',
showRequestHeaders: false,
});
【问题讨论】:
标签: javascript authentication swagger swagger-ui swagger-2.0