我的团队刚刚开始为以前由大型单片遗留应用程序处理的数据创建RESTful服务。我们想用Swagger UI记录api,我设置了一个问题。
我需要传递SAML令牌作为标头参数,否则当我们尝试点击"试试看!"按钮我收到401身份验证错误。如何在Swagger UI中添加字段,以便有人可以为请求中的SAML令牌添加字符串?
答案 0 :(得分:3)
实际上这很容易。我在文档中看到了对答案的引用,但我并不真正理解它的含义。服务URL所在的顶部旁边有一个字段,您可以使用该字段输入要作为标头值传递的字符串。该输入字段的id为#input_apiKey。
然后在index.html文件中,您只需在addApiKeyAuthorization()javascript函数中添加一行,告诉它获取该字段的值并将其作为您需要的任何值传递。
示例:
function addApiKeyAuthorization(){
var key = $('#input_apiKey')[0].value;
if(key && key.trim() != "") {
swaggerUi.api.clientAuthorizations.add("samlToken", new SwaggerClient.ApiKeyAuthorization("samlToken", key, "header"));
swaggerUi.api.clientAuthorizations.add("Content-Type", new SwaggerClient.ApiKeyAuthorization("Content-Type", "application/json", "header"));
swaggerUi.api.clientAuthorizations.add("Accept", new SwaggerClient.ApiKeyAuthorization("Accept", "application/json", "header"));
}
}
$('#input_apiKey').change(addApiKeyAuthorization);
这会将Content-Type和Accept标头设置为每个请求的相同值,并获取绿色标头中页面顶部的输入字段中的值,并将其设置为我的SAML标记。所以现在如果我粘贴一个有效的SAML字符串,我的请求就可以了,我得到了数据!