Code Monkey home page Code Monkey logo

get-going-with-graphql-source-code's Introduction

Get Going with GraphQL (Source Code)

This repo contains the completed files for the Node.js and React applications built throughout the Get Going with GraphQL book from 8-Bit Press.

Learn more about the book and download a sample chapter here.

What's in the Book?

If you're new to Apollo Server and Apollo Client and want to learn GraphQL the right way by following proven best practices for API design and development, then this book was written for you.

Key topics covered in the book include:

GraphQL Schema Design

The heart of any GraphQL API is its schema. We'll learn the ins and outs of GraphQL's Schema Definition Language (SDL) to design and evolve a purpose-built schema that helps support rapid client application development.

Apollo Server

We'll take an SDL-first approach to building out a GraphQL schema using Apollo Server. We'll even take advantage of some advanced features of Apollo Server by building a custom plugin for it and also using its Express integration so we can apply middleware to it.

Queries and Mutations

We'll create queries and mutations that are specifically designed around product features to facilitate easy reading and writing of data via a GraphQL API. Using GraphQL's query language, we'll be able to request data from the API in exactly the shape we need (so no more wrangling complex logic on the client side to deal with over-fetching and under-fetching data!).

Apollo Data Sources

Bloating field resolver functions with data-fetching logic can be messy and often isn't very DRY. We'll use an Apollo data source to neatly encapsulate and organize data-fetching logic on the back end.

Pagination

We'll explore different pagination styles that are commonly used in GraphQL APIs and then apply offset-based pagination to multiple API fields to help clients optimize how they fetch long lists of data.

Authentication and Authorization

Authentication and authorization are some of the trickiest things to get right in an app. We'll implement a basic authentication strategy using JSON Web Tokens and cookies and also add authorization to the API on a per-field basis using GraphQL Shield.

Apollo Client 3 with React Hooks

We'll take a modern approach to build a React client application using function components along with a variety of different hooks, including Apollo Client 3's useQuery and useMutation hooks.

Manage Data in the Apollo Client Cache

We'll use the new type policies feature of Apollo Client to customize how it caches data related to different operations performed against the schema. We'll also explore multiple strategies for updating the cache to re-render components after a mutation completes, when paginated queries are fetched, or if real-time updates are received from the server.

Subscriptions

GraphQL APIs are capable of more than just sending stateless HTTP requests to run query and mutation operations. We'll also send subscription operations via a WebSocket connection to receive data in real time from the server to keep a subscribed client up to data with the latest data.

What Does All the Code in This Repo Do?

The book takes a hands-on approach to learning essential GraphQL concepts by building a community-based book review application called Bibliotech.

It covers designing the GraphQL API from scratch based on product requirements, building the API out using Apollo Server, and testing out its various operations using Apollo Studio Explorer.

Once the API is up and running, the book explains how to use Apollo Client and Tailwind CSS to rapidly build out an MVP React application that consumes Bibliotech's new GraphQL API.

About the Author

Mandi Wise discovered her love for building web things 20 years ago. She spent the last six years sharing that passion by teaching software development to others, including how to build web and mobile applications powered by GraphQL APIs. She currently works as a Solutions Architect for Apollo Graph Inc. You can find her on GitHub and Twitter.

Questions & Feedback

Email [email protected] if you have any questions or feedback about this book.


Copyright © 2021 8-Bit Press Inc.

get-going-with-graphql-source-code's People

Contributors

mandiwise avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.