36 Concepts Every GraphQL Developer Should Know
Introduction
This repository was created with the intention of helping developers master their concepts in GraphQL. It is not a requirement, but a guide for future studies.
Credit to @leonardomso's 33 JS Concepts Project for the inspiration.
Thanks to @kelseyyim for getting this started!
Community
Feel free to submit a PR adding a link to your own recaps or reviews. If you want to translate the repo into your native language, please feel free to do so.
All the translations for this repo will be listed below:
Table of Contents
Specs
- Queries
- Mutations
- Subscriptions
- Types
- Fields
- Root Field
- Relationships
- Introspection
- Arguments
- Union Types
- Interface Types
- Directives
- Type Extensions
- Relay Specification
- Schema Definition Language
- GraphQLSchema Object
Server
- Setting up a server
- Schema
- Resolvers
- Context
- Info Object
- Databases
- Dataloader
- Entry Points
- Schema Stitching
- SDL First
- Code First
- Middleware
Client
Best Practices
Specs
1. Queries
Articles
๐ Queries and Mutations - Graphql.org๐ The Anatomy of a Graphql Query โ Sashko Stubailo๐ Front End Queries Made Easy - Rasheed Bustamam๐ An Introduction to Graphql Queries - Alligator.io๐ Examples for GraphQL-Queries and Mutations - predict8
Videos
๐ฅ GraphQL Tutorial #4 - Making Queries - The Net Ninja๐ฅ Writing GraphQL Queries - Live Coding with Jesse
2. Mutations
Articles
๐ Mutations in GraphQL - Alexander Kondov๐ Mutations - GraphQL.org๐ Organizing GraphQL Mutations - Jeff Lowery๐ GraphQL mutations: Partial updates implementation - Arnaud Bezanรงon๐ Modeling GraphQL Mutations - Oleg Ilyenko๐ GraphQL Mutation Design: Anemic Mutations - Marc-Andrรฉ Giroux๐ Understanding GraphQL Mutations - Moon Highway
Videos
๐ฅ GraphQL Tutorial #18 - Mutations - The Net Ninja๐ฅ GraphQL Tutorial #19 - More on Mutations - The Net Ninja๐ฅ Learn Apollo - Basic Mutations - Prisma
3. Subscriptions
Articles
๐ Subscriptions in Graphql and Relay - Dan Schafer๐ From Zero to Graphql Subscriptions - Robert Zhu๐ Make web real-time with GraphQL subscriptions - David Qorashi๐ Realtime GraphQL Subscriptions - How to Graphql๐ A Guide to Subscriptions in GraphQL with Apollo -Brenda Jimenez
Videos
๐ฅ What is a Graphql Subscription - Ben Awad๐ฅ Introducing GraphQL Subscriptions - Lee Byron๐ฅ How to build a Realtime Chat with GraphQL Subscriptions and Apollo - Prisma๐ฅ How to setup GraphQL Subscriptions Nodejs - Ben Awad๐ฅ How to add Authentication to your GraphQL Subscriptions - Ben Awad
4. Types
Articles
๐ Constructing Types โ Graphql.org๐ Schema types - Apollo๐ Object Types โ Graphql.org
Videos
๐ฅ Author Types โ The Net Ninja๐ฅ Extending Schema Types - Full-stack GraphQL with Apollo, Meteor & React - LevelUpTuts
5. Fields
Articles
6. Root Field
Articles
Videos
7. Relationships
Articles
๐ Thinking in graphs - Graphql.Org๐ A simple graphql example with relationships - Graphql Documentation
Videos
8. Introspection
Articles
9. Arguments
Articles
Videos
๐ฅ Arguments - Novvum
10. Union Types
Articles
๐ How to write add unions and interfaces to a schema - Apollo Documentation๐ Graphql Tour Interfaces and Unions โ Clay Allsopp๐ Graphql Interfaces and Unions-How to design a Graphql Schema โ David Mraz๐ Interfaces and Unions in GraphQL โ AWS Documentation
11. Interface Types
Articles
12. Directives
Articles
๐ GraphQL Directives - Abhi Aiyer๐ Use custom directives to protect your GraphQL APIs - David He๐ An introduction to GraphQL: Directives - Flavioscopes๐ The Power of GraphQL Directives - ลukasz Czyszczonik๐ Schema Directives - Apollo๐ SDL Directives - GraphQLJava
Videos
13. Type Extension
Articles
๐ Type Extension - Facebook๐ Modularizing your GraphQL Schema Code: Extending types in multiple files - Apollo๐ Schema Extension - Facebook๐ The ultimate guide to schema stitching in GraphQL: Schema Extension - Rishichandra Wawhal
Videos
14. Relay Specification
Articles
๐ GraphQL Server Specification - Facebook๐ Implementing the Relay spec in a GraphQL Server - Marc-Andre Giroux๐ Relay/GraphqL: De-mystifying Node ID - Soon Hin Khor
15. Schema Definition Language - SDL
Articles
๐ Defining Graph Database Schemas by using the GraphQL Schema Definition Language - Olaf Hartig๐ GraphQL SDL, Schema Definition Language - Prisma Documentation๐ Three ways to represent your GraphQL schema - Sashko Stubailo๐ A GraphQL SDL Reference - Alligator
16. GraphQLSchema object
Articles
Server
17. Setting Up a Server
Articles
๐ Building a server with Apollo - Apollo GraphQL๐ Your First GraphQL Server โ Clay Allsopp๐ Learn to build a GraphQL server with minimal effort โ Ian Wilson๐ Building a GraphQL Server with Node.js โ Angus Croll๐ There and Back Again, A GraphQL Lifecycle Tale โ Annie Lydens and Thomas Paresi
Videos
๐ฅ Single GraphQL Server with Multiple Endpoints and Databases โ Ben Awad๐ฅ Building a GraphQL Server [Part 1] โ Traversy Media๐ฅ Building a GraphQL Server with TypeScript๐ฅ Learn how to build an API using GraphQL with Apollo Server 2.0 โ Fireship๐ฅ Building Modern APIs with GraphQL - Robert Zhu๐ฅ GraphQL server tutorial for Node.js with SQL, MongoDB and REST โ Apollo GraphQL
18. Schema
Articles
๐ Understanding schema concepts - Apollo Documentation๐ Graphql Server Basics: Schemas Explained - Prisma Documentation๐ GraphQL Schema Language Cheat Sheet - Hafiz Ismail๐ GraphQL Server Basics: GraphQL Schemas, TypeDefs & Resolvers Explained - Prisma
Videos
19. Resolvers
Articles
๐ GraphQL Resolvers: Best Practices - Mark Stuart๐ Overview of Resolvers - Graphcool Documentation๐ GraphQL Server Basics: GraphQL Schemas, TypeDefs & Resolvers Explained - Prisma
Videos
20. Context
Articles
๐ GraphQL Context and Services - Eric Clemmons๐ Learning about Execution and Context - GraphQL๐ How does one set up database or other context in a graphql resolver - StackOverflow
21. Info Object
Articles
22. Databases
Articles
๐ Selecting database as data source for GraphQL Server โ Wojciech Trocki๐ Connecting Server and Database with the Prisma Client โ Prisma๐ Using a GraphQL API for Database Administration โ Michael Hunger๐ GraphQL as a database query language - Predrag Gruevski๐ Use all the databases โ Loren Sands-Ramshaw๐ GraphQL for databases: A layer for universal database access โ George Anadiotis
Videos
๐ฅ Build a GraphQL Server with Node.js and MongoDB - Ben Awad๐ฅ Build a GraphQL server for Node.js, using PostgreSQL/MySQL - Lee Benson
23. Dataloader
Articles
๐ Using dataloader with GraphQL: A Concrete Example โ John Tucker๐ The GraphQL Dataloader Pattern: Visualized โ Marc-Andrรฉ Giroux
Videos
๐ฅ DataLoader โ Source code walkthrough โ Lee Byron๐ฅ DataLoader and the Problem it solves in GraphQL โ knowthen
24. Entry Points
Articles
๐ API Reference: entry points โ GraphQL๐ Adding a GraphQL endpoint - Apollo Documentation๐ Running a scalable & reliable GraphQL endpoint with Serverless - Siddharth Gupta๐ Serving over HTTP: Endpoints - Graphql.org
Videos
25. Schema Stitching
Articles
๐ The ultimate guide to Schema Stitching in GraphQL - Rishichandra Wawhal๐ GraphQL Stitching 101 - Artsy๐ Schema Stitching - Apollo Documentation๐ GraphQL Remote Schema Stitching in a Multi-Service Architecture - Suciu Vlad๐ Apollo Federation - Apollo
Videos
๐ฅ API mashup: Combining APIs using GraphQL schema stitching - GitHub๐ฅ GraphQL Schema Stitching - Ben Awad๐ฅ GraphQL Schema Stitching with Prisma and Contentful - Nikolas Burk(Contentful)
26. SDL First
Articles
๐ The Problems of "Schema-First" GraphQL Server Development - Prisma๐ Schema-First GraphqL: The Road Less Travelled - Jakub Draganek
Videos
27. Code First
Articles
๐ Code-first - Hot Chocolate๐ Introducing GraphQL Nexus Code First GraphQL Server Development - Prisma๐ The Problems of Schema-First GraphQL - Prisma
28. Middleware
Articles
Videos
Client
29. Fetching
Articles
Videos
๐ฅ Fetching data from an API in GraphQL - Ben Awad๐ฅ Building a GraphQL Server, RootQuery & Fetching Data - Traversy Media
30. Fragments
Articles
๐ Using fragments - Apollo๐ How to query your schema with GraphQL fragments - David Mrรกz๐ GraphQL Fragments are the Best Match for UI Components - Samer Buna
Videos
31. Variables
Articles
๐ GraphQL Tour: Variables - Clay Allsop๐ Introduction to GraphQL: GraphQL Variables - Flavioscopes
Videos
๐ฅ GraphQL Tips: Query Variables - Novvum๐ฅ GraphQL Tutorial #32: Query Variables - The Net Ninja๐ฅ GraphQL Tips: Default Values for Variables - Novvum
32. Alias
Articles
๐ An Introduction to GraphQL: Aliases - GraphQL Mastery๐ How to use GraphQL aliases - GraphQL Mastery๐ More GraphQL Concepts: Aliases - HowtoGraphQL
Videos
33. Polling
Articles
34. Cache
Articles
๐ A Different Approach to GraphQL Caching - Adam Reacts๐ Understanding Caching - Weblab Technology๐ Caching with GraphQl: What are the best options? - Will Howard๐ GraphQL VS Rest: Caching - Phil Sturgeon๐ Learn Caching - Graphql.org๐ Overview: GraphQL Query Parsing and Caching at the Edge - Monika Rathor๐ GraphQL & Caching: The Elephant in the Room - Marc-Andrรฉ Giroux
Videos
๐ฅ GraphQL Caching using DataLoader โ Fun Fun Function๐ฅ Feature: GraphQL Caching with DataLoader โ Ben Awad
Best Practices
35. Schema Design
Articles
๐ GraphQL best practices for GraphQL schema design - David Mraz๐ GraphQL Schema Design: Building Evolvable Schemas - Marc-Andrรฉ Giroux๐ Writing a Graphql Schema - Eitan Frailich๐ Abstract Demand Oriented Schema - Apollo
Videos
36. Pagination
Articles
๐ Pagination
37. Logging
Articles
Contributors
Thanks goes to these wonderful people (emoji key):
Kelsey Yim |
Rohit Ravikoti |
Alli Colyer |
Raj K Singh |
Jorge Carlos |
Henry Yang |
TrevHeath |
---|
This project follows the all-contributors specification. Contributions of any kind welcome!