The schema is the vocabulary used by the GraphQL backend server and the Apollo components in the frontend. The GraphQL type system enables the schema to describe the data that's available and how to put it all together when a query request comes in. This is what makes the whole approach so scalable—the fact that the GraphQL runtime figures out how to put data together. All you need to supply are functions that tell GraphQL where the data is; for example, in a database or in a remote service endpoint.
Let's take a look at some of the types used in the GraphQL schema for the Todo app:
We'll start with Todo itself:
type Todo {
id: ID!
text: String!
complete: Boolean
}
This type describes the Todo objects used throughout the application, including all the optional and required fields for this type. In the example code, you can see that the types followed with an exclamation mark are required (id and text), and the ones without an exclamation mark...