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

Creating the schema

In this section, we will begin by creating a schema.graphql file in the project root, where we will define the structure of our system. Our first step will be to focus on user registration and login. Once users are registered, they will be able to contribute to our system by adding questions and answers. To ensure security, we will implement a simple username-password authentication system, storing the authentication data in our database.

Additionally, we will utilize the pipes mechanism to assign ownership of questions and answers to individual users. This approach will provide a seamless experience for both users and administrators.

Authentication and authorization

Before we design our login and register resolvers, we will create interfaces and a User type, responsible for the ownership of questions and answers. It should look like this:

interface StringId{
  _id: String!
}
interface Dated{
  createdAt: String!
  updatedAt...

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