Selama bertahun-tahun, arsitektur REST telah menjadi standar utama dalam pembangunan API untuk komunikasi antara sistem klien dan server. Namun, seiring berkembangnya aplikasi mobile dengan kebutuhan data yang sangat spesifik dan beragam, keterbatasan REST seperti masalah over-fetching (menerima data terlalu banyak dari yang dibutuhkan) dan under-fetching (harus melakukan banyak permintaan endpoint terpisah) mulai dirasakan sebagai hambatan kinerja teknis yang efisien.

GraphQL hadir sebagai bahasa kueri (query language) untuk API yang memberikan kontrol penuh kepada peramban atau aplikasi klien untuk meminta hanya data yang benar-benar mereka butuhkan secara akurat dalam satu kali pemanggilan. Dengan sintaksis kueri yang fleksibel, pengembang aplikasi frontend tidak lagi tergantung pada pengembang backend untuk membuat endpoint baru setiap kali ada perubahan kebutuhan tampilan UI di layar pengguna.

Meskipun menawarkan efisiensi bandwidth yang luar biasa dan dokumentasi tipe data otomatis yang kuat, mengimplementasikan GraphQL membutuhkan strategi ekstra dalam hal manajemen cache server dan perlindungan dari kueri kompleks berlebihan yang dapat membebani kinerja basis data. Bagi aplikasi berskala besar dengan struktur data yang kompleks, GraphQL adalah solusi modern yang sangat layak untuk dipertimbangkan.