Complete Intro Graphql
Intro

Introduction

This book covers:

  • What GraphQL is and the design concepts behind it

  • How GraphQL is different from its alternatives, like REST APIs

  • The language and service parts of a GraphQL system

  • The advantages and disadvantages of GraphQL

  • Using GraphQL’s in-browser IDE to test GraphQL requests

  • Exploring the fundamentals of sending GraphQL data requests

  • Exploring read and write example operations from the GitHub GraphQL API

  • Exploring GraphQL’s introspective features

  • Exploring auto-generated GraphQL APIs

  • Using arguments to customize what a field in a GraphQL request returns

  • Using aliases to customize the property names in a response object

  • Using directives to describe alternate runtime executions

  • Using fragments to reduce any duplicated text in a GraphQL document

  • Composing queries and separating data requirement responsibilities

  • Using inline fragments with interfaces and unions

I first learned about GraphQL when Facebook engineers publicly talked about it for the very first time at a React.js conference and I knew I had to try it right away. At the time, I was working on a few data-driven applications that all suffered from the lack of a structured and efficient data API solution. These applications used custom data API endpoints that were created to optimally satisfy the growing data needs of their views. However, it was clear that managing these custom endpoints will eventually become a nightmare. The GraphQL talk beautifully validated these concerns.

Like others who attended that conference, I believed a validation from Facebook on the ideas and concepts behind GraphQL would probably create a game changer in the data API space and be a very good alternative to the problematic REST and ad-hoc API solutions that have been dominating the space before GraphQL. I had a feeling GraphQL would become very popular very fast.

Learning GraphQL was one of the best time investments I ever made. GraphQL allows me to implement ideas faster and have my projects perform better and working with GraphQL is simply a more pleasant experience overall.

GraphQL has many advantages that you will learn about here but it also comes with some challenges, especially in the areas of optimization and cache management. I will talk about the challenges as well, but first let me give you a gentle introduction to GraphQL.