Pengenalan
GraphQL adalah sebuah konsep baru dalam membangun sebuah API. GraphQL dikembangkan oleh Facebook dan diimplementasikan pada sisi server. Meskipun sebuah query language tetapi GraphQL ini tidak berhubungan secara langsung dengan database, dengan kata lain GraphQL tidak terbatas untuk database tertentu baik sql ataupun nosql. Posisi GraphQL ini berada pada sisi client dan server yang berhubungan / mengakses suatu API. Salah satu tujuan pengembangan bahasa query ini adalah untuk mempermudah komunikasi data antara backend dan frontend/mobile aplikasi.
Perbedaan GraphQL dengan REST API
Struktur output data yang flexible
Dengan menggunakan GraphQL, maka seorang developer mobile apps dan frontend bisa ‘sesuka hati’ dalam menentukan data apa saja yang dibutuhkan dan sesuai dengan komponen aplikasi yang sedang dikerjakan, tidak bergantung kepada sisi backend.
contoh query di GraphQL adalah seperti ini
{
user(id: 1){
nickname
friends(limit:10){
nickname
}
}
}
Tidak ada lagi GET, POST, PUT, DELETE
Jika ada pada REST API konvensional, secara konvensi maka kita diwajibkan untuk mendeklarasikan setiap request yang diminta ke server seperti GET untuk mengambil data, POST untuk menambah data dan lain sebagainya. Sedangkan di GraphQL semuanya disatukan menjadi satu bahasa, yaitu GraphQL.
Jadi tidak ada get,post dan delete di GraphQL, selama request yang dilakukan menggunakan format graph query language maka sisi backend akan paham apa yang di minta oleh klien. Enaknya lagi, GraphQL tidak hanya berjalan pada interface HTTP, namun juga bisa berjalan pada interface yang lain, seperti SSH. telnet bahkan CLI command.
Support pada banyak bahasa
GraphQL dapat diimplementasikan di berbagai bahasa sisi client seperti react, vue, meteor, dll. Apapun jenis framework nya selama dapat mengakses data dengan API. Dan karena GraphQL ini hanya penerjemah (query language) dan runtime saja maka tidak tergantung pada bahasa pemograman sisi server dan database apapun, kalian bisa cek disini.
Pada artikel selanjutnya kita akan mempelajari tentang query sederhana di GraphQL.
Leave a comment