DOCS

Mengapa GraphQL

Temukan mengapa kami merekomendasikan integrasi melalui GraphQL dibandingkan REST.

Di Zonos, kami menawarkan dua jenis API utama untuk integrasi: GraphQL dan REST. Meskipun REST API sudah ada lebih lama dan mungkin lebih familiar bagi banyak orang, kami telah beralih ke GraphQL untuk memberikan lebih banyak fleksibilitas dan inovasi yang lebih cepat. Meskipun keduanya masih didukung, panduan ini menjelaskan mengapa GraphQL bukan hanya masa depan integrasi kami tetapi juga masa depan integrasi secara umum dan alat yang lebih canggih untuk memenuhi kebutuhan Anda hari ini.

Apa itu GraphQL? 

GraphQL adalah cara alternatif untuk berkomunikasi dengan API yang sangat cocok untuk struktur data yang kompleks dan membangun antarmuka di atasnya. Tidak seperti menganggap data sebagai potongan terpisah dan mandiri, GraphQL menunjukkan bagaimana potongan data terhubung dan berhubungan satu sama lain, sehingga mudah untuk meminta dan menerima informasi.

Pikirkan GraphQL sebagai bahasa query yang memungkinkan Anda berbicara dengan API seolah-olah Anda berbicara langsung dengan database. Menggunakan GraphQL memungkinkan Anda untuk sedekat mungkin dengan database, memungkinkan Anda memilih dan memilih data apa yang ingin Anda dapatkan dan bagaimana cara mendapatkannya, memberikan keuntungan performa yang sangat besar.

GraphQL dibuat oleh Facebook untuk mengatasi masalah penskalaan dengan struktur data yang kompleks. Sebagai hasil dari adopsi mereka yang sukses, semakin banyak perusahaan yang mulai menyadari manfaat menggunakan GraphQL untuk API mereka.

Sudah tahu REST? GraphQL akan terasa familiar.

API GraphQL lebih mudah digunakan daripada yang mungkin Anda pikir. Jika Anda terbiasa bekerja dengan REST API, berikut ini cara konsep inti dari REST diterjemahkan ke GraphQL.

FiturRESTGraphQL
EndpointPermintaan dibuat ke beberapa endpoint untuk tindakan yang berbedaSemua permintaan dibuat ke satu endpoint (misalnya, /graphql)
Pengambilan dataGunakan metode GET di endpoint spesifik untuk mengambil dataGunakan query untuk meminta data yang diperlukan dengan tepat, mengurangi over-fetching atau under-fetching
Modifikasi/tindakan dataGunakan metode HTTP seperti POST, PUT, PATCH, atau DELETE untuk memodifikasi atau memproses data.Gunakan mutation untuk melakukan operasi (misalnya, membuat pihak, menghitung landed costs)
Format responsFormat respons tetap mengembalikan semua bidang yang telah ditentukan, terlepas dari apakah diperlukanRespons fleksibel memungkinkan menentukan dengan tepat bidang mana yang akan disertakan, mengurangi transfer data yang tidak perlu (Jika fleksibilitas ini terasa rumit, gunakan saja contoh query yang telah ditulis sebelumnya dalam dokumentasi kami untuk pengalaman yang mirip REST)
Koneksi dataBeberapa permintaan sering diperlukan untuk mengambil data terkaitQuery bersarang memungkinkan pengambilan data terkait dalam satu permintaan (misalnya, detail pihak dan item pengiriman bersama-sama). Pengguna juga dapat membangun alur kerja untuk mengelola mutasi beberapa dalam satu permintaan GraphQL, mengurangi kompleksitas dan meningkatkan efisiensi

Keuntungan GraphQL

Sebuah analogi 

