Widget HTML Atas

How GraphQL works perfectly in your enterprise system


Hello guys kembali lagi di story ku, kali ini saya akan bahas tentang backend technology, kalau di story sebelumnya bahas tentang teknologi yang lagi berkembang front end React Native, kali ini saya akan bahas tentang apa itu yang namanya GraphQL dan bagaimana cara kerjanya.
Biasanya sebagai software developer kita akan ngerancang dulu sistemnya bagaimana dan seperti apa, apa saja komponen-komponen yang dibutuhkan untuk membangun sebuah sistem tersebut kan, banyak pilihan yang bisa kita pakai dan implementasikan untuk membangun sebuah sistem yang sesuai dengan harapan kita.
Design your system
Kalau kita banyak-banyakin search di internet sungguh banyak sekali pilihan framework atau library-library yang bisa membantu pekerjaan kita untuk membuat sebuah sistem. saya biasanya sering sekali pakai teknologi atau framework-framework open source besutan raksasa teknologi besar seperti Google, Facebook dll.
code.facebook.com & opensource.google.com
Yang lagi boming atau ramai sekarang adalah Github yang merubah API’nya menggunakan GraphQL. Kita tahu sendiri sekelas github yang merupakan platform versioning system yang paling populer ini mengimplementasikan graphql ke sistemnya sekarang. WOW.
Ya kalau kita lihat dihalaman resminya sih GraphQL ini menawarkan kelebihan yang fantastis seperti kecepatan pengembahan di sisi frontend, bisa menggunakan data yang sudah ada di sistem kamu sebelumnya dan yang kerennya adalah di sisi user hanya sedikit menggunakan pemakaian bytes, dalam artian di sisi sistem hanya load data yang diperlukan saja jadi tidak mubazir.
www.graphql.com
Kalau kita lihat historynya, GraphQL sendiri diciptakan oleh Facebook pada tahun 2012. GraphQL itu bukanlah sebuah database, namun merupakan bahasa query. GraphQL berada satu tingkat di atas database dan merupakan penghubung database dengan client. Dengan menggunakan GraphQL, proses pengambilan data dari database untuk ditampilkan ke client akan menjadi lebih mudah.
Kebiasaan developer, biasanya dia akan menciptakan case seperti ini, Misalnya, kamu memiliki aplikasi media sosial dan ingin menampilkan daftar teman beserta nama dan alamat teman-teman kamu. Client application akan melakukan step proses seperti ini:
1.Data daftar teman diambil dari database,
2.Ditampilkan di client,
3.Kembali mengambil data nama,
4.Ditampilkan di client lagi,
5.Mengambil lagi data lokasi dari database yang sama,
6.Ditampilkan di client.
Dan begitu seterusnya. Prosesnya bolak-balik seperti sedang bermain pingpong. Kelemahannya, karena aksi tersebut dilakukan di client application, maka aplikasi mobile kamu rentan mengalami crash.
Sementara, kalau kamu menggunakan GraphQL, aktivitas tersebut akan dilakukan di GraphQL. GraphQL akan mengambil data-data tersebut, lalu menampilkannya ke client dalam satu kali request.
Rest vs GraphQL
Jadi apa bedanya si dengan REST API yang biasa kita konsumsi? Coba kita bandingkan. Misal kita ingin memanggil daftar list hero yang ada di API kita, ketika kita menggunakan REST API akan seperti ini: https://base_url/heroes dan kembaliannya akan seperti ini
Misal di view kita, kita hanya ingin menampilkan nama hero saja. Tentu hal ini tidak bisa dilakukan dengan REST API. Di sinilah GraphQL membantu kita. Kita bisa query langsung “API aku hanya minta nama hero dari semua list hero saja” dengan cara menembak endpoint https://base_url/ dan di body request kita akan mendefinisikan data yang kita minta seperti:
Dan nanti dia akan menampilkan seperti ini:
Itu adalah salah satu dari sekian keunggulan GraphQL yaitu mengatasi overfetching. Overfetching adalah di mana client mendownload atau pengambilan lebih banyak data atau informasi daripada yang dibutuhkan. Tentu saja ada keunggulan lain seperti memudahkan untuk rapid development di front end. Karena dengan GraphQL kita bisa mendefinisikan sendiri data yang kita mau tanpa harus meminta backend untuk menyediakan data yang baru lagi (dan tentunya akan membuat proses development menjadi terhambat karena harus menunggu backend untuk menambahkan datanya).Implementasi GraphQL juga bisa dijadikan sebagai API Gateway guys, contoh skemanya seperti gambar dibawah, jadi source graphql sendiri juga bisa dari berbagai macam-macam Rest API yang sudah existing.
Benefitnya kita pakai GraphQL ini di sisi server hanya perlu merespon pada field yang dibutuhkan saja oleh client dan yang terpenting, GraphQL ini bisa berjalan di berbagai macam bahasa pemprograman, mulai dari JavaScript, PHP, C#/.NET, Ruby, Python dan masih banyak yang lainnya.
Kesimpulan :
Meskipun GraphQL ini merupakan teknologi baru daripada REST API tetapi bukan berarti GraphQL lebih unggul dari segi performa. Salah satu penelitian tentang GraphQL mengatakan bahwa GraphQL masih belum mengungguli performance RESTful API, dengan catatan sistem yang dibangun memiliki kompleksitas rendah. So kita harus lihat terlebih dahulu mengetahui sistem yang akan kita bangun, apakah cocok untuk menerapkan GraphQL sebagai arsitektur design dari aplikasi kita.
Herwindra Berlian
Herwindra Berlian Seorang blogger yang kesehariannya didepan laptop dan hobi berselancar di internet sejak 2011

No comments for "How GraphQL works perfectly in your enterprise system"