We may earn an affiliate commission when you visit our partners.
Course image
Mirko Nasato

More and more teams are choosing GraphQL instead of (or along with) REST for their web APIs. GraphQL queries give clients great flexibility in the way they request data from the server, preventing issues such overfetching or underfetching of data, and allowing multiple resources to be retrieved in a single request.

Read more

More and more teams are choosing GraphQL instead of (or along with) REST for their web APIs. GraphQL queries give clients great flexibility in the way they request data from the server, preventing issues such overfetching or underfetching of data, and allowing multiple resources to be retrieved in a single request.

In this course you'll learn how to use GraphQL both on the server side and in client applications through practical examples in the form of full-stack JavaScript applications. You will be introduced to all the main GraphQL concepts like schema definition, Queries, Mutations, and Subscriptions, as well as to solution to common requirements such as handling authentication/authorization and client-side caching.

The examples use Apollo Server with Node.js and Express on the backend and React on the frontend, with GraphQL-Request first, then Apollo Client as GraphQL clients. GraphQL-WS is used for subscriptions.

The aim however is not just to cover specific GraphQL libraries, but to give you a more general understanding of the underlying concepts. For instance, GraphQL client libraries are introduced only after learning how to write a simple client "by hand", to make sure you understand the GraphQL over HTTP format.

This course assumes good knowledge of modern JavaScript, and ideally some familiarity with Node.js/Express and React.

Enroll now

What's inside

Learning objectives

  • Build a graphql server based on nodejs, express and apollo server
  • Call graphql apis from javascript using graphql-request or apollo client
  • Handle authentication/authorization, caching, and more
  • Receive real-time updates with graphql subscriptions

Syllabus

Introduction
What is GraphQL
Required Tools
Course Advice
Read more
Fundamentals
Schema Definition
Apollo Server
Query Language
GraphQL Over HTTP
GraphQL Client
Github Repository
Code-First vs Schema-First
Final Code
Schema
Job Board Architecture
Job Board Project
Apollo Server with Express
Custom Object Types
Arrays and Non-Nullability
Database Access
Field Resolvers
Resolver Chain
Documentation Comments
Object Associations
Queries
Starting Code
GraphQL-Request
Component State in React
Query Arguments
Query Variables
Exercise: Company by ID
Bidirectional Associations
Recursive Queries
Errors
GraphQL Errors
Custom Errors
Request States
Mutations
Input Types
Aside: Database Reset
Mutation Requests
Exercise: Delete Job
Exercise: Update Job
Authentication
Authentication Flow
Resolver Context
User-Company Association
Client Authentication
Secure Delete
Exercise: Secure Update
Where to Authenticate
Caching with Apollo Client
Apollo Client Features
Apollo Client Setup
Query Method
Mutate Method and Auth Link
Apollo Client Cache
Fetch Policies
Cache Manipulation
Fragments
Apollo React Integration
useQuery Hook
React Custom Hooks
Exercise: useJob and useJobs
useMutation Hook
useMutation Result
Exercise: useCreateJob
Data Loaders
N+1 Query Problem
Batching with DataLoader
Per-Request Cache
Pagination
Pagination Strategies
Ordering
Limit Clause
Offset Clause
Basic Pagination UI
Total Count
Full Pagination UI
Subscriptions
Chat Project
Cache updateQuery
Subscription Definition
GraphQL-WS Server
Subscription Resolver
GraphQL-WS Client
useSubscription Hook
WebSocket Protocol
Connection Params

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Examines GraphQL's implementation on the server side as well as client applications, offering a holistic view of its usage
Focuses on practical examples using real-world JavaScript full-stack applications, enhancing comprehension and relevance
Provides hands-on experience with popular GraphQL libraries such as Apollo Server and Apollo Client, ensuring industry-aligned skills
Covers essential GraphQL concepts, including schema definition, mutations, queries, and subscriptions, building a solid foundation
Addresses common authentication, authorization, caching, and performance optimization challenges, equipping students with practical solutions
Requires knowledge of modern JavaScript and familiarity with Node.js/Express and React, indicating a target audience with some technical proficiency

