Skip to content

Using the CoCore API from Python

To assist Python developers in integrating with the CoCore GraphQL API, here's a comprehensive guide utilizing the gql library.

1. Install the gql Library

Begin by installing the gql library using pip:

bash
pip install gql

2. Initialize the GraphQL Client

Create an instance of the Client class, specifying the GraphQL endpoint and including the necessary authorization headers:

python
from gql import Client
from gql.transport.aiohttp import AIOHTTPTransport

# Define the transport with the endpoint and headers
transport = AIOHTTPTransport(
    url="$MY_COCORE_URL/graphql",
    headers={"Authorization": "Bearer YOUR_API_KEY"}
)

# Create the GraphQL client
client = Client(transport=transport, fetch_schema_from_transport=True)

3. Define GraphQL Queries

Construct your GraphQL queries or mutations. Here's an example of a query to fetch job information:

python
from gql import gql

# Define the query
query = gql("""
    query GetJob($id: ID!) {
        job(id: $id) {
            id
            name
            quantity
        }
    }
""")

4. Execute Queries and Handle Responses

Execute the query and process the response accordingly:

python
import asyncio

async def fetch_job(job_id):
    # Execute the query with variable binding
    params = {"id": job_id}
    async with client as session:
        try:
            response = await session.execute(query, variable_values=params)
            job = response["data"]["job"]
            print(f"Name: {job['name']}, Quantity: {job['quantity']}")
        except Exception as e:
            print(f"An error occurred: {e}")

# Run the asynchronous function
asyncio.run(fetch_job("job-id"))

5. Error Handling

Implement error handling to manage potential issues:

python
async def fetch_job(job_id):
    # Execute the query with variable binding
    params = {"id": job_id}
    async with client as session:
        try:
            response = await session.execute(query, variable_values=params)
            if "errors" in response:
                for error in response["errors"]:
                    print(f"Error: {error['message']}")
            else:
                job = response["data"]["job"]
                print(f"Name: {job['name']}, Quantity: {job['quantity']}")
        except Exception as e:
            print(f"An exception occurred: {e}")

6. Explore API Documentation

For detailed information on available queries, mutations, and schema definitions, refer to the CoCore API documentation at https://docs.wearecococo.com.

By following these steps, Python developers can effectively integrate with the CoCore GraphQL API using the gql library.

Connect. Combine. Collaborate.
The pioneering open integration platform, dedicated to transforming connectivity in the printing industry.