Kamu mungkin sering mendengar istilah "API" atau "REST API" di dunia pemrograman, tapi mungkin masih bingung apa sebenarnya artinya dan bagaimana cara kerjanya. Jangan khawatir โ dalam artikel ini kita akan membahas REST API dari nol dengan bahasa yang mudah dipahami, lengkap dengan analogi dan contoh yang membuatnya lebih jelas.
Apa Itu API?
API singkatan dari Application Programming Interface. Secara sederhana, API adalah cara dua aplikasi untuk "berbicara" satu sama lain. Bayangkan kamu sedang di restoran. Kamu tidak langsung masuk ke dapur untuk mengambil makanan sendiri โ kamu memesan lewat pelayan. Pelayan itulah API: perantara yang menerima permintaanmu, menyampaikannya ke sistem di belakang (dapur/server), lalu mengembalikan hasilnya kepadamu.
Contoh nyata: ketika aplikasi cuaca di ponselmu menampilkan prakiraan cuaca, ia menggunakan API untuk meminta data cuaca dari server penyedia layanan cuaca tersebut.
Apa Itu REST?
REST singkatan dari Representational State Transfer. Ini adalah sebuah gaya arsitektur (bukan protokol atau standar) yang mendefinisikan aturan dan prinsip dalam membangun API menggunakan HTTP. API yang mengikuti prinsip REST disebut RESTful API atau REST API.
REST menjadi populer karena kesederhanaannya โ ia memanfaatkan protokol HTTP yang sudah ada dan tidak memerlukan framework khusus untuk digunakan.
Prinsip Utama REST API
Ada beberapa prinsip yang membuat sebuah API disebut "RESTful":
- Client-Server โ client (frontend/aplikasi) dan server (backend) terpisah dan berkomunikasi melalui API
- Stateless โ setiap request berdiri sendiri; server tidak menyimpan informasi tentang request sebelumnya
- Uniform Interface โ menggunakan format dan konvensi yang konsisten (URL, HTTP methods)
- Resource-based โ semua yang diakses dianggap sebagai "resource" yang diidentifikasi oleh URL
Konsep Resource dan Endpoint
Dalam REST API, setiap "hal" yang bisa diakses disebut resource. Misalnya, dalam aplikasi blog, resource-nya bisa berupa artikel, pengguna, atau komentar. Setiap resource diakses melalui endpoint โ yaitu URL tertentu.
Contoh endpoint untuk resource artikel:
GET /api/articles โ ambil semua artikel
GET /api/articles/5 โ ambil artikel dengan ID 5
POST /api/articles โ buat artikel baru
PUT /api/articles/5 โ update artikel dengan ID 5
DELETE /api/articles/5 โ hapus artikel dengan ID 5
Perhatikan bagaimana URL mewakili "benda" (artikel) dan HTTP method mewakili "aksi" yang dilakukan.
HTTP Methods dalam REST API
REST API menggunakan HTTP methods untuk menentukan jenis operasi yang dilakukan:
- GET โ membaca atau mengambil data (Read)
- POST โ membuat data baru (Create)
- PUT โ memperbarui seluruh data yang ada (Update)
- PATCH โ memperbarui sebagian data yang ada (Partial Update)
- DELETE โ menghapus data (Delete)
Format Data: JSON
REST API umumnya menggunakan JSON (JavaScript Object Notation) sebagai format data untuk request dan response. JSON mudah dibaca manusia dan mudah diproses oleh mesin. Contoh response dari endpoint GET /api/articles/5:
{
"id": 5,
"judul": "Belajar REST API",
"konten": "REST API adalah...",
"penulis": "Budi",
"tanggal": "2024-01-15"
}
Cara Menggunakan REST API
Untuk berkomunikasi dengan REST API, kamu membutuhkan HTTP client. Beberapa pilihan populer:
- Postman atau Insomnia โ tools GUI untuk testing API, sangat cocok untuk pemula
- cURL โ tool command line yang tersedia di hampir semua sistem operasi
- Fetch API atau Axios โ untuk menggunakan REST API dari JavaScript di browser atau Node.js
Contoh menggunakan Fetch API di JavaScript untuk mengambil data artikel:
fetch('https://api.contoh.com/articles')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Status Code dalam REST API
REST API menggunakan HTTP status code untuk memberitahu client apakah request berhasil atau gagal:
- 200 OK โ request berhasil, data dikembalikan
- 201 Created โ data baru berhasil dibuat
- 400 Bad Request โ request tidak valid atau data yang dikirim salah
- 401 Unauthorized โ perlu login/autentikasi terlebih dahulu
- 403 Forbidden โ tidak punya izin untuk mengakses resource ini
- 404 Not Found โ resource yang diminta tidak ditemukan
- 500 Internal Server Error โ ada masalah di sisi server
Contoh REST API Publik untuk Belajar
Cara terbaik belajar REST API adalah langsung mencobanya. Beberapa REST API publik yang bisa kamu eksplorasi secara gratis:
- JSONPlaceholder (jsonplaceholder.typicode.com) โ fake API untuk testing
- OpenWeatherMap API โ data cuaca global
- GitHub API โ akses data repositori dan pengguna GitHub
- The Dog API / Cat API โ untuk latihan sederhana yang menyenangkan
Kesimpulan
REST API adalah cara standar yang digunakan aplikasi untuk berkomunikasi satu sama lain melalui HTTP. Dengan memahami konsep resource, endpoint, HTTP methods, JSON, dan status code, kamu sudah memiliki pemahaman dasar yang kuat tentang REST API. Langkah selanjutnya adalah langsung praktik โ coba gunakan API publik, lalu pelajari cara membangunnya sendiri menggunakan framework backend favoritmu. REST API adalah skill yang sangat dicari di industri, jadi investasi waktumu untuk mempelajarinya tidak akan sia-sia!