Fullstack GraphQL Applications with GRANDstack
William Lyon
  • MEAP began October 2019
  • Publication in January 2021 (estimated)
  • ISBN 9781617297038
  • 300 pages (estimated)
  • printed in black & white

Excellent introduction to the world of GraphQL with a good real world example leading you through the process of picking up the key concepts and implementation of GraphQL.

Rob Lacey
GraphQL radically improves the efficiency of web APIs, reducing the number of requests and the volume of data in-transit within your web applications. You can amplify the benefits of GraphQL by adjusting your stack to match GraphQL’s more natural representation of your data as a graph. In Fullstack GraphQL Applications with GRANDstack you’ll learn to build graph-aware end-to-end web applications using GraphQL, React, Apollo, and the Neo4j graph database.

About the Technology

Over-fetching or under-fetching data from REST APIs makes your applications slow and unreliable, especially over weak mobile network connections. The GraphQL query language offers a solution with a new API paradigm, reducing loads by constructing precise graph-based data requests. By adapting your application’s design and data store to leverage graphs throughout the stack, you decrease friction by using a consistent data model improving developer productivity, performance and maintainability. The combination of GraphQL, React, Apollo, and Neo4j Database, aka “the GRANDstack,” provides an easily adoptable end-to-end solution perfect for building fullstack GraphQL applications.

About the book

Fullstack GraphQL Applications with GRANDstack teaches you to leverage the power of GraphQL to create modern APIs that streamline data loads by allowing client applications to selectively fetch only the data required. GRANDstack.io contributor and GraphQL Foundation member William Lyon teaches you everything you need to know to design, deploy, and maintain a GraphQL API from scratch and create graph-aware fullstack web applications. In this project-driven book, you’ll build a complete business reviews application using the cutting-edge GRANDstack, learning how the different parts fit together. Chapter-by-chapter, you’ll master creating a GraphQL service with Apollo Server, modelling a GraphQL API with GraphQL type definitions, installing the Neo4j Database on different platforms, and more. By the time you’re done, you’ll be able to deploy all of the components of a serverless full stack application a secure and cost-effective way that takes full advantage of GraphQL’s performance capabilities. Along the way, you’ll also get tips for applying these techniques to other stacks.
Table of Contents detailed table of contents

Part 1: Getting started with fullstack GraphQL

1 What’s the GRANDstack?

1.1 GraphQL

1.1.1 GraphQL type definitions

1.1.2 Querying with GraphQL

1.1.3 Advantages of GraphQL

1.1.4 Disadvantages of GraphQL

1.1.5 GraphQL tooling

1.2 React

1.2.1 React components

1.2.2 JSX

1.2.3 React tooling

1.3 Apollo

1.3.1 Apollo server

1.3.2 Apollo client

1.4 Neo4j database

1.4.1 Property graph data model

1.4.2 Cypher query language

1.4.3 Neo4j tooling

1.5 How it all fits together

1.5.1 React and apollo client - making the request

1.5.2 Apollo server and GraphQL backend

1.5.3 React and apollo client - handling the response

1.6 What we will build

1.7 Exercises

1.8 summary

2 Graph thinking with GraphQL

2.1 Your application data is a Graph

2.2 Graphs in GraphQL

2.2.1 API modeling with type definitions: GraphQL first development

2.2.2 Resolving data with resolvers

2.2.3 Our first resolver

2.3 Combining type definitions and resolvers with apollo server

2.3.1 Using apollo server

2.3.2 GraphQL playground

2.3.3 Implementing resolvers

2.3.4 Querying using GraphQL playground

2.4 Exercises

2.5 Graph thinking with GraphQL summary

3 Graphs in the database

3.1 Neo4j overview

3.2 Graph data modeling with Neo4j

3.2.1 The property graph model

3.2.2 Database constraints and indexes

3.3 Data modeling considerations

3.3.1 Node vs. property

3.3.2 Node vs. relationship

3.3.3 Indexes

3.3.4 specificity of relationship types

3.3.5 Choosing a relationship direction

3.4 Tooling: Neo4j desktop

3.5 Tooling: Neo4j browser

3.6 Cypher

3.6.1 Pattern matching

3.6.2 Properties

3.6.3 CREATE

3.6.4 MERGE

3.6.5 Defining database constraints with cypher

3.6.6 MATCH

3.6.7 Aggregations

3.7 Using the client drivers

3.8 Exercises

3.9 summary

4 GraphQL engines

4.1 Common GraphQL Problems

4.1.1 Poor Performance And The N+1 Query Problem

4.1.2 Boilerplate And Developer Productivity

4.2 Introducing GraphQL Database Integrations

4.3 The neo4j-graphql.js library4.3.1 Project Setup

4.3.1 Project Setup

4.3.2 Generated GraphQL Schema From Type Definitions

4.3.3 Generated Data Fetching

4.3.4 Configuring The Generated API

4.4 Basic Queries

4.5 Ordering and Pagination

4.6 Nested Queries

4.7 Filtering

4.7.1 Filter Argument

4.7.2 Nested Filter

4.7.3 Logical Operators: AND, OR

4.7.4 Filtering In Selections

4.8 Working With Temporal Fields4.8.1 Using Temporal Fields In Queries

4.8.1 Using Temporal Fields In Queries

4.8.2 DateTime Filters

4.9 Working With Spatial Data

4.9.1 The Point Type In Selections

4.9.2 Distance Filter

4.10 Adding Custom Logic

4.10.1 The @cypher Directive

4.10.2 Implementing Custom Resolvers

4.11 Inferring GraphQL Schema From An Existing Database

4.12 Exercises

4.13 Summary

Part 2: Building the front end

5 Building User Interfaces With React

5.1 React Overview

5.1.1 JSX And React Elements

5.1.2 React Components

5.1.3 Component Hierarchy

5.2 Create React App

5.2.1 Creating A React Application With Create React App

5.3 State & React Hooks

5.4 Exercises

5.5 Summary

6 Connecting our React app to our API

Part 3: Full stack considerations

7 Adding authorization

8 Deploying our application

9 Advanced GraphQL


Appendix A: Installation instructions

Appendix B: GRANDstack starter project

What's inside

  • Building the backend functionality of a GraphQL application
  • Handling authentication and authorization with GraphQL
  • Implementing pagination and rate limiting in a GraphQL API
  • Create a basic front end application using React and Apollo Client

About the reader

Aimed at developers comfortable building web applications using tools like Django, Rails, or MEAN stack and standard SQL-based databases. No experience with GraphQL or graph databases required.

About the author

William Lyon is a software developer at Neo4j, working on integrations with other technologies and helping users build applications with Neo4j. He is the creator and maintainer of neo4j-graphql.js, a JavaScript library for creating GraphQL APIs, and is a contributor to GRANDstack.io. He serves as Neo4j’s representative on the GraphQL Foundation.

placing your order...

Don't refresh or navigate away from the page.
Manning Early Access Program (MEAP) Read chapters as they are written, get the finished eBook as soon as it’s ready, and receive the pBook long before it's in bookstores.
print book $37.49 $49.99 pBook + eBook + liveBook
Additional shipping charges may apply
Fullstack GraphQL Applications with GRANDstack (print book) added to cart
continue shopping
go to cart

eBook $29.99 $39.99 3 formats + liveBook
Fullstack GraphQL Applications with GRANDstack (eBook) added to cart
continue shopping
go to cart

Prices displayed in rupees will be charged in USD when you check out.
customers also reading

This book 1-hop 2-hops 3-hops

FREE domestic shipping on three or more pBooks