https://www.rapa-puru.com/ https://ingemantspa.cl/ https://103.63.25.105/
– Inixindo Jogja
GraphQL : Solusi Pintar untuk Berkomunikasi dengan API

GraphQL : Solusi Pintar untuk Berkomunikasi dengan API

Beberapa waktu yang lalu, kita sempat membahas perbedaan antara jenis database SQL dan NoSQL di mana perbedaan terbesar terletak pada bahasa query-nya. Mumpung masih mengandung QL dalam memori kita walaupun sebenarnya agak berbeda, kali ini kita mengupas tentang bahasa query yang lain yaitu GraphQL.

Berbeda dengan SQL dan NoSQL yang merupakan bahasa query database, GraphQL merupakan bahasa query untuk sebuah API (Application Program Interface) yang bisa juga dinobatkan sebagai konsep baru API. Oleh karena itu, GraphQL ini tidak bisa ditandingkan dengan SQL atau pun NoSQL. Lawan sesungguhnya GraphQL ini adalah siapa lagi kalau bukan API legendaris yang dipakai jutaan umat manusia yaitu REST (Representation State Transfer).

 

Asal-usul GraphQL

GraphQL diciptakan oleh tim internal Facebook yang juga digunakan untuk keperluan internal pada tahun 2012. Karena dianggap terlalu sakti untuk digunakan Facebook sendiri, akhirnya pada tahun 2015 Facebook merilis GraphQL untuk publik. Project GraphQL kemudian berpindah tangan dari Facebook ke organisasi baru yaitu GraphQL Foundation yang berada di bawah naungan Linux Foundation pada tahun 2018.

Ide diciptakannya GraphQL sendiri adalah untuk memecahkan masalah keterbatasan yang dimiliki oleh REST API. Contohnya, katakanlah kita ingin menampilkan beberapa item buku dalam sebuah situs toko buku dan dalam setiap item menampilkan profil singkat dari penulis buku tersebut. Jika kita menggunakan API tradisional kita harus menarik data dari dua endpoint. Pertama, data item yang berisi judul buku, harga, atau sinopsis dengan endpoint misal tokobuku.shop/item/:id. Kedua, data penulis yang berisi 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 review dari pembeli dan lain sebagainya.

 

Solusi yang Bernama GraphQL

Solusi 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.” Pada intinya GraphQL berfungsi sebagai 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.

GraphQL : Solusi Pintar untuk Berkomunikasi dengan API 1

Jika masih bingung, saatnya kita bermain metafora! Bayangkan kita adalah client yang banyak maunya, server GraphQL 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 mana 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 Pondasi Utama

GraphQL sendiri dibangun atas 3 pondasi utama yaitu query, resolver, dan schema.

 

Query

Dengan masih memakai metafora yang sama, kita tentunya harus memakai bahasa yang sama dengan assistant kita agar komunikasi berjalan lancar bukan? Walaupun bahasa query yang digunakan GraphQL agak berbeda dengan bahasa query yang lain, query tersebut sangat sederhana dan mudah dipahami. Berikut contoh pemakaian query GraphQL untuk menarik data salah satu item buku.

 

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

 

Familiar? Yup! Query GraphQL sangat mirip dengan dokumen JSON.  Dalam GraphQL kita dapat memasukan argumen untuk setiap field. Agar bisa men-generate item 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 mana 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 bagaimana dan di mana sebuah data akan dikirimkan sesuai dengan field-nya masing-masing. Berikut merupakan contoh 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 pada root kita juga memiliki resolver pada field author di dalam book.

 

Schema

Schema adalah pondasi utama yang paling utama atau jika meminjam salah satu bapak-bapak YouTuber yang sangat jenius itu schema merupakan “core of the core” dari GraphQL. Akan terlalu panjang jika membahas schema dalam GraphQL. Jika penasaran dengan bagaimana schema dari GraphQL silahkan kunjungi situs GraphQL yang memuat dokumentasi schema GraphQL.

 

***

 

