Skip to main content

Guidelines for Consuming Entities GraphQL API

Introduction​

We provide a GraphQL API built using Hot Chocolate a leading .NET GraphQL server from ChilliCream.

For teams using .NET, we strongly recommend leveraging Strawberry Shake a GraphQL client library also from ChilliCream which provides full client generation based on our GraphQL schema.

This allows for a strongly-typed, resilient, and developer-friendly experience when consuming our API.


.NET Client Recommendation: Strawberry Shake​

Benefits​

  • Strong typing for queries, mutations, and responses
  • Compile-time error checking
  • Built-in support for error handling, state management, and caching
  • Automatically generated client code based on our API schema

How to Get Started​

1. Download GraphQL Schema from our Endpoint​

Schema is available at GET https://{...}/entities/entities-api/graphql/v1/schema.graphql. This action will download the entire schema definition which then can be used to generate GraphQl client.

Install and Get Started​

All required information is available at Strawberry Shake Get Started page. Simply follow the instructions.

Example Usage​

After client has been setup, usage is quite straight forward.

Query Example​

public class ProductService
{
private readonly IYourGraphQLClient _client;

public ProductService(IYourGraphQLClient client)
{
_client = client;
}

public async Task<IReadOnlyList<ProductDto>> GetProductsAsync()
{
var result = await _client.GetProducts.ExecuteAsync();

if (result.IsErrorResult())
{
// Handle error accordingly
}

return result.Data.Products.Select(p => new ProductDto
{
Id = p.Id,
Name = p.Name
}).ToList();
}
}

LanguagePossible ClientDocumentation Link
JavaScript / TypeScriptApollo Clienthttps://www.apollographql.com/docs/react/
Python gql(GraphQL client for Python)https://gql.readthedocs.io/en/latest/
PHPGraphQL Client (softonic/graphql-client)https://github.com/softonic/graphql-client
Gomachinebox/graphqlhttps://github.com/machinebox/graphql
JavaApollo Android / Netflix DGS Frameworkhttps://netflix.github.io/dgs/

General Best Practices​

  • Always use generated clients when possible (strong typing, less error-prone).
  • Avoid manually building GraphQL queries in raw strings unless absolutely necessary.
  • Treat the schema as the single source of truth — regenerate your client when the schema changes.
  • Handle errors gracefully — GraphQL errors come back in a standard format.
  • Be mindful of API versioning and breaking changes — follow provided changelogs.

Additional Resources​