Useful function when interacting with GraphQL APIs
Project description
The graphql-utils Python package is a collection of utilities function for interacting with GraphQL libraries. It is meant to be library agnostic so it should work with whatever library or protocol you want.
Usage
Multi-requests
The multi-requests module allows you to send a request multiple times with different parameter. It also supports pagination, making sure that you’ll get all the results for all the requests you sent.
Example:
import requests from graphql_utils import multi def requests_api(query): return requests.post("https://myapi.com/graphql", json=query) userlist = ( {"login": "jd"}, {"login": "sileht"}, {"login": "foo"}, {"login": "bar"}, ) result_iterator = multi.multi_query(""" user(login: "{login}") {{ pets(first: 100{after}) {{ nodes {{ name }} pageInfo {{ hasNextPage endCursor }} }} }}""", iterable=userlist, pageinfo_path=("pets", "pageInfo"), send_fn=requests_api, )
This will send one GraphQL requests with 4 queries (one for each user from userlist). As pageinfo_path was specified, if any of the query does not return all information in one request, a new query using the endCursor will be automatically sent to get the next results.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for graphql_utils-0.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3421c821ccce7939dff7d2f95e251b56bf02c8baacb8c469ad6518a5bcb0a51 |
|
MD5 | 18982d9a7e716e77a2036d23fedba6bc |
|
BLAKE2b-256 | 954e6c88f7898815a4069f07ad583ca5940dfe436596f18dfdebe0f1539b3094 |