GraphQL - Arsitektur
GraphQL adalah spesifikasi yang menggambarkan perilaku server GraphQL. Ini adalah seperangkat pedoman tentang bagaimana permintaan dan tanggapan harus ditangani seperti protokol yang didukung, format data yang dapat diterima oleh server, format tanggapan yang dikembalikan oleh server, dll. Permintaan yang dibuat oleh klien ke GraphQL server disebut Query. Konsep penting lain dari GraphQL adalah agnostik lapisan transportnya. Ini dapat digunakan dengan protokol jaringan yang tersedia seperti TCP, websocket atau protokol lapisan transport lainnya. Ini juga netral untuk database, sehingga Anda dapat menggunakannya dengan database relasional atau NoSQL.
GraphQL Server dapat digunakan dengan menggunakan salah satu dari tiga metode yang tercantum di bawah ini -
- Server GraphQL dengan database yang terhubung
- Server GraphQL yang mengintegrasikan sistem yang ada
- Pendekatan hibrida
GraphQL Server dengan Connected Database
Arsitektur ini memiliki GraphQL Server dengan database terintegrasi dan sering kali dapat digunakan dengan proyek baru. Saat menerima Kueri, server membaca payload permintaan dan mengambil data dari database. Ini disebut menyelesaikan kueri. Tanggapan yang dikembalikan ke klien mengikuti format yang ditentukan dalam spesifikasi resmi GraphQL.
Pada diagram di atas, server GraphQL dan database terintegrasi pada satu node. Klien (desktop / seluler) berkomunikasi dengan server GraphQL melalui HTTP. Server memproses permintaan, mengambil data dari database dan mengembalikannya ke klien.
GraphQL Server Mengintegrasikan Sistem yang Ada
Pendekatan ini bermanfaat bagi perusahaan yang memiliki infrastruktur lama dan API yang berbeda. GraphQL dapat digunakan untuk menyatukan layanan mikro, infrastruktur lama, dan API pihak ketiga di sistem yang ada.
Pada diagram di atas, API GraphQL bertindak sebagai antarmuka antara klien dan sistem yang ada. Aplikasi klien berkomunikasi dengan server GraphQL yang pada gilirannya menyelesaikan kueri.
Pendekatan Hibrid
Terakhir, kita dapat menggabungkan dua pendekatan di atas dan membangun server GraphQL. Dalam arsitektur ini, server GraphQL akan menyelesaikan setiap permintaan yang diterima. Ini akan mengambil data dari database yang terhubung atau dari API terintegrasi. Ini diwakili pada gambar di bawah ini -