Fadly Mahendra
4 min readJun 19, 2019

--

REST dan HTTP sangat erat kaitannya. Ketika kita ingin membuat sebuat REST Server pasti kita akan menggunakan protokol HTTP. Sebelumnya mari kita tinjau pengertiannya.

Representational State Transfer (REST) is a software architectural style that defines a set of constraints to be used for creating Web services

REST API bisa dibilang merupakan Gaya arsitektural perangkat lunak yang di dalamnya mendefinisikan aturan-aturan untuk membuat web service.

Ilustrasi REST API

Kita ambil contoh aplikasi yang umum digunakan di Indonesia, misal Traveloka. Kalau temen-temen pernah pesan tiket pesawat, tiket kereta, kamar hotel melalui traveloka pasti tau. Misal kita pesan tiket Air Asia di Traveloka, padahal Traveloka tidak punya Pesawat ya? dan padahal juga Air Asia sendiri punya aplikasi untuk pemesanan tiket kan?

Traveloka tidak mungkin akses database Air Asia secara langsung

Apakah Traveloka langsung mengakses database Air Asia? Tentu tidak ya. Karena Air Asia menyediakan API yang dapat diakses oleh pihak lain.

Traveloka terhubung dengan Maskapai Penerbangan melalui API

Lalu untuk apa Maskapai Penerbangan yang notabene sudah memiliki aplikasi sendiri malah membuat dan menyediakan API untuk diakses oleh pihak lain, Traveloka misalnya? Apakah semata untuk kemudahan? atau untuk uang? hehe. Bisa dijawab sendiri ya.

Animasi apa itu API?

Pada video di atas dijelaskan bagaimana API bekerja. Dianalogikan dengan pemesanan makanan di restoran.

  • Customer → Client
  • Waiter → API, sebagai jalur penghubung kita sebagai Customer dan dapur yang membuat makanan yang kita pesan
  • Menu → REST API, jadi aturan-aturan pemesanannya ada di menu. Kenapa ada menu? tentu saja agar customer bisa mengetahui apa yang bisa dipesan, dan tidak bisa memesan selain yang ada di menu walaupun memungkinkan. Misalnya ketika kita ada di Solaria, kita pesan ayam bakar, memungkinkan tidak? sangant memungkinkan karena Solaria punya stok ayam mentah yang bisa dibakar kapan saja, tapi kita tidak bisa pesan ayam bakar karena tidak tersedia di menu.
  • Ada request dan response dengan data yang dikirim dan diterima berupa JSON

REST API

  • REpresentational State Transfer
  • Gaya perancangan / Architectural Style
  • Stateless
  • Karya dari Roy Fielding, pada disertasi PhD-nya
  • Menggunakan protokol HTTP
  • Memungkinkan interaksi mesin dengan mesin

The Hypertext Transfer Protocol (HTTP) is an application protocol for distributed, collaborative, hypermedia information systems

HTTP adalah protokol yang memungkinkan kita mengakses google, facebook, friendster, bukalapak, dan lain-lain.

Ketika kita ketik “facebook.com” di browser kemudian enter maka terbukalah halaman Facebook, lalu apa sih yang sebenarnya terjadi di balik layar?

Jadi yang kita ketik itu adalah yang disebut URL (Uniform Resource Locator), yaitu alamat yang digunakakan untuk mengakses sebuah resource menggunakan internet. Yang dimaksud dengan resource bisa berupa halaman html, script, css, maupun gambar.

Jadi ketika kita akses “facebook.com” yang sebenarnya kita akses adalah file index.php, yaitu lengkapnya https://www.facebook.com/index.php. Namun kita jarang menuliskan hingga ke nama filenya. Nama file index ini adalah default walaupun nanti perilaku default ini bisa diubah misal menggunakan mod_rewrite atau .htaccess. Intinya yang kita akses adalah sebuar resource.

Ilustarsi ketika kita mengetik URL di Browser kemudian tekan Enter

Request yang dikirim menggunakan method GET. Kemudian user menerima respon berupa HTML, kenapa HTML? Karena yang minta manusia, manusia butuh text, gambar, warna, sesuatu yang menarik dan interaktif.

Kemudian ketika misalnya kita memposting sesuatu di Facebook misalnya, maka request yang kita kirim menggunakan method POST.

Posting di Facebook

Contoh-contoh di atas adalah proses ketika kita manusia mengakses website secara umum. Sekarang kita persempit lagi dengan kasus misalnya Pengelolan Data Mahasiswa dengan codeigniter.

Ilustrasi manipulasi data CI ke Server

Lalu bagaimana dengan REST API?

Gambar di atas adalah aplikasi yang biasa, ada kita sebagai User yang mengakses ke web server.

Karena kita ingin mengakses REST API pasti ada suatu tempat di luar sana REST Servernya.

Kemudian Server akan mengirimkan request dan mengubah data menjadi JSON ke REST Server. Selanjutnya Server akan menerima respon berupa JSON beserta kode status.

Ilustrasi REST Server

Reference: https://youtu.be/dtpm5wwXEIY, https://en.wikipedia.org/wiki/Representational_state_transfer, https://youtu.be/s7wmiS2mSXY, https://www.ics.uci.edu/~fielding/pubs/dissertation/fielding_dissertation.pdf

--

--