GraphQL vs REST API: Apa bedanya?

GraphQL vs REST API: Apa Bedanya?

Hai, 

apa kabar teman-teman developer

💻 Mulai Belajar Pemrograman

Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.

Daftar Sekarang

Kali ini kami akan membahas mengenai teknologi API yaitu GraphQL dan REST API. Sudah tau apa itu API? Bagaimana sih cara API bekerja? Yuk kita bahas secara umum mengenai API dan apa saja teknologi API yang sedang populer sekarang.

Apa itu API

API atau Application Programming Interface adalah sebuah protokol atau teknologi yang digunakan untuk menangani bagaimana sebuah perangkat lunak dapat berinteraksi satu sama lain. Tentunya sebagai seorang developer, kita pasti pernah mencoba menggunakan API. Salah satu contohnya adalah untuk mendapatkan data dari database.

Hingga saat ini, REST API merupakan salah satu teknologi API yang sering kita gunakan ketika akan mengembangkan sebuah Web APIs. REST API sendiri memiliki banyak kelebihan dan juga kemudahan dalam pengembangannya. Meskipun begitu, REST API masih belum dirasa cukup untuk menyelesaikan permasalahan yang ada sekarang dan juga mengikuti perkembangan teknologi yang semakin cepat.

Apa itu GraphQL

GraphQL API dikembangkan oleh Facebook, dengan tujuan untuk mendapatkan sebuah API yang lebih fleksibel dan efisien. Pendekatan ini dapat menyelesaikan permasalahan yang ada sekarang dan juga permasalahan yang dihadapi pengembang pada saat mengembangkan API dengan menggunakan pendekatan REST API. Meskipun demikian, mengembangkan sebuah API dengan pendekatan GraphQL API juga menambah daftar tantangan baru yang harus diselesaikan oleh para developer.

Perbedaan GraphQL dan REST API

Jadi apa sih yang membuat paradigma GraphQL dan REST API berbeda? Pada artikel kali ini saya akan membahas mengenai perbedaan GraphQL dan REST API dalam proses kita mengakses endpoint dari masing-masing API dan bagaimana respon yang diberikan oleh kedua API tersebut. 

Alhasil, kita dapat mengetahui API mana yang lebih mudah digunakan dan efisien dalam mengambil data. Untuk lebih mudah memahaminya, mari kita bandingkan kedua pendekatan ini dalam sebuah contoh skenario. Kita akan membuat sebuah aplikasi Football Database di mana kita dapat melihat detail dari sebuah liga dan masing-masing data tim beserta pemainnya yang ada dalam liga tersebut. 

Mari kita lihat bagaimana kedua pendekatan ini menyelesaikan permasalahan itu.

Mendapatkan Data dengan REST API

Berdasarkan skenario tadi mari kita coba dapatkan data tersebut dengan pendekatan REST API. Untuk mendapatkan data detail liga beserta data tim dan pemainnya, setidaknya kita harus mengakses lebih dari satu endpoint. Tentunya kita akan mendapatkan JSON response saat kita meminta data dengan mengakses endpoint. JSON response-nya akan terlihat seperti berikut:

Proses pengambilan data pada REST API ketika membutuhkan lebih dari satu request

Endpoint: /league/:id


Kita juga perlu mengakses endpoint berikut untuk mendapatkan daftar tim yang ada pada liga tersebut. Hasilnya akan seperti ini:

Endpoint: /league/:id/teams


Untuk mendapatkan data daftar pemain dari tim-tim tersebut kita juga perlu mengakses satu endpoint lagi seperti berikut:

Endpoint: /team/:id/players


Mendapatkan Data dengan REST API

Wah cukup banyak juga ya endpoint yang perlu kita akses untuk mendapatkan data yang kita butuhkan. Dengan menggunakan REST API kita juga mendapatkan informasi tambahan yang sebenarnya tidak kita butuhkan, hal ini dikarenakan ketika kita mengakses endpoint tersebut, kita akan mendapatkan semua data yang telah ditentukan ketika endpoint tersebut dikembangkan.

Oke, sekarang bagaimana jika kita menggunakan pendekatan GraphQL untuk mendapatkan data tersebut? . Dengan  GraphQL ini kita hanya membutuhkan 1 (satu) query yang telah kita tentukan kebutuhannya. Server akan membalas dengan menyediakan JSON object di mana  kebutuhan kita tadi telah disesuaikan. Mari kita coba mendapatkan data liga beserta tim dan pemainnya dengan menggunakan pendekatan GraphQL. Query yang akan kita gunakan untuk mendapatkan data tersebut dan JSON response-nya akan seperti ini:

GraphQL vs REST API: Apa Bedanya? – end 

Proses pengambilan data pada GraphQL API ketika membutuhkan lebih dari satu request


Untuk JSON Response-nya akan seperti ini:


Dengan pendekatan GraphQL kita dapat mengatur ketentuan apa saja atau data yang kita butuhkan pada sebuah query. Kita jadi dapat semua data sesuai dengan kebutuhan tanpa tambahan informasi yang tak kita butuhkan. Bagaimana? Lebih efisien dan fleksibel kan jika kita mendapatkan data dengan pendekatan GraphQL.

Kesimpulan

GraphQL API menyediakan kemudahan dalam pengambilan data dan proses pengembangan yang lebih cepat. Meskipun begitu, GraphQL bukan merupakan pengganti dari REST API. Masing-masing pendekatan ini memiliki kelebihan dan kekurangannya masing-masing sesuai dengan kasus atau kebutuhan kita pada saat mengembangkan sistem. 

Meskipun artikel ini hanya membahas mengenai bagaimana kedua pendekatan ini dalam mengambil data, tentunya ini akan menambah wawasan kita mengenai apa itu GraphQL dan REST API sebagai seorang developer. Menarik bukan? Mungkin di lain waktu kita dapat membahas mengenai bagaimana mengembangkan GraphQL API atau REST API secara lebih detail. Sampai jumpa dalam artikel berikutnya!


Belajar Pemrograman Gratis
Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional.