ChilliCream GraphQL Platform Documentation

repository·main·Indexed 26 days ago

https://github.com/chillicream/graphql-platform

A comprehensive ecosystem of tools for .NET and NodeJS developers to build, manage, and consume GraphQL APIs. The platform includes Hot Chocolate (GraphQL server), Strawberry Shake (type-safe client), Green Donut (DataLoader for N+1 problem solving), and Nitro (GraphQL IDE). It also features support for NATS and RabbitMQ backplanes for scaling subscriptions and the @chillicream/mocha-visualizer for messaging system topology visualization.

Tokens
323.5K
Snippets
957
Records
1.5K
Agent score
91%

What's inside ChilliCream GraphQL Platform

  1. Overview of Nitro: Observability and Governance for APIs

    main

    Nitro is a GraphQL IDE designed to simplify API creation, debugging, and collaboration. It provides a suite of tools for the entire API lifecycle, including:

    • GraphQL IDE: An intuitive UI for executing queries and mutations, visualizing schemas, and a powerful editor with syntax highlighting, auto-completion, and error highlighting.
    • Collaboration Tools: Features for sharing documents, API configurations, and environment settings to synchronize work across teams.
    • Schema Registry: A centralized repository to store, version, and manage GraphQL schemas, providing a history of modifications and visibility into API evolution.
    • Client Registry: A centralized location to manage and track client applications that consume your APIs, helping identify which clients are affected by schema changes.
    • DevOps Integration: Tools to support API maintenance and evolution through integrated registries.
  2. Overview of the Nitro Ecosystem

    main

    The Nitro ecosystem unifies ChilliCream's GraphQL tools into three primary components:

    • Nitro App (formerly Banana Cake Pop): A tool for developing, testing, and optimizing GraphQL APIs (available as Desktop or Cloud).
    • Nitro CLI (formerly Barista): A command-line interface for managing APIs, publishing schema versions, and deploying clients.
    • Nitro Server (formerly Banana Cake Pop Services): Backend services for managing GraphQL schemas and monitoring API performance.
  3. Overview of Fusion Federated GraphQL Gateway

    main

    Fusion is a GraphQL gateway used to compose multiple upstream services into a single, unified GraphQL API. It implements the GraphQL Composite Schemas specification.

    Fusion allows you to split a single API into multiple smaller, independently deployable services (Subgraphs) without changing the client-facing contract. The gateway orchestrates execution by routing queries to the appropriate subgraphs and merging their results into a single response.

    Supported Subgraph Types:

    • GraphQL services
    • OpenAPI-based REST services
    • gRPC services
  4. Overview of ChilliCream GraphQL Platform

    main
    The ChilliCream GraphQL Platform provides a suite of open-source tools designed to help developers build, consume, and explore GraphQL APIs. The platform focuses on strongly-typed schemas, efficient data fetching, and developer-friendly, self-documented APIs.
  5. Understand the Mocha endpoint model

    main

    In Mocha, an endpoint is the combination of a transport address (like a queue or exchange) and a processing pipeline. Mocha manages two types of endpoints:

    1. Receive Endpoints: These consume messages. Every registered handler becomes a receive endpoint.
    2. Dispatch Endpoints: These produce messages. Every message you publish or send is dispatched through a dispatch endpoint.

    By default, Mocha automatically creates these endpoints using naming conventions based on your handler and message types. You can override these defaults to manually configure the topology.

  6. Explore APIs with Nitro App

    main

    Nitro App is a GraphQL IDE and API Cockpit used to explore, share, and test GraphQL APIs. It can be used in several ways:

    • Desktop App: Downloadable installation.
    • Web App: Accessible via browser at https://nitro.chillicream.com.
    • Middleware: Integrated directly into your GraphQL endpoint.

    Middleware is available for:

    • .NET: via the HotChocolate.AspNetCore NuGet package.
    • NodeJS: via the @chillicream/nitro-express-middleware npm package.
  7. New features in Hot Chocolate 14

    main

    Hot Chocolate 14 introduces several improvements for building GraphQL servers:

    • Simplified Dependency Injection: You can now inject services directly into resolvers without using the [Service] attribute.
    • Fluent Selector Inspection API: A new API to inspect which fields are requested within a resolver for optimized data fetching.
    • Improved Pagination: New primitives like Page<T> and PagingArguments are available. It also includes keyset pagination support for Entity Framework Core.
    • Advanced DataLoader: Supports stateful operations, allowing batching of nested paging requests into single database queries, and supports projections.
    • Source Generators for Resolvers: An opt-in feature using the [ObjectType<T>] attribute to combine implementation-first and code-first approaches.
    • Enhanced Relay Support: Improved integration with custom data on edges, connection type shape control, and updated node ID serializers.
    • Security: Integrated IBM cost specification is enabled by default to prevent expensive operations.
    • Optimized Transport: Implements the latest GraphQL over HTTP specification and a reimplemented persisted operation pipeline with semantic routes.
  8. Understand Fusion Composition

    main

    Composition is a build-time process that transforms one or more source schemas (exported by your subgraphs) into a single, validated execution schema. This execution schema is packaged into a Fusion archive, which the gateway uses to plan and execute distributed queries.

    Key benefits of composition:

    • Safety Net: Catches schema conflicts (mismatched types, broken @key references, unreachable fields, ambiguous ownership) at build time rather than request time.
    • Validation: Ensures every reachable field can be resolved by at least one subgraph.
    • Gateway Readiness: The resulting Fusion archive contains all necessary lookup, key, and ownership information as embedded directives, allowing the gateway to function without seeing the raw source schemas.
  9. Use Nitro for GraphQL development

    main

    Nitro is the unified ecosystem for ChilliCream GraphQL tools, rebranding the former Banana Cake Pop and Barista tools. It consists of:

    • Nitro App (formerly BananaCakePop): A tool for developing, testing, and optimizing GraphQL APIs. You can download it or use the cloud version.
    • Nitro CLI (formerly Barista): A command-line tool to manage APIs, publish schema versions, and deploy clients.
    • Nitro Server (formerly Banana Cake Pop Services): Backend services for managing GraphQL schemas and monitoring API performance.