Skip to main content

Useful function when interacting with GraphQL APIs

Project description

https://circleci.com/gh/Mergifyio/graphql-utils.svg?style=svg Mergify Status

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

graphql-utils-0.4.tar.gz (7.9 kB view hashes)

Uploaded Source

Built Distribution

graphql_utils-0.4-py3-none-any.whl (7.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page