How chillicream/graphql-platform works
This repository is a multi-product .NET GraphQL platform. Its central documented workflow is a client request handled by Hot Chocolate, with data shaping and paging applied to queryable sources; GreenDonut provides batching and caching for resolver data access. The tree also shows MCP and OpenAPI adapters and CookieCrumble snapshot-testing support. Some subsystems are represented only by paths, so their internal wiring is omitted rather than inferred.
Main entry points: Core Hot Chocolate · QueryableDefaultFieldHandler.cs Queryable filters · QueryableDefaultSortFieldHandler.cs Queryable sorting · QueryableProjectionScalarHandler.cs Queryable projections
Components 17
GraphQL server
- Hot Chocolate
src/HotChocolate/Core - Queryable filters
src/HotChocolate/Data/src/Data/Filters/Expressions/Handlers/QueryableDefaultFieldHandler.cs - Queryable sorting
src/HotChocolate/Data/src/Data/Sorting/Expressions/Handlers/QueryableDefaultSortFieldHandler.cs - Queryable projections
src/HotChocolate/Data/src/Data/Projections/Expressions/Handlers/QueryableProjectionScalarHandler.cs - Cursor paging
src/HotChocolate/Core/src/Types.CursorPagination/QueryableCursorPagingHandler.cs - Offset paging
src/HotChocolate/Core/src/Types.OffsetPagination/QueryableOffsetPagingHandler.cs - EF cursor paging
src/HotChocolate/Data/src/EntityFramework/Pagination/EfQueryableCursorPagingHandler.cs
Data access
- Queryable source
- GreenDonut loaders
src/GreenDonut/src/GreenDonut/BatchDataLoader.cs - Loader contracts
src/GreenDonut/src/GreenDonut.Abstractions/IDataLoader.cs - Query data loaders
src/GreenDonut/src/GreenDonut.Data/Internal/QueryDataLoader.cs
API adapters
- MCP adapter
src/HotChocolate/Adapters/src/Adapters.Mcp.Core/Handlers/CallToolHandler.cs - OpenAPI adapter
src/HotChocolate/Adapters/src/Adapters.OpenApi.Core/Execution/DynamicEndpointMiddleware.cs
Snapshot testing
- Snapshot engine
src/CookieCrumble/src/CookieCrumble/Snapshot.cs - Value formatters
src/CookieCrumble/src/CookieCrumble/Formatters/SnapshotValueFormatters.cs - Test framework hooks
src/CookieCrumble/src/CookieCrumble.Xunit/CookieCrumbleXunit.cs
Other components
- API client
Connections 19
- API client → Hot Chocolate: sends request
- Hot Chocolate → Queryable filters: builds filters
- Hot Chocolate → Queryable sorting: builds sorting
- Hot Chocolate → Queryable projections: builds projections
- Hot Chocolate → Cursor paging: dispatches paging
- Hot Chocolate → Offset paging: dispatches paging
- Hot Chocolate → GreenDonut loaders: resolver fetches
- Queryable filters → Queryable source: filters query
- Queryable sorting → Queryable source: sorts query
- Queryable projections → Queryable source: projects query
- Cursor paging → Queryable source: slices query
- Offset paging → Queryable source: pages query
- EF cursor paging → Queryable source: slices EF query
- GreenDonut loaders → Loader contracts: implements contract
- Query data loaders → Queryable source: queries source
- Hot Chocolate → MCP adapter: exposes operations
- Hot Chocolate → OpenAPI adapter: serves endpoints
- Test framework hooks → Snapshot engine: supports snapshots
- Snapshot engine → Value formatters: formats values