Skip to main content

Setting Up GraphQL Clients

To maximize efficiency and code reusability when integrating with the Causely GraphQL API, we recommend setting up proper GraphQL client libraries rather than using raw HTTP requests. This approach provides better error handling, type safety, query validation, and cleaner code that can be reused across multiple API operations.

Install GraphQL Client Libraries​

Install the recommended GraphQL client libraries for your programming language to enable robust API integration with automatic query validation and enhanced developer experience:

pip install gql[all] requests

Create Reusable GraphQL Client Functions​

Implement these language-specific GraphQL client functions that integrate seamlessly with the authentication methods from the previous section. These functions provide a clean, reusable interface for executing any GraphQL query against the Causely API:

from gql import gql, Client
from gql.transport.requests import RequestsHTTPTransport

def create_graphql_client(access_token):
"""Create a GraphQL client with authentication."""
transport = RequestsHTTPTransport(
url="https://api.causely.app/query/",
headers={"Authorization": f"Bearer {access_token}"}
)
return Client(transport=transport, fetch_schema_from_transport=True)

def post_query(client, query_string, variables=None):
"""Execute a GraphQL query using the client."""
query = gql(query_string)
return client.execute(query, variable_values=variables)

# Usage example:
# client = create_graphql_client(get_causely_access_token(client_id, secret))
# result = post_query(client, query_string, variables)