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!