Pengenalan atau perbedaan API, REST API dan RESTFUL API

perbedaan atau pengenalan


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? 


Pengenalan dan Penerapan API


Seperti yang sudah disebutkan sebelumnya, bahwa API (Application Programming Interface) merupakan interface yang berisi sekumpulan fungsi yang dapat dijalankan oleh program lain dengan berbagai jenis penerapan. Berikut contoh penerapan API 

  1. Bahasa pemrograman : Penerapannya dalam membuat koneksi ke database MySQL menggunakan dua API yang berbeda di bahasa pemrograman PHP. Selain itu, API juga dapat mengakses elemen pada DOM di bahasa pemograman Javascript.
  2. Library and framework 
  3. Sistem Operasi : Penerapannya dapat dalam bentuk base service, graphic device interface, dan user interface.
  4. Web API atau web service : Penerapannya dibuat dalam bentuk REST (Representational State Transfer) dan SOAP (Simple Object Access Protocol). Selain itu, dapat diterapkan dalam sebuah sistem perangkat lunak yang dibuat untuk mendukung interaksi antara dua aplikasi yang berbeda melalui jaringan (umumnya menggunakan jaringan HTTP Protocol). Web service dapat membuat aplikasi yang memiliki perbedaan bahasa, teknologi, dan sistem operasi sehingga web service dapat dijadikan bahan untuk membuat REST API. 

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 tindakan-tindakan 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. 


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 

  • User  mengirimkan request dengan data yang diinginkan
  • User mengirimkan request dan mengubah data menjadi JSON ke REST Server
  • 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)
  • 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

Perbedaan dengan RESTful API


Pada HTTP Method dikenal beberapa istilah yang dikenal sebagai ENDPOINTS, berikut penjelasan dari empat macam ENDPOINTS.

  1. GET : Metode ini digunakan untuk mengambil data. Contoh :  GET localhost/co-app/pengajar/ atau GET localhost/co-app/pengajar/12
  2. POST : Metode ini digunakan untuk mengambil data. Contoh : POST localhost/ci-app/pengajar
  3. PUT : Metode ini digunakan untuk mengubah data tetapi metode ini tidak dapat digunakan di browser. Contoh : PUT localhost/ci-app/pengajar/33
  4. DELETE : Metode ini digunakan untuk menghapus data tetapi metode ini tidak dapat digunakan di browser. Contoh : DELETE localhost/ci-app/pengajar/44

RESTful API bersifat Stateless, yang artinya tidak adanya state dalam sebuah aplikasi. Sifat stateless membuat setiap request HTTP dilakukan secara terisolasi, server tidak menyimpan state apapun mengenai sesi dari client, setiap request dari client harus berisi semua informasi yang dibutuhkan server termasuk informasi otentikasi, dan stateless merupakan salah satu syarat untuk membuat RESTful API


Jadi, dapat disimpulkan bahwa dalam membuat sebuah RESTful API terdapat beberapa syarat, yaitu sebagai berikut. 

  • Menggunakan HTTP method yang benar (GET, PUT, POST, DELETE)
  • ENDPOINTS yang digunakan berupa kata benda
  • Bersifat stateless
  • Menggunakan REST secara benar


LihatTutupKomentar