Introduction to GraphQL
GraphQL is a query language for API's. It's query language can pull multiple objects of different types, with less queries that would be needed using REST.
Where else is GraphQL used? Facebook, GitHub
REST API's follow a concept of architectural constraints. The classic API is multiple endpoints for various resources alongside
GET
, POST,
PUT
and DELETE
.GraphQL on the other hand usually has one endpoint, always
GET
or POST
. The magic is in the query passed in the post data.Assume the following:
{
institution {
name
}
}
Response:
{
"data": {
"institution": {
"name": "Happy University"
}
}
}
A couple things:
- The query to a single endpoint, via
GET
(?query=...
) orPOST
(viaPOST
data) - The response is JSON
- The response structure matches the query
What's more is, GraphQL schemas enforce a structured, typed API, and provides instrumentation. This can best be put into example by seeing GraphiQL - a client for graphql - with the query above:

- Query: Usually reading
- Mutation: Usually create, updating or deleting
Last modified 2yr ago