O'Reilly logo
live online training icon Live Online training

Building Data APIs with GraphQL

Get started with the GraphQL query language and runtime for your APIs

Samer Buna

GraphQL provides a common interface between clients and servers for fetching and manipulating data. It's a query language for clients and a runtime for servers, with the goal of giving clients more power into what data they can ask for, the format of that data, how much of it to fetch, and much more. With client-specified queries, clients can retrieve the flexible data they need from the server using a single smart endpoint. GraphQL runtime is language-agnostic, and there are several implementations available, including a JavaScript reference one by Facebook.

Join expert Samer Buna for a hands-on introduction to GraphQL. In this course, you will learn the fundamentals of GraphQL, learn why it's needed for a modern web app architecture, and how it compares to the alternatives. You will learn about the theory and design decisions behind GraphQL, all the powerful features that ship with any GraphQL runtime implementation, and how to get started creating a simple GraphQL service.

What you'll learn-and how you can apply it

By the end of this live online course, you’ll understand:

  • How GraphQL is different and why that matters
  • GraphQL queries and mutations
  • The GraphQL schema language and how to work with it in JavaScript

And you’ll be able to:

  • Use GraphQL queries, mutations, fragments, variables, aliases, directives, interfaces, and unions
  • Inspect GraphQL introspective nature
  • Build a simple GraphQL server in Node.js
  • Work with GraphQL with a backend data service

This training course is for you because...

  • You are a backend engineer who designs APIs and wants to learn what is different about GraphQL.
  • You are a frontend engineer who works with applications that consumes data API and wants to learn how to make them work with GraphQL-based APIs.


  • Basics of programming, variables, control structure, data structures
  • Basics of JavaScript, syntax and tools

Required Downloads

  • A modern browser, Preferably Chrome or Firefox.
  • Node 10.x or higher (check with: node --version)
  • Access to install npm packages (check with: npm i -g eslint)

Assignments prior to the live online training course:

About your instructor

  • Samer Buna has over 20 years of experience in software development, during which he has worked on web and mobile applications development, API design, functional programming, optimization, system administration, database management, and scalability. Samer is the author of several technical books and online courses on topics such as Node.js, React, and GraphQL. You can follow his latest work over at jsComplete.com and EdgeCoders.com.


The timeframes are only estimates and may vary according to how the class is progressing

Introduction to GraphQL (55 minutes)

  • Lecture and exercises: The terminologies and design principles of GraphQL, the GraphQL way of creating APIs for hierarchical data, how GraphQL is product-centric with client-specified queries, how GraphQL plays well with existing code, and how to work with the GraphQL editor.
  • Break (5 minutes)

GraphQL Query Language (55 minutes)

  • Lecture and exercises: The query syntax, variables, field aliases, fragments, directives, mutations, GraphQL introspective nature, and how to use GraphQL to write declarative data requirements.
  • Break (5 minutes)

GraphQL Runtime (50 minutes)

  • Lecture and exercises: GraphQL runtime, schemas, objects, fields, transport channels, type system, composition, introspection, mutations.

Wrap-up, and Q&A (10 minutes)