Introduction to GraphQL
Last updated
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=...) or POST (via POST 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
Variables: Optional parametrization
Fragments: Repeatable pieces of query
Pagination: Traverse through lists of data
Last updated