Guides and Best Practices
Get in-depth advice about how to build your GraphQL API and take it to production.

Read these articles after you've learned the basics and done an end to end tutorial.

Table of Contents

Fundamentals

Learn about the main building blocks of GraphQL. This is information every GraphQL developer needs to know.

GraphQL Explained

This article explains how GraphQL combines your schema with a set of resolver functions to generate a result.

Anatomy of a GraphQL Query

Learn in depth about all of the syntax features in the GraphQL query language.

Serving over HTTP

Most GraphQL servers accept queries and mutations over HTTP. Learn how to send those requests.

GraphQL Schema Definition Language

Learn about the cross-platform syntax you can use to describe and implement a GraphQL schema. Then get the cheatsheet on GitHub.

Variables in GraphQL

GraphQL has a feature called variables that allows you to pass dynamic data as JSON. It's not obvious at first why this is useful, and Clay Allsopp explains.

GraphiQL: GraphQL's Killer App

If you're using GraphQL, GraphiQL is a critical open source tool that lets you explore your API faster than ever before. Read about what it can do for you.

4 Simple Ways to Call a GraphQL API

GraphQL is inherently simple, and can work without any specialized tooling. Here are several ways to get GraphQL data anywhere you can make an HTTP request.

Best practices

Read about how to implement commonly features and patterns in your GraphQL server. GraphQL is still quite new, so best practices are still developing.

Authorization in GraphQL

This article explores permissions in GraphQL. You can find similar conclusions in the Authorization article on GraphQL.org. Also, read about authentication in part 2.

Mocking Your Server is Easy with GraphQL

GraphQL's fully-typed schema makes it easy to mock your server, and libraries like graphql-tools enable you to do it with one line of code.

Optimizing GraphQL Queries with DataLoader

Sometimes, GraphQL queries can require multiple objects from the same backend. Learn how to make that more efficient with batching and caching.

Testing a GraphQL Server Using Jest

You can test your GraphQL server code from the outside by running queries. This pairs nicely with Jest's snapshot functionality.

5 Benefits of Static GraphQL Queries

Learn why all of the main GraphQL client implementations agree that static GraphQL queries are the way to go.

Understanding pagination: REST, GraphQL, and Relay

A look at the different options for pagination in GraphQL, and their tradeoffs.

Server Side Rendering with GraphQL

How server-side rendering works in react-apollo and how to take advantage of this to start migrating SSR-enabled applications to GraphQL.