REST API dan RESTful API

 REST API dan RESTful API




Bagi seorang programmer pasti sudah tidak asing lagi dalam mendengar nama REST API. API (Application Programming Interface) adalah suatu kumpulan subroutine, protokol komunikasi, tools, dan fungsi untuk membuat sebuah perangkat lunak. Mudahnya, API adalah fungsi yang dapat dipanggil atau dijalankan oleh program lain sehingga dapat menghubungkan antara server dengan perangkat yang digunakan oleh user. Jadi, untuk mendapatkan suatu database dari suatu perusahaan diperlukan API untuk mengambil data tersebut hingga sampai kepada user. Lalu, bagaimana dengan REST API? Penerapannya kepada suatu program? Dan bagaimana cara membuat request melalui HTTP Protocol? Yuk, simak artikel berikut!


A. Pembahasan REST API

Sebelumnya sudah dijelaskan tentang API, lalu bagaimana dengan REST API? REST API dapat dikatakan sebagai salah satu bentuk gaya arsitektural perangkat lunak yang didalamnya mendefinisikan beberapa aturan untuk membuat web service. REST API berisi aturan atau batasan yang dapat membatasi programmer untuk mengakses atau melakukan tindakantindakan tertentu pada sebuah database. Jika API adalah penghubung, maka REST yang membuat aturan sesuai keinginan programmer dalam merancang web service. Mudahnya, terdapat request dan response pada data yang dikirimkan ataupun yang diterima. Data yang digunakan dalam REST API umumnya berupa JSON. Format Respon Populer Dari REST API yaitu XML dan JSON.

Sifat-sifat REST API (Representational State Transfer):

  • Gaya perancangan
  • Stateless
  • Dibuat oleh Roy Fielding
  • Protokolnya selalu menggunakan HTTP
  • Memungkinkan interaksi antar mesin (mesin-mesin) dengan perilaku yang berbeda. 
Sebagai contoh, ilustrasinya adalah pada saat user membuka browser dan mencari suatu site seperti youtube.com maka ini artinya user mengirimkan request dengan metode GET ke server youtube sehingga server menerima respon berupa HTML. Jika site dari youtube sudah terbuka maka terdapat response yang dikirimkan oleh server yang berasal dari API. Kasus kedua adalah ketika ada form username dan password dalam membuka suatu site maka artinya user mengirimkan request dalam bentuk metode POST sehingga nanti server akan memberi response dan menyajikan data yang diinginkan oleh user.

Berikut adalah cara membuat ilustrasi REST API:

  1. User mengirimkan request dengan data yang diinginkan.
  2. User mengirimkan request dan mengubah data menjadi JSON ke REST Server.
  3. REST Server menerima response berupa JSON beserta kode status dan mengirimkannya ke server (kode status : 200 success, 404 not found, 500 server eror, dan masih banyak lagi. Kode status digunakan untuk mengetahui apakah request yang dikirimkan oleh user sudah benar atau belum).
  4. Server menerima dari REST Server dan mengubah respon menjadi HTML.  
Perangkat yag digunakan oleh user disebut dengan client sehingga pada saat client bertemu dengan server maka dapat disebut sebagai REST Client. Rest Client dapat berupa smartphone, cloud, dan smart home .

Metode HTTP dalam arsitektur REST 

REST memiliki standarisasi dalam pemakaian, yaitu URL dan HTTP method. HTTP method digunakan untuk mengetahui kegunaan dari URL yang diakses, sehingga mempermudah dalam penulisan URL. 

Berikut adalah jenis HTTP method yang sering digunakan :

  1. GET, digunakan untuk membaca sebuah record atau daftar record.
  2. POST, digunakan untuk menambah sebuah record.
  3. PUT, digunakan untuk mengubah semua field dalam sebuah record.
  4. PATCH, digunakan untuk mengubah beberapa field dalam sebuah record.
  5. DELETE, digunakan untuk menghapus sebuah sebuah record.

B. Pembahasan RESTful API 

RESTful API didasarkan pada teknologi state transfer (representational state transfer / REST), gaya arsitektur dan pendekatan komunikasi yang sering digunakan dalam pengembangan layanan web.

Meskipun REST dapat digunakan di hampir semua protokol, tapi biasanya memanfaatkan HTTP ketika digunakan untuk Web API. Hal ini membantu pengembang web tidak perlu menginstal library atau perangkat lunak tambahan untuk memanfaatkan desain REST API. Design REST API pertama kali diperkenalkan oleh Dr. Roy Fielding dalam disertasi doktor tahun 2000 -nya. REST API terkenal karena fleksibilitasnya yang luar biasa. Data tidak terikat dengan metode dan sumber daya, REST memiliki kemampuan untuk menangani beberapa jenis panggilan, mengembalikan format data yang berbeda dan bahkan mengubah secara struktural tentunya dengan implementasi yang benar.

REST yang digunakan oleh browser dapat dianggap sebagai bahasa internet. Dengan meningkatnya penggunaan cloud, API muncul untuk mengekspos layanan web. REST adalah pilihan logis untuk membangun API yang memungkinkan pengguna untuk terhubung dan berinteraksi dengan layanan cloud. API telah banyak digunakan oleh situs -situs seperti Amazon, Google, LinkedIn dan Twitter.

Keuntungan terbesar dari Restful API adalah Anda tidak perlu memasang apa pun di sisi klien. SDK atau framework tidak diperlukan. Yang harus Anda lakukan adalah membuat permintaan HTTP sederhana ke layanan end point dari API target, biarkan server melakukan layanannya untuk Anda dan dapatkan hasilnya kembali. Sangat mudah dilakukan.

Contoh paling sederhana adalah Google API untuk login. Anda tidak perlu menghabiskan banyak waktu hanya untuk membuat sistem login untuk member di website. Anda hanya perlu memanggil API dari google, pengguna hanya perlu login ke Google kemudian Anda akan mendapatkan data semisal alamat email / nama dari pengguna tersebut. Tentunya jika pengguna telah memberikan izin mengunakan data mereka. 

Cara kerja RESTful API 

API secara eksplisit memanfaatkan metodologi HTTP yang ditentukan oleh protokol RFC 2616. Permintaan ke API bisa menggunakan GET untuk mengambil sumber daya, PUT untuk mengubah status atau memperbarui sumber daya, yang dapat berupa objek, file, atau blok, POST untuk membuat sumber daya itu, dan DELETE untuk menghapusnya.

Komponen dari HTTP Request :

  • Verb, HTTP method yang digunakan misalnya GET, POST, DELETE, PUT dll. 
  • Uniform Resource Identifier (URI) untuk mengidentifikasikan lokasi resource pada server.
  • HTTP Version, menunjukkan versi dari HTTP yang digunakan, contoh HTTP v1.1.
  • Request Header, berisi metadata untuk HTTP Request. Contoh, type client/browser, format yang didukung oleh client, format dari body pesan, seting cache dll.
  • Request Body, konten dari data.
Komponen dari HTTP Response :

  • Status/Response Code, mengindikasikan status server terhadap resource yang direquest. misal : 404, artinya resource tidak ditemukan dan 200 response OK. 
  • HTTP Version, menunjukkan versi dari HTTP yang digunakan, contoh HTTP v1.1.
  • Response Header, berisi metadata untuk HTTP Response. Contoh, type server, panjang content, tipe content, waktu response, dll.
  • Response Body, konten dari data yang diberikan. 
  

Comments

Popular posts from this blog

Sejarah Bahasa Pemrograman Python

Struktur Dasar Algoritma