Bayangkan Anda berada di restoran dengan menu yang memungkinkan Anda memesan hidangan persis seperti yang Anda inginkan, dibandingkan dengan restoran lain tempat Anda hanya dapat memilih dari hidangan set. GraphQL seperti restoran pertama:

  • Dapatkan persis apa yang Anda inginkan: Dengan GraphQL, Anda dapat meminta data yang tepat Anda butuhkan, tidak lebih, tidak kurang. Bayangkan Anda hanya menginginkan nama dan harga hidangan, bukan seluruh daftar bahan. Dengan REST API, Anda harus mendapatkan detail hidangan lengkap dan mengabaikan bagian yang tidak Anda butuhkan.
  • Susun hidangan khusus: API GraphQL kami dapat dengan mudah digabungkan untuk membuat solusi yang lebih khusus, mirip dengan restoran gaya buffet tempat Anda dapat membuat hidangan yang unik persis seperti yang Anda butuhkan, menggunakan bahan yang sudah mereka miliki. Sebaliknya, REST API seperti toko roti dengan barang pra-buat yang dikemas dalam keranjang—Anda hanya dapat memesan apa yang sudah dibuat dan Anda tidak dapat memilih untuk membawa pulang hanya bagian yang ingin Anda ambil.
  • Menunggu lebih sedikit: Karena Anda dapat memperoleh semua informasi yang Anda butuhkan dalam satu permintaan, seolah-olah meminta server Anda untuk membawa appetizer, kursus utama, dan dessert semuanya sekaligus, daripada menunggu di antara kursus. Sebagian besar REST API memerlukan Anda mengirim beberapa permintaan untuk mendapatkan potongan informasi yang berbeda.
  • Mudah mengubah pesanan: Jika kebutuhan data aplikasi Anda berubah, GraphQL memudahkan untuk menyesuaikan. Anda hanya mengubah query untuk apa yang Anda butuhkan. Dengan REST, Anda mungkin perlu menunggu dapur (backend) untuk membuat makanan baru (endpoint) untuk menu, yang membutuhkan lebih banyak waktu.

GraphQL menawarkan lebih banyak fleksibilitas, efisiensi, dan kesederhanaan untuk mengambil data dibandingkan REST API, terutama ketika kebutuhan Anda berubah atau berkembang.

Bagaimana Zonos menggunakan GraphQL 

Saat modernisasi platform kami selama beberapa tahun terakhir, Zonos telah membuat pilihan untuk membangun fungsionalitas baru menggunakan GraphQL untuk API kami daripada REST. Kami memutuskan melakukan ini karena data kami kompleks dan saling terhubung, seperti data yang menyebabkan Facebook membuat GraphQL. Kompleksitas ini membuat tantangan untuk membangun REST API yang dapat diskalakan karena cara developer perlu mengambil dan menggunakan data bervariasi secara drastis antara implementasi, dan REST tidak fleksibel.

GraphQL dengan rapi mengatasi masalah ini dengan memungkinkan developer yang mengimplementasikan API kami untuk memilih dan memilih data yang tepat mereka inginkan dan bagaimana mereka mendapatkannya. Ini memungkinkan mereka untuk menyesuaikannya ke dalam alur kerja mereka tanpa Zonos perlu melakukan pekerjaan khusus (sementara mereka menunggu) untuk setiap situasi.

Hasil gabungan dari menggunakan GraphQL dan modernisasi dalam platform kami telah membuat API kami lebih berperforma, membuat integrasi Zonos ke dalam sistem Anda lebih cepat, dan memungkinkan Zonos untuk memberikan fitur baru lebih cepat.

Fitur yang lebih baik

Zonos terus mengembangkan fitur baru, dan GraphQL adalah yang pertama (dan biasanya satu-satunya) yang menerima pembaruan ini. Sebaliknya, REST API kami dianggap end-of-life dan tidak dapat mengakses banyak fitur baru kami.

Contoh fitur terbatas pada GraphQL:

  • Inclusive Pricing
  • Labels API
  • Checkout dan Hello baru
  • Ukuran kotak dalam respons API
  • Dashboard reporting
  • Kemampuan untuk meminta penawaran DDP jika memungkinkan, tetapi tetap mengembalikan penawaran DDU jika DDP tidak tersedia untuk negara tersebut dengan tingkat layanan itu
  • Rincian terperinci dari bea, pajak, dan biaya (informasi tingkat item, biaya tertentu)—Dashboard didukung oleh GraphQL dan menampilkan data ini untuk semua toko, tetapi respons REST API tidak termasuk tingkat detail ini
  • Test mode (akan datang)
Pesan demo

Apakah halaman ini bermanfaat?