‹ Previous Hadirkan PWA di Google Play Store dengan Trusted Web ActivityNext › #metalhall.netmDay – Pengenalan Bahasa Pemrograman R dalam Machine Learning

Beberapage authority waktu yang lalu, kita sempat membahas perbedaan antara jenis database SQL dan NoSquốc lộ di mana perbedaan terbesar terletak pada bahasa query-nya. Mumpung masih mengandung QL dalam memori kita walaupun sebenarnya agak berbedomain authority, kali ini kita mengupas tentang bahasa query yang lain yaitu GraphQL.

Bạn đang xem: Graphql là gì? tính năng và cách bắt đầu với một graphql

Berbeda dengan Squốc lộ dan NoSQL yang merupakan bahasa query database, Graphquốc lộ merupakan bahasa query untuk sebuah API (Application Program Interface) yang bisa juga dinobatkan sebatua konsep baru API. Oleh karemãng cầu itu, Graphquốc lộ ini tidak bisa ditandingkan dengan Squốc lộ atau pun NoSQL. Lawan sesungguhnya Graphquốc lộ ini adalah siapa lagi kavệ sinh bukan API legendaris yang dipakai jutaan umat manusia yaitu REST (Representation State Transfer).

Asal-usul GraphQL

GraphQL diciptakan oleh tyên internal Facebook yang juga digunakan untuk keperluan internal padomain authority tahun 2012. Karena dianggap terlalu sakti untuk digunakan Facebook sendiri, akhirnya pada tahun năm ngoái Facebook merilis Graphquốc lộ untuk publik. Project Graphquốc lộ kemudian berpindah tangan dari Facebook ke organisamê say baru yaitu GraphQL Foundation yang beradomain authority di bawah naungan Linux Foundation pada tahun 2018.

Ide diciptakannya Graphquốc lộ sendiri adalah untuk memecahkan masalah keterbatasan yang dimiliki oleh REST API. metalhall.netntohnya, katakanlah kita ingin menampilkan beberapage authority sản phẩm buku dalam sebuah situs toko buku dan dalam setiap thành công menampilkan profil singkat dari penulis buku tersebut. Jika kita menggunakan API tradisional kita harus menarik data dari dua endpoint. Pertama, data sản phẩm yang berisay mê judul buku, harga, atau sinopsis dengan endpoint misal tokobuku.shop/item/:id. Kedua, data penulis yang berimê man nama, foto profil, buku apa saja yang pernah ditulis, dan biografi dengan endpoint tokobuku.shop/author/:id. Beban akan semakin bertambah jika kita harus menampilkan data lain seperti nhận xét dari pembeli dan lain sebagainya.

Solumê say yang Bernama GraphQL

Solumê mẩn yang ditawarkan oleh GraphQL sebenarnya sangat simpel, “daripada harus mengurus beberapa endpoint ‘bodoh’ , kenapa tidak buat satu endpoint ‘pintar’ yang bisa menangani query rumit lalu mengemas output data dalam bentuk apapun yang client minta.” Padomain authority intinya GraphQL berfungmê say sebasợi layer antara client dan beberapa data source, menerima request dari client, dan memberikan data sesuai dengan apa yang diminta. Untuk lebih jelasnya bisa dilihat dari gambar berikut.

*

Jika masih bingung, saatnya kita bermain metafora! Bayangkan kita adalah client yang banyak maunya, server Graphquốc lộ adalah seorang personal assistant, dan sumber data adalah toko. Suatu hari kita butuh mengambil laundry, memesan makanan, dan belanja bulanan. Karena kita tak mau repot dan memiliki personal assistant yang tahu di mamãng cầu letak toko langganan kita, kita tak perlu mendatangi tempat laundry, restoran, atau supermarket. Yang perlu kita lakukan hanyalah menyerahkan daftar belanjaan, mengatakan menu yang kita inginkan, dan memberikan nota laundry ke personal assistant kita. Kita tinggal santai-santai di rumah atau mengerjakan hal lain dan menunggu personal assistant kita datang membawa barang-barang pesanan kita.

3 Pondaham mê Utama

GraphQL sendiri dibangun atas 3 pondađê mê utama yaitu query, resolver, dan schema.

Xem thêm: Susan Wong Là Ai - Susan Wong: Nghe Tải Album Susan Wong

Query

Dengan masih memakai metafora yang sama, kita tentunya harus memakai bahasa yang sama dengan assistant kita agar komunikayêu thích berjalan lanoto bukan? Walaupun bahasa query yang digunakan Graphquốc lộ agak berbedomain authority dengan bahasa query yang lain, query tersebut sangat sederhamãng cầu dan mudah dipahangươi. Berikut metalhall.netntoh pemakaian query GraphQL untuk menarik data salah satu chiến thắng buku.

query book(id: “10002a”) title synopsis author name avatarUrl profileUrl

Familiar? Yup! Query GraphQL sangat mirip dengan dokumen JSON. Dalam Graphquốc lộ kita dapat memasukan argumen untuk setiap field. Agar bisa men-generate công trình buku secara dinamis, kita dapat memasukkan query berikut.

query ($id: String) book(id: $id) title synopsis author name avatarUrl profileUrl

Resolver

Kembali lagi ke metafora sebelumnya. Personal assistant kita tidak tahu akan ke mamãng cầu jika dia tidak mengetahui alamat dari masing-masing tempat yang akan dituju. Untuk kita harus memberi tahu alamat dari masing-masing tempat. Sebuah resolver memberitahu GraphQL bagaimamãng cầu dan di mana sebuah data akan dikirimkan sesuai dengan field-nya masing-masing. Berikut merupakan metalhall.netntoh resolver yang menggunakan GraphQL-Tools dari Apollo.

Query: book(root, args) return Books.find( id: args.id ); ,Book: author(book) return Users.find( id: book.authorId)

Dalam query di atas, selain memiliki resolver padomain authority root kita juga memiliki resolver pada field author di dalam book.

Schema

Schema adalah pondasay mê utama yang paling utama atau jika meminjam salah satu bapak-bapak YouTuber yang sangat jenius itu schema merupakan “metalhall.netre of the metalhall.netre” dari Graphquốc lộ. Akan terlalu panjang jika membahas schema dalam GraphQL. Jika penasaran dengan bagaimamãng cầu schema dari Graphquốc lộ silahkan kunjungi situs GraphQL yang memuat dokumentasi schema Graphquốc lộ.

***

Itulah tadi artikel yang bertujuan mengenalkan Graphquốc lộ. Tak akan ada habisnya jika kita membahas Graphquốc lộ secara keseluruhan karena banyak sekali library Node.JS yang memiliki relamê mệt terhadap graphquốc lộ ini seperti Express ataupun Gatsby.

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *