This transport uses the aiohttp library and allows you to send GraphQL queries using the HTTP protocol.
Reference: gql.transport.aiohttp.AIOHTTPTransport
Note
GraphQL subscriptions are not supported on the HTTP transport. For subscriptions you should use the websockets transport <websockets_transport>
.
../code_examples/aiohttp_async.py
There are multiple ways to authenticate depending on the server configuration.
- Using HTTP Headers
transport = AIOHTTPTransport(
url='https://SERVER_URL:SERVER_PORT/graphql',
headers={'Authorization': 'token'}
)
- Using HTTP Cookies
You can manually set the cookies which will be sent with each connection:
transport = AIOHTTPTransport(url=url, cookies={"cookie1": "val1"})
Or you can use a cookie jar to save cookies set from the backend and reuse them later.
In some cases, the server will set some connection cookies after a successful login mutation and you can save these cookies in a cookie jar to reuse them in a following connection (See issue 197):
jar = aiohttp.CookieJar()
transport = AIOHTTPTransport(url=url, client_session_args={'cookie_jar': jar})