我能够使用requests
正确验证并从 API 接收响应的模块创建一个简单的 API 接口。但是,当我尝试使用虚张声势,从 swagger 文件创建客户端,并手动将授权令牌添加到头部时,它失败并显示:
bravado.exception.HTTPUnauthorized: 401 Unauthorized: Error(code=u'invalid_credentials', message=u'Missing authorization header',
我相信我正确地添加了授权标头。
我用来创建客户端的代码如下。如图所示,我尝试以两种方式添加授权令牌:
- 在
http_client
设置中通过set_api_key
- 在
Swagger.from_url(...)
步骤中添加request_headers
.
然而,这两种选择都失败了。
from bravado.requests_client import RequestsClient
from bravado.client import SwaggerClient
http_client = RequestsClient()
http_client.set_api_key(
'https://api.optimizely.com/v2', 'Bearer <TOKEN>',
param_name='Authorization', param_in='header'
)
headers = {
'Authorization': 'Bearer <TOKEN>',
}
client = SwaggerClient.from_url(
'https://api.optimizely.com/v2/swagger.json',
http_client=http_client,
request_headers=headers
)
我的问题是,如何正确地将授权标头添加到 bravado SwaggerClient?