Official docs outline
20 sections- Introduction
What GraphQL is, client-specified queries, single endpoint, strongly typed API, versus REST.
- Schemas and types
SDL, object types, scalars, enums, interfaces, unions, input types, non-null and lists.
- Queries
Fields, arguments, aliases, fragments, variables, directives, operation names.
- Mutations
Write operations, serial execution of mutation fields, input objects, returning updated data.
- Subscriptions
Real-time event streams, subscription operations, transport.
- Validation
Static validation of operations against the schema before execution.
- Execution
Resolvers, resolver chain, root fields, async resolution, default resolvers.
- Response
Response format: data, errors, extensions, partial results.
- Introspection
__schema and __type, querying a schema, tooling like GraphiQL.
- Thinking in graphs
Modeling data as a graph, nodes and edges, business-domain-oriented schema design.
- Serving over HTTP
GET and POST, JSON request bodies, status codes, content types.
- Authorization
Delegating authorization to the business logic layer, field-level access checks.
- Pagination
Cursor-based pagination, connections, edges, pageInfo, Relay specification.
- Schema design
Naming, nullability, evolving schema without versioning, deprecation.
- Error handling
Errors array, partial data, domain errors modeled in schema.
- Global object identification
Node interface, global unique IDs, refetching objects.
- Caching
HTTP caching limits, global unique IDs for client caches, persisted queries.
- Performance
N+1 problem, DataLoader batching, query cost, complexity limits.
- Security
Query depth and cost limiting, timeouts, disabling introspection, rate limiting.
- Federation
Composing multiple GraphQL services into one supergraph.
Each section links to the official page. Titles and summaries by Extra Credit; the docs belong to their authors.