It’s no secret that I love GraphQL. I first encountered it when transitioning this site to Gatsby at the start of the year. Gatsby incorporates GraphQL into their data layer and exposes multiple plugins to incorporate data sources. When I started exploring GraphQL in more detail, the number of resources and their detail was substantially less. I won’t even go into how long I spent trying to find information on testing strategies.
One of my personal missions has been to help break down barriers to learning GraphQL amongst people in my circles. It is substantially less intimidating to get started than first glance may appear, and the reference material has increased. I have given several talks on the topic, breaking down the core concepts and identifying how to get started. In an effort to further that venture, and also make sure I don’t forget to include some of my favorite references, I have created a GraphQL Resources page. Here you will find a curated list of case studies, reference materials, tutorials, books, media, and public APIs. It is an aggregation of valuable resources to get started with GraphQL or explore it further and the tool I wish I had when I first started. I hope you find it valuable in your exploration as well.
GraphQL is the response to growing REST endpoints which often don't match up to the data that the client needs. They may return too much data (over-fetching) which results in excessive payload size. They may also return too little data (under-fetching) which results in making subsequent API calls to fetch remaining data. GraphQL solves this problem by creating a system where clients request the data that they need and receive nothing beyond that. This allows for more performant applications through reduced payload sizes and API calls. These benefits are compounded when considering higher network latencies on mobile devices and generally reduced computing power for non-flagship products.