初始化JS Swagger客户端时传递身份验证凭据?

时间:2015-08-21 21:33:08

标签: javascript swagger-2.0

在JS中,我们通常会在创建凭据时传入凭据,但Swagger的文档仅显示在创建客户端对象后如何执行此操作。

1 个答案:

答案 0 :(得分:4)

是的,只需创建一个授权对象,其密钥名称与securityDefinitions中的名称对齐,并将其传递给构造函数。假设securityDefinition为:

"securityDefinitions" : {
  "sec_def_entry" : {
    "type" : "apiKey",
    "name" : "entry_name",
    "in" : "header"
  }
}

代码如下所示:

SwaggerClient = require('swagger-client'); //node
SwaggerClient = window.SwaggerClient;  //browser

var auths = {
  sec_def_entry : new SwaggerClient.ApiKeyAuthorization("entry_name", "special-key","header")
};


var client = new SwaggerClient({
  "url": 'https://example.com/swagger.json',
  authorizations: auths
})

但请注意,这将导致Swagger在从服务器检索规范时传递凭据信息。如果您已启用基本授权,这可能会导致问题,因为基本身份验证会触发选项预检(花费额外的往返费用,requires设置服务器响应200响应所有选项请求)和{{3 }}