Apa Itu REST API?

By Rizky Kurniawan - December 14, 2021 ~3 mins read

Halo, selamat datang di Ruang Developer Blog. REST API menyediakan cara yang fleksibel dan ringan untuk mengintegrasikan aplikasi, dan telah muncul sebagai metode paling umum untuk menghubungkan komponen dalam arsitektur microservices.

Apa itu REST API?

API adalah singkatan dari Application Programming Interface. API merupakan seperangkat aturan yang menentukan bagaimana aplikasi atau perangkat dapat terhubung dan berkomunikasi satu sama lain. REST API adalah API yang memiiki desain yang sesuai dengan prinsip REST (representational state transfer). REST memberikan tingkat fleksibilitas dan kebebasan yang relatif tinggi bagi pengembang. Fleksibilitas ini hanyalah salah satu alasan mengapa REST API muncul sebagai metode umum untuk menghubungkan komponen dan aplikasi dalam arsitektur microservices.

Prinsip Desain REST API

REST API dapat dikembangkan menggunakan hampir semua bahasa pemrograman dan mendukung berbagai format data. Satu-satunya syarat adalah bahwa REST API menyesuaikan enam prinsip desain REST sebagai berikut:

  1. Uniform Interface: Semua permintaan API untuk sumber daya yang sama akan terlihat sama, dari mana pun permintaan itu berasal. REST API harus memastikan bahwa bagian data yang sama, seperti nama atau alamat email pengguna, hanya dimiliki oleh satu Uniform Resource Identifier (URI). Sumber daya tidak boleh terlalu besar tetapi harus berisi setiap informasi yang mungkin dibutuhkan klien.
  2. Client-server decoupling: Dalam desain REST API, aplikasi klien dan server harus benar-benar independen satu sama lain. Satu-satunya informasi yang harus diketahui aplikasi klien adalah URI dari sumber daya yang diminta; itu tidak dapat berinteraksi dengan aplikasi server dengan cara lain. Demikian pula, aplikasi server tidak boleh memodifikasi aplikasi klien selain meneruskannya ke data yang diminta melalui HTTP.
  3. Stateless: REST API adalah stateless, artinya setiap permintaan harus menyertakan semua informasi yang diperlukan untuk memprosesnya. Dengan kata lain, REST API tidak memerlukan sesi sisi server apa pun. Aplikasi server tidak diizinkan untuk menyimpan data apa pun yang terkait dengan permintaan klien.
  4. Cacheability: Jika memungkinkan, sumber daya harus dapat disimpan dalam cache di sisi klien atau server. Respons server juga perlu berisi informasi tentang apakah caching diizinkan untuk sumber daya yang dikirimkan. Tujuannya adalah untuk meningkatkan kinerja di sisi klien, sekaligus meningkatkan skalabilitas di sisi server.
  5. Layered system architecture: Ddalam REST API, panggilan ke server dan respons melewati lapisan yang berbeda. Sebagai aturan praktis, jangan berasumsi bahwa aplikasi klien dan server terhubung langsung satu sama lain. Mungkin ada sejumlah perantara yang berbeda dalam lingkaran komunikasi. REST API perlu dirancang sehingga baik klien maupun server tidak dapat mengetahui apakah itu berkomunikasi dengan aplikasi akhir atau perantara.
  6. Code on demand (optional): REST API biasanya mengirim sumber daya statis, tetapi dalam kasus tertentu, respons juga dapat berisi kode yang dapat dieksekusi (seperti applet Java). Dalam kasus ini, kode hanya boleh dijalankan sesuai permintaan.

Standarisasi

REST API memiliki standarisasi mengenai URL dan HTTP verbs. Dalam penggunaan REST API, kita bisa melakukan 5 jenis operasi yang berbeda pada URL yang sama. Berikut adalah standarisasi HTTP verbs:

  1. GET: digunakan untuk mengambil resource
  2. POST: digunakan untuk menambah resource
  3. PUT: digunakan untuk mengupdate semua field dalam resource
  4. PATCH: digunakan untuk mengupdate bebrapa field dalam resource
  5. DELETE: digunakan untuk menghapus resource
Bagikan:

Ingin Berdiskusi?

Yuk bergabung di Grup Telegram Ruang Developer atau mulai diskusi melalui GitHub. See You!

Dapatkan contoh source code project backend, frontend, atau fullstack untuk kamu amati, tiru, dan modifikasi sesuka hati. Klik untuk melihat detail!
comments powered by Disqus

Berlangganan Gratis

Kamu akan menerima email update dari Ruang Developer

Beri Dukungan

Beri dukungan, dapatkan full source code project web untuk bahan referensi, tiru, dan modifikasi.
Lightbox