首页 > 解决方案 > Python GraphQL gql 客户端认证

问题描述

我很难将 GraphQL 与 Python 一起使用,因为建议的库:gql完全没有文档记录。

我如何发现要提供 api url,我需要像这样将 RequestsHTTPTransport 对象传递给 Client:

client = Client(transport=RequestsHTTPTransport(url='https://some.api.com/v3/graphql'))

但是如何提供像承载密钥这样的凭据?

PS我注意到它 RequestsHTTPTransport 也接受一个身份验证参数,描述为:

:param auth: Auth tuple or callable to enable Basic/Digest/Custom HTTP Auth

我怎么还是不知道如何创建这个元组或可调用以使用承载密钥:(

谢谢指教

标签: pythonoauthgraphqlgraphql-python

解决方案


您可以将其添加到标题中。

reqHeaders = {
    'x-api-key' : API_KEY,
    'Authorization': 'Bearer ' + TOKEN_KEY // This is the key
}

_transport = RequestsHTTPTransport(
    url=API_ENDPOINT,
    headers = reqHeaders,
    use_json=True,
)

client = Client(
    transport = _transport,
    fetch_schema_from_transport=True,
)

推荐阅读