Apollo-Client Masterclass
GraphQL is becoming more popular every day. It’s a step forward in the communication between front end and back end. It simplifies a lot of the things, especially on the front-end side. It introduces the techniques required to write real-life apps based on GQL and Apollo. This workshop is designed for people that are either not yet familiar with GraphQL itself or want to improve their skills in Apollo Client usage.
a. Introduction to client-side GraphQL
We start with a brief introduction to GraphQL. We want to teach participants how it works, how to use it and compare it to the RESTful approach. We want to show how to send a sample GraphQL request via an HTTP protocol, to give the audience a deeper understanding of what is actually going on with GraphQL.
b. Queries and Mutations
In this section, participants will learn in detail about how to query a GraphQL server. We’ll try to explain the idea of Fragments, show how to add arguments and aliases, and finally how to send a mutation to the server. At this point each attendee should be familiar with GraphQL basics.
c. Introduction to apollo-client
Apollo client is a great library that provides us with a very nice way to communicate with GraphQL servers from JavaScript applications. We’ll show how to set up apollo in the project, execute a query or mutation and receive a response with parsed payload.
d. Using apollo with React
After the audience gets familiar with apollo-client, we will introduce a new way of using apollo with react. Participants will learn how the Apollo provider works and how to use the HOC-based system of apollo-react.
e. Local state management with apollo link state
Thanks to the fact that apollo is a really flexible and extensible library, we can use an amazing plug-in system. We’ll teach participants how to add an apollo plug-in, what plug-ins are available and finally how to get rid of other state managers like Redux and execute local queries and mutations.
f. Caching with apollo
GraphQL with apollo-react architecture might imply a huge number of requests in some cases. The goal here is to teach everyone how to handle this kind of situation and create a caching system to lower traffic in the server.