⚠️
This is the documentation for the old GraphQL Mesh version v0. We recommend upgrading to the latest GraphQL Mesh version v1.
Migrate to GraphQL Mesh v1
Migrate to GraphQL Mesh v1
Overview
Working with Mesh means dealing with 4 main concepts: Sources, Handlers, Transforms and Unified Schema:
- In Mesh, a sub-service (GraphQL API, REST API) is called a Source.
- Sources are translated to GraphQL Schemas with the appropriate Handler.
- All Sources’ GraphQL Schema are merged into a final Unified Schema.
- Finally, if applicable, configured transformations, called Transforms, are applied to the Unified Schema.
The above GraphQL Mesh Gateway has 3 configured Sources:
- The “City” Source configured with the
@graphql-mesh/openapi
Handler. - The “Population” Source configured with the
@graphql-mesh/graphql
Handler. - The “Weather” Source configured with the
@graphql-mesh/raml
Handler.
Sources, Handlers, Transforms are configured in a .mesh.yaml
(or .json
, .js
, .ts
)
configuration file that defines:
- How to fetch the definition of the sub-services (GraphQL API, REST API, and more)
- What transformations should be applied to the unified schema (optional)
- The path to the declaration of custom resolvers (optional)
- Which cache strategy should be used? (optional)
- Which envelop plugins should be loaded and configured at the server level? (optional)
Let’s have a closer look to a .mesh.yaml
configuration file by
installing Mesh and
building our first Gateway!