chapter one

1 What Is Full Stack GraphQL?

 

This chapter covers

  • An overview of the components that make up a typical full stack GraphQL application
  • A review of each technology used throughout the book (GraphQL, React, Apollo, and Neo4j Database) and how each piece fits together in the context of a full stack application
  • A look at the requirements for the application we will build throughout the remainder of the book

1.1 A Look At Full Stack GraphQL

In this chapter we take an introductory look at the technologies we will use throughout the book, specifically:

  • GraphQL - for building our API
  • React - for building our user interface and JavaScript client web application
  • Apollo - tools for working with GraphQL, on both the server and client
  • Neo4j Database - the database we will use for storing and manipulating our application data

Building a full stack GraphQL application involves working with a multi-tier architecture commonly known as a "three-tier application": a frontend application, the API layer, and a database.

Figure 1.1. The components of a full stack GraphQL application: GraphQL, React, Apollo, Neo4j Database
grandstack arch without code

Throughout the course of this book we will use these technologies to build a simple business reviews application, working through each technology component as we implement it in the context of our application. In the last section of this chapter we review the basic requirements of the application we will be building throughout the book.

1.2 GraphQL

1.2.1 GraphQL Type Definitions

1.2.2 Querying With GraphQL

1.2.3 Advantages of GraphQL

1.2.4 Disadvantages of GraphQL

1.2.5 GraphQL Tooling

1.3 React

1.3.1 React Components

1.3.2 JSX

1.3.3 React Tooling

1.4 Apollo

1.4.1 Apollo Server

1.4.2 Apollo Client

1.5 Neo4j Database

1.5.1 Property Graph Data Model

1.5.2 Cypher Query Language

1.5.3 Neo4j Tooling

1.6 How It All Fits Together

1.6.1 React And Apollo Client - Making The Request