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

最佳答案

是的,只需创建一个授权对象,其键名与securityDefinitions中的名称对齐,然后将其传递给构造函数即可。假设安全性定义为:

"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传递凭据信息。如果您已打开基本授权,这会导致问题,因为basic-auth会触发选项预检(花费额外的往返费用,并且requires将服务器设置为对所有选项请求做出200次响应)和disallows wildcard origin in CORS

09-17 08:44