Developed by Facebook and launched in 2015, GraphQL is an API standard defined by its use of a declarative request that returns only the data the client requested, in the shape they desire. Unlike traditional REST APIs, GraphQL allows the client side of an application to ask for the exact pieces of data it requires in a readable way.

An alternative to the fixed endpoints of REST, its flexible approach makes aggregating data from multiple sources simpler, analytics are more refined and minimising the data fetched puts less pressure on slower networks, which speeds up responses for users

GraphQL schemas are often coupled with frameworks such as Relay or Apollo to make these requests from the client. GraphQL powers how GatsbyJS fetches data.


From the command line run:

npm init
npm install graphql --save


A query is the shape of the request that get back the exact data you asked for, not the whole object like in REST approach. You can write your query like that:-

  hero {

and then the output is like that:-

  "data": {
    "hero": {
      "name": "R2-D2"

note that the returned data has a special structure which starts with "data" and it has the same structure as the request.




Additional Resources

Contributing to the Guide

This open source guide is curated by thousands of contributors. You can help by researching, writing and updating these articles. It is an easy and fun way to get started with contributing to open source.