illustration for Designing GraphQL Schemas

Designing GraphQL Schemas

Instructor

Nik Graf
1h 2m closed-captioning
Updated 2 weeks ago
Star icon$$$
Star icon$$$
Star icon$$$
Star icon$$$
Star icon$$$
4.5
277
people completed
Bookmark
Download
RSS

GraphQL brings joy to using APIs. Even though it's based on a type system, GraphQL in many ways is more flexible than REST.

But the flexibility that makes GraphQL a joy to work with can have its downsides if you aren't careful.

Schema design is an area where one small oversight at the beginning can get you stuck having to deal with weird naming, bloated duplicates, and other annoying workarounds.

It doesn't have to be like this!

Nik Graf has extensive experience designing GraphQL schemas, for a variety of business applications.

In this course, Nik has prepared several examples following different design patterns. Through exploration and comparison, you'll come away with actionable knowledge for designing and extending schemas.

Follow Nik, and avoid making Schema mistakes that will come back to bite you later.

Credits

Maxime Bourgeois (illustration)

Listen to Nik Graf tell you about this course:

What you'll learn

  • Naming conventions for fields, queries, mutations
  • GraphQL Aliases
  • Benefits of nullable fields
  • Connection Specification
  • Mutation Payload Design
  • Nullable vs Non-nullable fields
  • Evolving GraphQL Schemas

Learner Reviews

  • Sutikshan
    8 months ago
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    What did you like about this course?

    Perfect speed, crisp and very practical.

  • Luis Ruiz
    9 months ago
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    What did you like about this course?

    Suuuuper good content. I liked the fact you mentioned many times that some implementations/solutions must be discussed and agreed in the team.

  • Leif
    a year ago
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    What did you like about this course?

    It takes you through the mental process, then shows you how to implement it... and it does it by using the GraphQL Playground effectively.

    Thanks!

  • Octavio
    a year ago
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    What did you like about this course?

    I really liked the following about the course:

    • The teacher got straight to the point about trade offs between the different techniques
    • The use of the Relay Connection specification to demonstrate how we can leverage the concepts without needing to use Relay in our applications
    • The video about the benefits of focusing on the domain instead of just the data. I will remember it the next time I have to build a GraphQL schema
    • How to avoid name collisions by using more especific names for our fields but also that there's still hope to change field names without making breaking changes in our API.

    Thank you so much to all the people involved in the development of this course. I appreciate it, it's a great resource and one that was necessary to have.

  • Shaun Procter
    a year ago
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    What did you like about this course?

    Thanks so much Nik! I am new to graphql and had jumped in designing my first schema which was relatively complex given how new I am to graphql. I had lots of 'aha' moments as you walked through common pitfalls that I had already run into. Your explanations as to why you might take a certain approach, then highlighting the pitfalls, followed by a cleaner and more thoughtful approach, are easy to follow. I have taken a bunch of notes and am sure I will be referring back to this course as my first project using graphql goes from dev to production.

  • Tepy Thai
    a year ago
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    What did you like about this course?

    Thanks for creating such a great course which can rarely be found anywhere else.

Course Content

1h 2m • 16 lessons

    You might also like these resources:

    illustration for Introduction to Cloudflare Workers

    Introduction to Cloudflare Workers

    Kristian Freeman・36m・Course

    Become familiar with the Workers CLI wrangler that we will use to bootstrap our Worker project. From there you'll understand how a Worker receives and returns requests/Responses. We will also build this serverless function locally for development and deploy it to a custom domain.

    illustration for Create an eCommerce Store with Next.js and Stripe Checkout

    Create an eCommerce Store with Next.js and Stripe Checkout

    Colby Fayock・1h 4m・Course

    This is a practical project based look at building a working e-commerce store using modern tools and APIs. Excellent for a weekend side-project for your developer project portfolio

    illustration for Practical Git for Everyday Professional Use

    Practical Git for Everyday Professional Use

    Trevor Miller・1h・Course

    git is a critical component in the modern web developers tool box. This course is a solid introduction and goes beyond the basics with some more advanced git commands you are sure to find useful.