Skip to content

Using the CoCore API from .Net/C#

To assist .NET/C# developers in integrating with your GraphQL API, here's a comprehensive guide utilizing the GraphQL.Client library.

1. Install the GraphQL.Client Package

Begin by adding the GraphQL.Client package to your project. You can install it via NuGet Package Manager or the Package Manager Console:

bash
Install-Package GraphQL.Client

2. Initialize the GraphQL Client

Create an instance of GraphQLHttpClient pointing to your GraphQL endpoint. Ensure you have the appropriate serializer installed, such as GraphQL.Client.Serializer.Newtonsoft:

csharp
using GraphQL.Client.Http;
using GraphQL.Client.Serializer.Newtonsoft;

var client = new GraphQLHttpClient("$MY_COCORE_URL/graphql", new NewtonsoftJsonSerializer());

3. Authenticate Requests

Include the API Key in the client, you can generate an API Key from the settings menu in your CoCore instance.

csharp
client.HttpClient.DefaultRequestHeaders.Add("Authorization", "Bearer YOUR_API_KEY");

4. Define GraphQL Requests

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

csharp
using GraphQL;
using GraphQL.Client.Abstractions;

var request = new GraphQLRequest
{
    Query = @"
    query GetJob($id: ID!) {
        job(id: $id) {
            id
            name
            quantity
        }
    }",
    Variables = new { id = "job-id" }
};

5. Execute Requests and Handle Responses

Send the request and process the response accordingly:

csharp
using GraphQL.Client.Abstractions;
using System.Threading.Tasks;

public async Task FetchUserAsync()
{
    var response = await client.SendQueryAsync<GraphqlResponse>(request);
    var job = response.Data.data.job;
    Console.WriteLine($"Name: {job.name}, Quantity: {job.quantity}");
}

public class GraphqlResponse
{
    public ResponseType data { get; set; }
}

public class ResponseType
{
    public JobType job { get; set; }
}

public class JobType
{
    public string id { get; set; }
    public string name { get; set; }
    public int quantity { get; set; }
}

6. Error Handling

Implement error handling to manage potential issues:

csharp
try
{
    var response = await client.SendQueryAsync<GraphqlResponse>(request);
    if (response.Errors != null)
    {
        // Handle errors
        foreach (var error in response.Errors)
        {
            Console.WriteLine($"Error: {error.Message}");
        }
    }
    else
    {
        var job = response.Data.data.job;
        Console.WriteLine($"Name: {job.Name}, Quantity: {job.Quantity}");
    }
}
catch (Exception ex)
{
    Console.WriteLine($"Exception: {ex.Message}");
}

7. Explore API Documentation

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

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