我正在尝试通过Python使用具有OpenAPI规范的应用程序接口。我生成了openapi_client,并使用其中一个生成的示例开始。对API的第一次调用成功,但后续调用因会话ID无效而失败。
securitySchemes:
user_session_authentication:
description: [...]
type: apiKey
in: header
name: SOME_PREFIX_user_session_id
security:
- user_session_authentication: [] # default for all actions is user_session_id!import openapi_client
from openapi_client.api import some_api
from openapi_client.model.inline_response200 import InlineResponse200
from openapi_client.model.inline_response2002 import InlineResponse2002
from pprint import pprint
with openapi_client.ApiClient() as api_client:
username = "john"
password = "45d75ii47"
api_instance = some_api.SomeApi(api_client)
username = username
password = password
body = function_a("foo")
api_response = api_instance.foo(username=username, password=password, body=body)
pprint(api_response)
api_response = api_instance.bar()
pprint(api_response)对foo()的http响应包含键-值对'user_session_id': '1bf92fc3-7f2a-450f-a472-03a07a70bd8d'。如何将这个键值对添加到第二个请求的头部?目前,第二个请求的头部只包含以下内容:{'Accept': 'application/json', 'User-Agent': 'OpenAPI-Generator/1.0.0/python'}
发布于 2021-04-05 01:36:20
我发现了this问题,并根据我的用例调整了代码:
import openapi_client
from openapi_client.api import some_api
from openapi_client import Configuration
from openapi_client.model.inline_response200 import InlineResponse200
from openapi_client.model.inline_response2002 import InlineResponse2002
from pprint import pprint
with openapi_client.ApiClient() as api_client:
username = "john"
password = "45d75ii47"
api_instance = some_api.SomeApi(api_client)
username = username
password = password
body = function_a("foo")
api_response = api_instance.foo(username=username, password=password, body=body)
pprint(api_response)
conf = Configuration()
conf.api_key = {"SOME_PREFIX_user_session_id": api_response.user_session_id}
api_client = openapi_client.ApiClient(None, "SOME_PREFIX_user_session_id", conf.get_api_key_with_prefix("user_session_id"))
api_instance = some_api.SomeApi(api_client)
api_response = api_instance.bar()
pprint(api_response)https://stackoverflow.com/questions/66929149
复制相似问题