如何为Swagger UI的身份验证令牌添加标头字段?

时间:2015-08-25 23:10:24

标签: rest service documentation swagger-ui

我的团队刚刚开始为以前由大型单片遗留应用程序处理的数据创建RESTful服务。我们想用Swagger UI记录api,我设置了一个问题。

我需要传递SAML令牌作为标头参数,否则当我们尝试点击"试试看!"按钮我收到401身份验证错误。如何在Swagger UI中添加字段,以便有人可以为请求中的SAML令牌添加字符串?

1 个答案:

答案 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字符串,我的请求就可以了,我得到了数据!