Creating a GraphQL schema
Write or generate a GraphQL schema that defines how to access data from a backend.
A GraphQL schema defines how a client can access data from a particular backend. The schema specifies the name of each type, a list of fields included in each type, and the scalar (data) type of each field.
There are two ways to create a GraphQL schema in API Connect for GraphQL:
- Use the CLI
stepzen importcommand to specify a backend data source so that API Connect for GraphQL can introspect it and generate a GraphQL schema automatically. - Use the GraphQL Schema Definition Language with one of the API Connect for GraphQL custom GraphQL directives to write a schema that connects to a backend and describes the data you want to access.
Generate a GraphQL schema with the CLI
You can generate a schemas using the stepzen import CLI command. This enables you to
create a GraphQL schema for backend data sources including:
- Any REST API, including REST interfaces on NoSQL
databases:
stepzen import curl "YOUR_ENDPOINT" --header "Authentication: 123" - MySQL or PostgreSQL
database:
stepzen import mysql | postgresql - Any GraphQL API, including schemas downloaded from the StepZen GraphQL Studio:
stepzen import graphql
When you run the stepzen import command, you are prompted to provide access
information (such as a host name, headers, and so on.) for your data source. API Connect for GraphQL introspects the backend and
generates the schema.
Write a schema with SDL and a custom directive
Create a .graphql file and use the GraphQL Schema Definition Language (SDL) plus
one of the custom API Connect for GraphQL as a Service
GraphQL directives (@rest, @dbquery, or @graphql)
to connect to a backend and describe the data you want to access. With a few lines of declarative
code, you have a working schema.
See the topics in the Connecting backends with custom directives section for details on how to extend a GraphQL API to connect to a variety of backends.