Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying GraphQL Best Practices
  • Table Of Contents Toc
  • Feedback & Rating feedback
GraphQL Best Practices

GraphQL Best Practices

By : Artur Czemiel
close
close
GraphQL Best Practices

GraphQL Best Practices

By: Artur Czemiel

Overview of this book

In the ever-evolving landscape of web development, GraphQL has emerged as a powerful query language that addresses the limitations of traditional REST APIs. This guide delves deep into GraphQL, starting with its foundational principles and swiftly advancing to complex topics that will equip you with the skills you need to understand this technology. As you progress, you’ll cover advanced concepts such as schema design, security enhancements, and error handling. You'll also explore essential topics such as federation and the transition from REST to GraphQL, gaining a comprehensive understanding of these critical areas. The book helps you learn through practical examples in TypeScript, guiding you through building scalable and secure GraphQL backends. Additionally, you’ll get up to speed with the intricacies of frontend integration. By the end of this book, you’ll have the skills you need to implement real-world GraphQL solutions, creating efficient and robust applications that meet modern web development demands.
Table of Contents (23 chapters)
close
close
Free Chapter
1
Part 1 - Why GraphQL?
4
Part 2 - Schema-First Design Patterns
7
Part 3 - Exploring Possible Ways to Use GraphQL
11
Part 4 - Advanced GraphQL
18
Part 5 - From an Idea to a Working Project

Treating responses as unions

In addition to the previous methods, another approach is to treat our response as a union. Unions in GraphQL provide us with the ability to return one of multiple possible types. This is particularly advantageous because it enables us to easily identify whether the response contains only the errors field or only the posts field.

Additionally, GraphQL servers include the __typename property on every returned object, which allows the consumer of the schema to accurately determine the type of the returned object.

In the following schema, we will introduce a union type that will be able to represent both successful responses and responses that indicate errors:

type PostResponse{
  posts: [Post!]!
}
enum ErrorVariant{
  NOT_FOUND
  FORBIDDEN
}
type PostError{
  message: String!
  variant: ErrorVariant
}
type ErrorResponse{
  errors: [PostError!]!
}
union ResponseUnion = PostResponse | ErrorResponse...

Unlock full access

Continue reading for free

A Packt free trial gives you instant online access to our library of over 7000 practical eBooks and videos, constantly updated with the latest in tech
bookmark search playlist download font-size

Change the font size

margin-width

Change margin width

day-mode

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY