REST API adalah cara standar bagi dua aplikasi untuk saling bertukar data melalui protokol HTTP. Saat kamu membuka aplikasi cuaca, cek ongkir, atau login pakai akun Google, hampir pasti ada REST API yang bekerja di belakangnya.
Banyak pemula bingung dengan istilah ini karena sering muncul di lowongan kerja dan tutorial, tapi jarang dijelaskan dengan bahasa sederhana. Di artikel ini, kamu akan memahami REST API adalah apa, bagaimana cara kerjanya, dan bagaimana membuat permintaan pertamamu lewat kode JavaScript.
Daftar Isi (sisipkan blok Table of Contents Rank Math di sini)
Apa Itu REST API?
Mari kita pecah dua kata ini.
API (Application Programming Interface) adalah “pintu” yang memungkinkan satu program berbicara dengan program lain. REST (Representational State Transfer) adalah gaya arsitektur, yaitu seperangkat aturan tentang bagaimana pintu itu sebaiknya dirancang.
Jadi, REST API adalah API yang mengikuti aturan REST: memakai HTTP, memperlakukan data sebagai resource yang punya alamat (URL), dan biasanya bertukar data dalam format JSON.
Analogi sederhana: bayangkan restoran. Kamu (client) tidak masuk ke dapur. Kamu memesan lewat pelayan (API), dapur (server) memproses, lalu pelayan mengantar makanan (response) ke mejamu.
Cara Kerja REST API
Alurnya selalu berpola request dan response:
- Client (browser, aplikasi mobile, atau program lain) mengirim request ke sebuah URL.
- Server menerima, memproses, lalu mengambil atau mengubah data di database.
- Server mengirim response berisi data (biasanya JSON) dan kode status.
Satu request terdiri dari empat bagian penting:
- URL (endpoint): alamat resource, misalnya
https://api.contoh.com/users/1 - Method: jenis aksi, seperti GET atau POST
- Header: informasi tambahan, misalnya format data atau token autentikasi
- Body: data yang dikirim (khusus method tertentu seperti POST)
HTTP Method yang Dipakai di REST API
Konsep paling penting dalam memahami REST API adalah method. Setiap method mewakili satu aksi pada resource:
| Method | Fungsi | Contoh |
|---|---|---|
| GET | Mengambil data | Ambil daftar artikel |
| POST | Membuat data baru | Mendaftarkan user baru |
| PUT | Mengganti data secara utuh | Memperbarui seluruh profil |
| PATCH | Mengubah sebagian data | Mengganti email saja |
| DELETE | Menghapus data | Menghapus komentar |
Pola ini dikenal sebagai CRUD (Create, Read, Update, Delete). Kalau kamu pernah mendengar konsep idempotency dalam programming, method GET, PUT, dan DELETE termasuk idempotent: dikirim berkali-kali, hasil akhirnya sama.
Kode Status HTTP yang Wajib Kamu Tahu
Setiap response membawa kode status yang memberi tahu hasil request:
- 200 OK: berhasil
- 201 Created: data baru berhasil dibuat
- 400 Bad Request: request salah atau data tidak valid
- 401 Unauthorized: belum login atau token tidak valid
- 404 Not Found: resource tidak ditemukan
- 500 Internal Server Error: ada masalah di sisi server
Daftar lengkapnya bisa kamu pelajari di dokumentasi HTTP dari MDN.
Contoh 1: Mengambil Data dengan GET
Kita pakai API gratis untuk latihan bernama JSONPlaceholder. Jalankan kode ini di browser console atau Node.js 18 ke atas:
javascript
fetch("https://jsonplaceholder.typicode.com/posts/1")
.then((response) => response.json())
.then((data) => console.log(data));
Hasilnya berupa objek JSON berisi id, title, dan body dari sebuah artikel contoh. Itulah request pertamamu ke sebuah REST API.
Contoh 2: Mengirim Data dengan POST
javascript
fetch("https://jsonplaceholder.typicode.com/posts", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
title: "Belajar REST API",
body: "Ternyata tidak sesesulit itu",
userId: 1,
}),
})
.then((response) => response.json())
.then((data) => console.log(data));
Perhatikan tiga hal: method diubah ke POST, header memberi tahu server bahwa isinya JSON, dan data dikirim lewat body.
Contoh 3: Menulis Fungsi yang Lebih Rapi dengan async/await
Untuk kode yang lebih mudah dibaca dan ditangani error-nya:
javascript
async function ambilArtikel(id) {
try {
const response = await fetch(
`https://jsonplaceholder.typicode.com/posts/${id}`
);
if (!response.ok) {
throw new Error(`Gagal: status ${response.status}`);
}
return await response.json();
} catch (error) {
console.error(error.message);
}
}
ambilArtikel(1).then(console.log);
Selalu cek response.ok. Tanpa itu, fetch tidak otomatis melempar error untuk status seperti 404 atau 500.
Contoh 4: Membuat REST API Sederhana dengan Express
Setelah paham sisi client, coba bangun sisi server. Pasang Express dulu dengan npm install express, lalu buat server.js:
javascript
const express = require("express");
const app = express();
app.use(express.json());
let tugas = [{ id: 1, judul: "Belajar REST API" }];
app.get("/tugas", (req, res) => res.json(tugas));
app.post("/tugas", (req, res) => {
const baru = { id: tugas.length + 1, judul: req.body.judul };
tugas.push(baru);
res.status(201).json(baru);
});
app.listen(3000, () => console.log("Server jalan di port 3000"));
Jalankan dengan node server.js, lalu buka http://localhost:3000/tugas. Kalau nanti port atau kunci rahasia perlu diatur, pelajari cara pakai .env di Node.js.
Contoh 5: Menguji API dengan cURL
Tanpa menulis kode, kamu bisa menguji dari terminal:
bash
curl https://jsonplaceholder.typicode.com/posts/1
Cara ini cepat untuk mengecek apakah sebuah endpoint hidup. Tool seperti Postman atau Insomnia juga populer untuk hal yang sama dengan tampilan grafis.
Prinsip Utama REST
Sebuah API disebut RESTful jika mengikuti prinsip berikut:
- Client-server terpisah: frontend dan backend berkembang sendiri-sendiri.
- Stateless: setiap request membawa semua informasi yang dibutuhkan, server tidak mengingat request sebelumnya.
- Resource punya URL jelas: misalnya
/usersdan/users/5. - Representasi data seragam: umumnya JSON.
- Cacheable: response boleh disimpan untuk mempercepat akses.
Best Practice Merancang REST API
Kalau kamu mulai membuat API sendiri, terapkan kebiasaan ini:
- Pakai kata benda jamak untuk URL. Tulis
/produk, bukan/ambilSemuaProduk. - Biarkan method yang menentukan aksi. Jangan
/hapus-user, cukupDELETE /users/5. - Kirim kode status yang tepat. Jangan balas 200 untuk semua kondisi.
- Beri versi pada API, misalnya
/api/v1/users, agar perubahan tidak merusak aplikasi lama. - Amankan dengan autentikasi dan HTTPS. Jangan simpan token atau password di kode, gunakan environment variable.
Kesalahan Umum Pemula
- Menaruh kata kerja di URL, seperti
/getUsers. - Lupa mengatur header
Content-Typesaat mengirim JSON. - Tidak menangani error, sehingga aplikasi diam saja saat server gagal.
- Menganggap REST dan HTTP itu sama. HTTP adalah protokolnya, sedangkan REST adalah gaya perancangannya.
Belajar Lanjutan Setelah Paham REST API
Setelah memahami dasar-dasar ini, langkah belajar yang masuk akal berikutnya adalah mengelola kode dengan Git dan membungkus aplikasi dengan Docker agar mudah dijalankan di mana saja. Kalau API kamu sudah memakai database, jangan lewatkan pentingnya normalisasi database.
FAQ: REST API Adalah
Apa bedanya API dan REST API?
API adalah istilah umum untuk antarmuka komunikasi antar program. REST API adalah jenis API yang mengikuti aturan arsitektur REST dan memakai HTTP.
Apakah REST API harus pakai JSON?
Tidak wajib, tetapi JSON paling umum karena ringan dan mudah dibaca. Format lain seperti XML juga bisa dipakai.
Apa bedanya REST API dengan GraphQL?
REST memakai banyak endpoint dengan struktur tetap. GraphQL memakai satu endpoint dan client menentukan sendiri data apa yang diminta.
Bahasa pemrograman apa yang cocok untuk membuat REST API?
Hampir semua bisa, misalnya JavaScript (Node.js), Python, PHP, Java, dan Go. Pilih yang paling kamu kuasai.
Apakah pemula perlu belajar REST API?
Ya. Hampir semua aplikasi web dan mobile modern memakainya, jadi ini keterampilan dasar yang sangat berguna.
Kesimpulan
REST API adalah jembatan yang membuat aplikasi bisa saling bertukar data lewat HTTP dengan aturan yang jelas: URL untuk resource, method untuk aksi, dan kode status untuk hasil. Mulailah dengan mencoba GET ke API publik, lalu bangun API sederhana sendiri dengan Express.
Sudah mencoba contoh di atas? Ceritakan hasilnya di kolom komentar, dan bagikan artikel ini ke temanmu yang sedang belajar backend.