GraphQL adalah alternatif dari REST yang dikembangkan oleh Facebook.
The Problem with REST
Di REST, kadang kita mengalami:
1. Over-fetching: Mengambil terlalu banyak data yang tidak dibutuhkan.
2. Under-fetching: Data kurang, sehingga harus request berkali-kali ke endpoint berbeda.
The GraphQL Solution
Dengan GraphQL, Client bisa meminta hanya data yang dibutuhkan saja dalam satu kali request.

Perbandingan REST vs GraphQL
Contoh Query GraphQL
Client mengirim:
graphql
query {
user(id: 1) {
name
email
# Kita tidak meminta 'address' atau 'age', jadi server tidak mengirimnya.
}
}Server membalas:
json
{
"data": {
"user": {
"name": "Raffi",
"email": "raffi@mail.com"
}
}
}