illustration for Designing GraphQL Schemas
pro

Designing GraphQL Schemas

Instructor

Nik Graf

1h 2m closed-captioning
·
16 lessons
Star icon$$$
Star icon$$$
Star icon$$$
Star icon$$$
Star icon$$$
4.5
280
people completed
Published 5 years ago
|
Updated 4 years ago

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.

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

  • Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    Star icon$$$
    What did you like about this course?

    Perfect speed, crisp and very practical.

    Sutikshan
    5 years 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.

    Luis Ruiz
    5 years 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!

    Leif
    5 years 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.

    Octavio
    5 years 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.

    Shaun Procter
    5 years 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.

    Tepy Thai
    5 years ago