Itulah tadi artikel yang bertujuan mengenalkan GraphQL. Tak akan ada habisnya jika kita membahas GraphQL secara keseluruhan karena banyak sekali library Node.JS yang memiliki relasi terhadap graphQL ini seperti Express ataupun Gatsby.

Workshop Membuat API dengan Django

Workshop Membuat API dengan Django

Workshop Membuat API dengan Django

Django adalah web framework dari bahasa Python, dimana python merupakan bahasa pemrograman yang sangat ringan, dalam beberapa tahun terakhir perkembangan framework ini sangatlah pesat, dibuktikan banyak perusahaan besar seperti Github, Instagram, Firefox dll. Django memiliki arsitektur pemrograman module, dimana struktur akan menjadi lebih rapi saat maintenance.
Django sangat cocok digunakan sebagai API karena menggunakan bahasa python dimana bahasa ini memiliki speed yang tinggi

This form does not exist

Biaya

Free (tempat terbatas)

DATE AND TIME

27 September 2018
14.00 WIB – Selesai

LOCATION

Eduparx – Inixindo Jogja
Jalan Kenari No 69 Yogyakarta
View Maps

Wow, Panasonic Bangun Smart City!

Wow, Panasonic Bangun Smart City!

Wow, Panasonic Bangun Smart City!

Semua orang mengenal Panasonic sebagai sebuah merek produk elektronik konsumen. Namun tak banyak yang mengetahui perusahaan ini sudah mulai merambah ke desain perkotaan berteknologi tinggi dalam beberapa tahun terakhir.

Ya, Panasonic saat ini sedang membangun infrastruktur “kota pintar” alias smart city di sekitar Denver, Colorado, Amerika Serikat, dengan target penyelesaian di tahun 2026 nanti. Inisiatif ini merupakan bagian dari program Panasonic yang disebut Panasonic CityNow. Sesuai dengan namanya, smart city ini nantinya akan mengedepankan penggunaan teknologi pada infrastrukturnya.

Saat ini telah terpasang WiFi gratis, lampu jalan LED, sensor polusi, microgrid bertenaga surya, dan kamera keamanan pada lahan seluas 400 hektar tersebut. Ke depannya, dengan bantuan mikrogrid baru yang bergantung pada tenaga surya, kawasan tersebut akan dapat aktif 72 jam tanpa listrik.

Tak hanya itu, Panasonic juga sedang mempersiapkan kendaraan otonom untuk kawasan ini, salah satunya berupa transportasi antar-jemput tanpa pengemudi akan menghubungkan stasiun kereta ke seluruh ke rute bus di sepanjang area Denver.

Wow, Panasonic Bangun Smart City! 2

Kepada Business Insider, Emily Silverman sang program manager Kota Denver mengatakan bahwa timnya yakin bahwa teknologi yang diterapkan di kawasan tersebut akan memperbaiki taraf hidup masyarakat. Misalnya, saat pejabat kota dapat mengendalikan lampu jalan LED secara remote, mereka berharap dapat meningkatkan keamanan publik sambil meminimalkan polusi cahaya dan penggunaan energi.

Panasonic berencana untuk membagikan semua data yang dikumpulkannya melalui kota melalui Application Programming Interface (API) terbuka. Jika berhasil di daerah Denver, perusahaan tersebut dapat meluncurkan Panasonic CityNow di kota-kota Amerika lainnya.

Ini memang program Panasonic CityNow pertama di Negara Amerika Serikat, tetapi pada tahun 2015, program ini telah diterapkan di Fujisawa Sustainable Smart Town. Sebuah kota yang berlokasi 50 kilometer dari Tokyo ini awalnya merupakan pabrik Panasonic Jepang yang tidak menguntungkan lagi.

Namun sekarang, setiap rumah di Fujisawa SST memiliki teknologi yang canggih dan pintar, mulai dari material bangunan, sistem kelistrikan, air, kandungan udara, dan berbagai fasilitas, baik di dalam maupun di luar rumah sekitar kota ini.