Save this course

Save GraphQL by Example to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in GraphQL by Example with these activities:
Review Javascript Basics
Reinforce your understanding of the core principles of JavaScript.
Browse courses on JavaScript
Show steps
  • Review basic data types, operators, and control flow
  • Practice writing simple functions and arrow functions
  • Check online resources for interactive JavaScript exercises
GraphQL Apollo Server Tutorial
Build a solid foundation in using Apollo Server for GraphQL APIs.
Show steps
  • Follow the official Apollo Server tutorial for Node.js
  • Create a simple GraphQL API with basic queries and mutations
  • Explore additional features such as data loading and caching
GraphQL Query and Mutation Practice
Enhance your understanding of GraphQL queries and mutations through hands-on practice.
Show steps
  • Write queries to retrieve data from a mock or real-world API
  • Construct mutations to create, update, or delete data
  • Test and debug queries and mutations
One other activity
Expand to see all activities and additional details
Show all four activities
Build a Portfolio Project
Solidify your skills by creating a GraphQL-based project.
Show steps
  • Design a simple GraphQL schema and data model
  • Implement a GraphQL server using Apollo Server
  • Create a React frontend to interact with the GraphQL API

Career center

Learners who complete GraphQL by Example will develop knowledge and skills that may be useful to these careers:
GraphQL Developer
GraphQL Developers specialize in designing, developing, and maintaining GraphQL APIs. This course is a perfect fit for GraphQL Developers, as it covers all the essential concepts and best practices for building GraphQL applications. By taking this course, GraphQL Developers can gain a deep understanding of GraphQL's capabilities and limitations, and learn how to build scalable, performant, and secure GraphQL APIs.
Software Developer
Software Developers design, develop, and maintain software applications. This course may be helpful for Software Developers who want to specialize in GraphQL development. By learning how to build GraphQL servers and clients, Developers can create applications that are data-centric, performant, and easy to use. Additionally, the course covers best practices for authentication, authorization, and caching, which are essential for building secure and scalable software systems.
Full-Stack Developer
Full-Stack Developers design, develop, and maintain both the front-end and back-end of web applications. This course may be useful for Full-Stack Developers who want to learn how to build GraphQL applications. GraphQL is a powerful tool for building data-driven web applications, and by learning how to use it effectively, Full-Stack Developers can create applications that are fast, flexible, and easy to maintain.
Backend Developer
Backend Developers design, develop, and maintain the server-side of web applications. This course may be useful for Backend Developers who want to learn how to build GraphQL APIs. GraphQL is a powerful tool for building data-centric APIs, and by learning how to use it effectively, Backend Developers can create APIs that are fast, flexible, and easy to use.
Web Developer
Web Developers design, develop, and maintain websites and web applications. This course may be useful for Web Developers who want to add GraphQL to their skillset. GraphQL is a powerful tool for building data-driven web applications, and by learning how to use it effectively, Web Developers can create applications that are fast, flexible, and easy to maintain.
Database Administrator
Database Administrators design, implement, and maintain databases. This course may be useful for Database Administrators who want to learn how to build GraphQL APIs that access data from databases. GraphQL is a powerful tool for building data-centric APIs, and by learning how to use it effectively, Database Administrators can create APIs that are fast, flexible, and easy to use.
Product Manager
Product Managers design, develop, and launch new products. This course may be useful for Product Managers who want to learn how to use GraphQL to build data-driven products. GraphQL is a powerful tool for building data-centric applications, and by learning how to use it effectively, Product Managers can create products that are fast, flexible, and easy to use.
Business Analyst
Business Analysts help businesses understand and improve their processes. This course may be useful for Business Analysts who want to learn how to use GraphQL to access and manipulate data. GraphQL is a powerful tool for data query and manipulation, and by learning how to use it effectively, Business Analysts can build data-driven applications that are fast, flexible, and easy to use.
Data Analyst
Data Analysts collect, analyze, and interpret data to help businesses make better decisions. This course may be useful for Data Analysts who want to learn how to use GraphQL to access and manipulate data. GraphQL is a powerful tool for data query and manipulation, and by learning how to use it effectively, Data Analysts can build data-driven applications that are fast, flexible, and easy to use.
Data Scientist
Data Scientists use data to solve business problems. This course may be useful for Data Scientists who want to learn how to use GraphQL to access and manipulate data. GraphQL is a powerful tool for data query and manipulation, and by learning how to use it effectively, Data Scientists can build data-driven applications that are fast, flexible, and easy to use.
Machine Learning Engineer
Machine Learning Engineers design, develop, and maintain machine learning models. This course may be useful for Machine Learning Engineers who want to learn how to use GraphQL to access and manipulate data. GraphQL is a powerful tool for data query and manipulation, and by learning how to use it effectively, Machine Learning Engineers can build data-driven machine learning models that are fast, flexible, and easy to use.
IT Consultant
IT Consultants help businesses plan, implement, and manage their IT systems. This course may be useful for IT Consultants who want to learn how to use GraphQL to build data-driven IT solutions. GraphQL is a powerful tool for building data-centric applications, and by learning how to use it effectively, IT Consultants can create solutions that are fast, flexible, and easy to use.
Project Manager
Project Managers plan, execute, and close projects. This course may be useful for Project Managers who want to learn how to use GraphQL to manage project data. GraphQL is a powerful tool for data query and manipulation, and by learning how to use it effectively, Project Managers can build data-driven project management tools that are fast, flexible, and easy to use.
Technical Writer
Technical Writers create user guides, manuals, and other documentation for software and hardware products. This course may be useful for Technical Writers who want to learn how to write documentation for GraphQL applications. GraphQL is a powerful tool for building data-centric applications, and by learning how to use it effectively, Technical Writers can create documentation that is clear, concise, and easy to follow.
Data Architect
A Data Architect plans and designs the architecture of data systems, ensuring that data is structured, organized, and accessible to meet the needs of an organization. This course may be useful for Data Architects, as it provides a solid foundation in GraphQL, a powerful tool for data query and manipulation. By understanding GraphQL's concepts and capabilities, Data Architects can design and implement data systems that are flexible, efficient, and scalable.

Reading list

We've selected five books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in GraphQL by Example.
Provides a comprehensive introduction to GraphQL, covering the basics of the technology as well as more advanced topics such as schema design, mutations, and subscriptions. It valuable resource for anyone who wants to learn more about GraphQL.
Hands-on guide to building GraphQL applications with JavaScript. It covers a wide range of topics, from basic concepts to advanced techniques. It valuable resource for learners who want to build interactive and data-driven web applications.
Provides a comprehensive introduction to React, covering the basics of the technology as well as more advanced topics such as state management and routing. It valuable resource for anyone who wants to learn more about React.
Provides a comprehensive introduction to Node.js, covering the basics of the technology as well as more advanced topics such as performance optimization and security. It valuable resource for anyone who wants to learn more about Node.js.
Practical guide to building GraphQL applications with React. It covers a wide range of topics, from basic concepts to advanced techniques. It valuable resource for learners who want to build interactive and data-driven web applications with React.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to GraphQL by Example.
Testing Apollo 3
Most relevant
The Modern GraphQL Bootcamp (with Node.js and Apollo)
Most relevant
GraphQL with React: The Complete Developers Guide
Most relevant
Securing a GraphQL API with Apollo 3
Most relevant
Building Data-driven React 17 Applications with Relay,...
Most relevant
Event Driven Updates with Apollo Subscriptions
Most relevant
Building a Full Stack App with React 16 and Express 4
Most relevant
Developing Cloud Apps with Node.js and React
Most relevant
Build a Full Stack App using React and Express
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser