我正在使用Swagger来生成我的REST API的文档。根据所写的内容,Swagger UI不提供对基本身份验证的支持(与online editor不同)。我的问题是,我的一个API是需要摘要(甚至不是基本)身份验证的POST。使用摘要式身份验证的Swagger UI
我发现一个可能的解决方案是添加一个固定用户:通过JavaScript代码在请求中传递验证标头。这应该根据Swagger UI documentation轻松完成(请参阅Custom Header Parameters)。我举报有罪代码行:
swaggerUi.api.clientAuthorizations.add("key", new SwaggerClient.ApiKeyAuthorization("Authorization", "XXXX", "header"));
不幸的是,它不起作用。在初始化SwaggerUi对象后,swaggerUi.api
字段结果未初始化(空),因此swaggerUi.api.clientAuthorizations
未定义。我尝试以不同的方式初始化这些领域,每次都失败。我也试过类似的API调用,我在讨论这个主题的线程中发现了API,但是他们都没有工作。有没有人有这个想法?这些文件并不特别清楚。
为了完整起见,我报的js代码片段,我初始化Swagger UI
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,
});
可以肯定,那样它添加标题“授权:基本XXXXXXX“(注意,新版本不希望”基本“字段存在)。问题在于它似乎解决了基本身份验证问题,而不是摘要身份验证问题(它需要用户的MD%:realm:pass)。 – McKracken