如何将多个授权密钥传递给 swagger-js?
How to pass multiple authorization keys to swagger-js?
使用 swagger-ui version 2.1.0 I'm trying to pass multiple authorization params to the URL requested. Looking at the example given on github 我试过:
var api_key = 'api_key',
username = 'username';
swaggerUi.api.clientAuthorizations.add('api_key', new SwaggerClient.ApiKeyAuthorization('api_key', api_key, 'query'));
swaggerUi.api.clientAuthorizations.add('username', new SwaggerClient.ApiKeyAuthorization('username', username, 'query'));
但这导致只有第一个被传递给 XHR,例如:
http://127.0.0.1:8000/api/v1/capability?api_key=api_key
如果我调换顺序:
swaggerUi.api.clientAuthorizations.add('username', new SwaggerClient.ApiKeyAuthorization('username', username, 'query'));
swaggerUi.api.clientAuthorizations.add('api_key', new SwaggerClient.ApiKeyAuthorization('api_key', api_key, 'query'));
然后:
http://127.0.0.1:8000/api/v1/channel?username=username
我也试过在添加中使用对象表示法:
swaggerUi.api.clientAuthorizations.add({
'api_key': new SwaggerClient.ApiKeyAuthorization("api_key", api_key, "query"),
'username': new SwaggerClient.ApiKeyAuthorization("username", username, "query")
});
但同样只传递了一个参数:
http://127.0.0.1:8000/api/v1/capability?api_key=api_key
函数的名称表明应该可以传递多个授权参数而不会发生任何冲突,但实践表明并非如此。
似乎对我有用的唯一方法是将自定义函数绑定到 swaggerUi.api.clientAuthorizations.apply
,例如:
swaggerUi.api.clientAuthorizations.apply = function (obj) {
obj.url += '?api_key=' + api_key + '&username=' + username;
}
(该示例假定 api_key 和用户名存在于当前范围内)
swaggerUi.api.clientAuthorizations.apply
有两个参数 obj, securities
- 这是您要用来将凭据附加到 HTTP 请求的第一个参数。
使用 swagger-ui version 2.1.0 I'm trying to pass multiple authorization params to the URL requested. Looking at the example given on github 我试过:
var api_key = 'api_key',
username = 'username';
swaggerUi.api.clientAuthorizations.add('api_key', new SwaggerClient.ApiKeyAuthorization('api_key', api_key, 'query'));
swaggerUi.api.clientAuthorizations.add('username', new SwaggerClient.ApiKeyAuthorization('username', username, 'query'));
但这导致只有第一个被传递给 XHR,例如:
http://127.0.0.1:8000/api/v1/capability?api_key=api_key
如果我调换顺序:
swaggerUi.api.clientAuthorizations.add('username', new SwaggerClient.ApiKeyAuthorization('username', username, 'query'));
swaggerUi.api.clientAuthorizations.add('api_key', new SwaggerClient.ApiKeyAuthorization('api_key', api_key, 'query'));
然后:
http://127.0.0.1:8000/api/v1/channel?username=username
我也试过在添加中使用对象表示法:
swaggerUi.api.clientAuthorizations.add({
'api_key': new SwaggerClient.ApiKeyAuthorization("api_key", api_key, "query"),
'username': new SwaggerClient.ApiKeyAuthorization("username", username, "query")
});
但同样只传递了一个参数:
http://127.0.0.1:8000/api/v1/capability?api_key=api_key
函数的名称表明应该可以传递多个授权参数而不会发生任何冲突,但实践表明并非如此。
似乎对我有用的唯一方法是将自定义函数绑定到 swaggerUi.api.clientAuthorizations.apply
,例如:
swaggerUi.api.clientAuthorizations.apply = function (obj) {
obj.url += '?api_key=' + api_key + '&username=' + username;
}
(该示例假定 api_key 和用户名存在于当前范围内)
swaggerUi.api.clientAuthorizations.apply
有两个参数 obj, securities
- 这是您要用来将凭据附加到 HTTP 请求的第一个参数。