Guided examples of GraphQL Stitching doing useful things. While this book focuses on GraphQL Tools (JavaScript) and its specific capabilities, many of these general schema stitching concepts apply to implementations across languages, see similar projects:
Table of Contents
Installation
From the root directory, run:
yarn install
Foundation
-
Combining local and remote schemas
- Adding a locally-executable schema.
- Adding a remote schema, fetched via introspection.
- Adding a remote schema, fetched from a custom SDL service.
- Avoiding schema conflicts using transforms.
- Authorization headers.
- Basic error handling.
-
Mutations & subscriptions
- Adding a remote mutation service.
- Adding a remote subscription service.
- Adding a subscriber proxy.
-
Single-record type merging
- Type merging using single-record queries.
- Query/execution batching.
-
Array-batched type merging
- Type merging using array queries.
- Handling array errors.
- Nullability & error remapping.
-
Merged types with multiple keys
- Configuring multiple key entry points for a merged type.
-
Nullable merges
- Selecting nullability for merged fields.
- Returning nullable and not-nullable results.
-
Custom merge resolvers
- Using
valuesFromResults
to normalize resulting query data.
- Adapting type merging to query through namespaced scopes.
- Adapting type merging to query through non-root fields.
- Using
batchDelegateToSchema
and delegateToSchema
.
-
Cross-service interfaces
- Distributing a GraphQL interface across services.
-
Computed fields
- Configuring computed fields.
- Sending complex inputs to subservices.
- Normalizing subservice deprecations in the gateway.
-
Stitching directives SDL
-
@key
directive for type-level selection sets.
-
@merge
directive for type merging services.
-
@computed
directive for computed fields.
-
@canonical
directive for preferred element definitions.
Architecture
Other Integrations
Appendices