Panduan Memahami API, REST API, dan RESTful API
API (Application Programming Interface) adalah serangkaian protokol, perangkat lunak, dan perintah yang digunakan oleh pengembang untuk membangun aplikasi. API digunakan untuk mengintegrasikan dua aplikasi yang berbeda atau mengambil data dari suatu aplikasi. Di dalam dunia pemrograman, API sangat penting karena memungkinkan aplikasi untuk berkomunikasi satu sama lain dengan cara yang telah diatur sebelumnya.
Mengapa ada API?
API dibuat untuk memudahkan pertukaran data antar aplikasi yang terintegrasi pada berbagai platform. Seiring dengan semakin banyaknya penggunaan aplikasi pada berbagai platform, API memainkan peran penting dalam memastikan bahwa data pada aplikasi web dan mobile konsisten dan terintegrasi dengan baik.
Tujuan Pembuatan API
Dalam pengembangan aplikasi, API memungkinkan developer untuk mempercepat proses development dengan menyediakan function secara terpisah yang dapat digunakan secara bersama-sama. Dengan demikian, developer tidak perlu mengembangkan fitur yang serupa secara berulang-ulang dan dapat fokus pada pengembangan fitur-fitur unik yang dibutuhkan oleh aplikasi.
Apa itu REST API?
REST API adalah salah satu teknologi API yang digunakan dalam pengembangan Web APIs. Arsitektur REST pada REST API bersifat stateless, dimana setiap request harus menyertakan semua data dan parameter dengan lengkap ketika mengakses suatu endpoint.
Pada REST API, server menyediakan resources (sumber daya/data) dan client mengakses serta menampilkan resource tersebut untuk penggunaan selanjutnya. Setiap resource diidentifikasi dengan menggunakan URIs (Universal Resource Identifiers) atau global ID. Resource tersebut direpresentasikan dalam format teks, JSON, atau XML, namun pada umumnya lebih banyak menggunakan format JSON dan XML. Dengan menggunakan REST API, pengembang aplikasi dapat dengan mudah mengakses dan memanipulasi data yang disediakan oleh server.
Dalam arsitektur REST, terdapat standarisasi dalam penggunaan URL dan HTTP method untuk mengakses dan memanipulasi resources. Penggunaan HTTP method pada REST API memungkinkan developer untuk mengetahui tujuan dari URL yang diakses, sehingga memudahkan dalam penulisan URL.
Berikut adalah beberapa jenis HTTP method yang sering digunakan pada REST API:
- GET: digunakan untuk membaca sebuah record atau daftar record dari server.
- POST: digunakan untuk menambahkan sebuah record ke server.
- PUT: digunakan untuk mengubah semua field dalam sebuah record yang telah ada di server.
- PATCH: digunakan untuk mengubah beberapa field dalam sebuah record yang telah ada di server.
- DELETE: digunakan untuk menghapus sebuah record dari server.
Dengan penggunaan HTTP method yang sesuai, developer dapat memanipulasi resources pada server dengan lebih efektif dan efisien melalui REST API.
Web service dan API
Web service adalah standar yang digunakan untuk melakukan pertukaran data antar aplikasi atau sistem melalui jaringan dengan menggunakan protokol seperti SOAP, REST, atau XML-RPC. Web service lebih fokus pada komunikasi antar sistem dan pemrosesan data.
Sedangkan API merupakan sebuah interface atau penghubung antara dua aplikasi atau sistem yang berbeda untuk saling berkomunikasi. API dapat menggunakan berbagai macam protokol dan style, tidak terbatas pada SOAP, REST, atau XML-RPC.
Dapat disimpulkan bahwa meskipun terdapat perbedaan antara web service dan API, namun web service sebenarnya merupakan bagian dari API yang digunakan untuk pertukaran data antar sistem.
Jadi, apa itu RESTful API?
RESTful API adalah implementasi dari API yang mengikuti prinsip arsitektur REST. Layanan web ini menggunakan metode HTTP untuk memfasilitasi komunikasi antara client dan server.
Cara kerja RESTful API cukup sederhana. Sebuah client mengirimkan permintaan atau request melalui protokol HTTP dan kemudian server merespons permintaan tersebut melalui HTTP Response. Data yang dikirim dan diterima dapat berupa format teks, JSON, atau XML.
RESTful API mengikuti prinsip-prinsip REST seperti penggunaan URI (Universal Resource Identifier) untuk mengidentifikasi resource, penggunaan HTTP method untuk memanipulasi resource tersebut, serta stateless yang membuat setiap request harus menyertakan semua informasi yang dibutuhkan dalam request tersebut.
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:
HTTP Response terdiri dari beberapa komponen sebagai berikut:
- Status/Response Code: mengindikasikan status server terhadap resource yang direquest. Contoh kode status yang umum digunakan antara lain 200 (OK), 404 (Not Found), dan 500 (Internal Server Error).
- HTTP Version: menunjukkan versi dari HTTP yang digunakan dalam response, misalnya HTTP v1.1.
- Response Header: berisi metadata untuk HTTP Response, seperti jenis server, panjang content, tipe content, waktu response, dan lain-lain.
- Response Body: berisi konten dari data yang diberikan sebagai respon atas permintaan yang dilakukan oleh client. Contoh isi dari response body adalah data dalam format JSON atau XML, gambar, atau teks biasa.