After you define the fields for your API schema, you can use GraphQL services that are deployed locally to the clusters in your Gloo environment to resolve these fields.
Define resolver servers in a GraphQLResolverMap
Recall that in the
ApiDoc resource, you defined your schema, such as query and object types and their respective fields. Next, you must define the services you want to call to actually execute queries to these defined fields. However, because resolvers cannot be included in the GraphQL schema language, you define your field resolver services separately in a
GraphQLResolverMap configuration contains a mapping between each GraphQL field to a resolver configuration. A resolver is responsible for returning results from the backing service for the field that the resolver is mapped to. In Gloo Gateway, you can specify REST, gRPC, or mock resolver services to return data for each field. You can also apply any additional transformations to the query requests and responses. For example, you might define gRPC resolver services that exist in your Gloo Gateway cluster, and apply a JQ transformation to the response from one of the gRPC services.
Map schema fields to resolvers in a GraphQLSchema
After you define how resolvers should handle requests for each field, you can then map your schema in the
ApiDoc to the resolvers in the
GraphQLResolverMap by creating a
GraphQLSchema Gloo CR. The
GraphQLSchema creates the full picture of your GraphQL API as it is represented in Gloo Gateway.
To get started with resolvers, choose one of the following types of resolvers:
REST resolvers: Define REST resolvers in your Gloo environment to resolve each GraphQL schema field.
gRPC resolvers: Define schema in a gRPC
ApiDoc, define gRPC resolvers in your Gloo environment to resolve schema fields, and map schema to resolvers.
Mock resolvers: For testing scenarios, configure a mock resolver that immediately returns a mocked response to queries.