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 import command 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 Essentials 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.