REST API Adalah: Pengertian, Cara Kerja, dan 6 Prinsip Dasarnya (2026)

Pernah menggunakan aplikasi cuaca, login lewat akun Google, atau melihat peta di aplikasi ojek online? Di balik semua itu ada satu hal yang bekerja diam-diam: API. Dan jenis API yang paling banyak dipakai di web saat ini adalah REST. Kalau kamu sedang belajar web development, memahami REST API adalah kemampuan wajib yang akan terus kamu pakai, entah sebagai frontend, backend, maupun fullstack developer.

Di artikel ini, kamu akan belajar apa itu REST API, bagaimana cara kerjanya, enam prinsip dasarnya, method HTTP dan status code yang harus kamu hafal, sampai membuat REST API sederhana dengan Node.js dan Express. Semua dijelaskan dengan bahasa yang mudah untuk pemula.

Daftar Isi

  1. Apa Itu REST API?
  2. Cara Kerja REST API
  3. 6 Prinsip Dasar REST
  4. Method HTTP dalam REST API
  5. Status Code yang Perlu Kamu Tahu
  6. Contoh Request dan Response REST API
  7. Membuat REST API Sederhana dengan Node.js dan Express
  8. REST API vs SOAP vs GraphQL
  9. Best Practice Merancang REST API
  10. Kesalahan Umum Pemula
  11. FAQ
  12. Kesimpulan

Apa Itu REST API?

REST API adalah antarmuka yang memungkinkan dua aplikasi saling bertukar data melalui protokol HTTP dengan mengikuti aturan arsitektur REST. Singkatan REST berasal dari Representational State Transfer, sebuah gaya arsitektur yang diperkenalkan oleh Roy Fielding dalam disertasi doktoralnya pada tahun 2000. Sementara API adalah singkatan dari Application Programming Interface.

Analogi sederhananya seperti restoran. Kamu (client) tidak masuk ke dapur untuk mengambil makanan sendiri. Kamu memesan lewat pelayan (API), pelayan menyampaikan ke dapur (server), lalu membawa pesanan kembali ke mejamu. REST API adalah “aturan main” antara pelayan dan pelanggan agar pesanan tidak salah.

Beberapa hal yang membuat REST API populer:

  • Sederhana. Memanfaatkan HTTP yang sudah dipahami semua developer web.
  • Fleksibel. Bisa dipakai oleh aplikasi web, mobile, maupun layanan lain.
  • Skalabel. Karena bersifat stateless, server mudah diperbanyak saat traffic naik.
  • Bahasa bebas. Backend bisa ditulis dengan JavaScript, Python, PHP, Go, atau lainnya.

Cara Kerja REST API

Pola kerja REST API selalu berbentuk request dan response:

  1. Client mengirim request ke sebuah URL (disebut endpoint), misalnya https://api.contoh.com/users.
  2. Server memproses request tersebut, mengambil atau mengubah data di database.
  3. Server mengirim response berisi data (biasanya berformat JSON) beserta status code.

Setiap request terdiri dari beberapa bagian penting:

BagianFungsiContoh
Endpoint (URL)Alamat resource yang diakses/users/5
MethodJenis aksi yang dimintaGET, POST
HeaderInformasi tambahanContent-Type: application/json
BodyData yang dikirim ke server{"name": "Budi"}

Dalam REST, segala sesuatu dianggap sebagai resource (sumber daya), misalnya user, produk, atau artikel. Setiap resource punya alamat unik, dan kita memanipulasinya dengan method HTTP.

6 Prinsip Dasar REST

Agar sebuah API layak disebut RESTful, ia sebaiknya mengikuti enam prinsip (constraint) berikut:

1. Client-Server

Tampilan (client) dan penyimpanan data (server) dipisahkan. Frontend dan backend bisa dikembangkan secara terpisah, bahkan oleh tim yang berbeda.

2. Stateless

Setiap request harus membawa semua informasi yang dibutuhkan. Server tidak menyimpan “ingatan” tentang request sebelumnya. Karena itu token autentikasi biasanya dikirim di setiap request.

3. Cacheable

Response harus menyatakan apakah ia boleh disimpan sementara (cache). Ini mempercepat aplikasi dan mengurangi beban server.

4. Uniform Interface

Cara berinteraksi dengan resource dibuat seragam: URL yang konsisten, method HTTP yang tepat, dan format data yang jelas. Inilah prinsip yang membuat REST API mudah dipelajari.

5. Layered System

Client tidak perlu tahu apakah ia berbicara langsung dengan server utama atau lewat perantara seperti load balancer, proxy, atau API gateway.

6. Code on Demand (Opsional)

Server boleh mengirim kode yang dijalankan di sisi client, misalnya JavaScript. Prinsip ini bersifat opsional dan jarang disorot dalam praktik sehari-hari.

Method HTTP dalam REST API

Method HTTP menentukan aksi apa yang ingin dilakukan terhadap sebuah resource. Dokumentasi lengkapnya bisa dibaca di MDN Web Docs tentang HTTP Methods.

MethodFungsiContoh EndpointIdempotent?
GETMengambil dataGET /usersYa
POSTMembuat data baruPOST /usersTidak
PUTMengganti data secara utuhPUT /users/5Ya
PATCHMengubah sebagian dataPATCH /users/5Tidak selalu
DELETEMenghapus dataDELETE /users/5Ya

Kolom idempotent artinya: jika request yang sama dikirim berkali-kali, hasil akhir di server tetap sama seperti dikirim sekali. Konsep ini penting sekali, terutama untuk menangani request ganda akibat koneksi putus. Pelajari lebih dalam di artikel kami tentang idempotency dalam programming.

Status Code yang Perlu Kamu Tahu

Setiap response membawa status code yang memberi tahu hasil request. Daftar lengkapnya ada di MDN: HTTP Status. Berikut yang paling sering kamu temui:

KodeArtiKapan Dipakai
200 OKBerhasilRequest GET atau PUT berhasil
201 CreatedData berhasil dibuatSetelah POST berhasil
204 No ContentBerhasil tanpa isiSetelah DELETE berhasil
400 Bad RequestRequest tidak validData yang dikirim salah format
401 UnauthorizedBelum terautentikasiToken tidak ada atau salah
403 ForbiddenTidak punya izinLogin benar, tapi akses ditolak
404 Not FoundResource tidak adaID tidak ditemukan
409 ConflictTerjadi konflik dataEmail sudah terdaftar
429 Too Many RequestsTerlalu banyak requestKena rate limit
500 Internal Server ErrorError di serverBug pada kode backend

Sebagai pegangan cepat: 2xx berarti sukses, 4xx berarti kesalahan di sisi client, 5xx berarti kesalahan di sisi server.

Contoh Request dan Response REST API

Kamu bisa langsung mencoba REST API tanpa membuat server sendiri. Layanan gratis JSONPlaceholder menyediakan API palsu untuk latihan.

Request dengan JavaScript (fetch)

const response = await fetch("https://jsonplaceholder.typicode.com/users/1");
const user = await response.json();
console.log(user.name);

Request dengan cURL

curl https://jsonplaceholder.typicode.com/users/1

Contoh Response (JSON)

{
  "id": 1,
  "name": "Leanne Graham",
  "username": "Bret",
  "email": "Sincere@april.biz"
}

Selain lewat kode, kamu bisa menguji endpoint secara visual menggunakan Postman, aplikasi yang sangat populer untuk eksperimen dan dokumentasi API.

Membuat REST API Sederhana dengan Node.js dan Express

Sekarang waktunya praktik. Kita akan membuat REST API untuk mengelola data user dengan Node.js dan Express. Data disimpan di memori agar fokus ke konsepnya.

Langkah 1: Siapkan Proyek

mkdir belajar-rest-api
cd belajar-rest-api
npm init -y
npm install express

Tambahkan "type": "module" di file package.json agar kita bisa memakai sintaks import.

Langkah 2: Tulis Kode Server

Buat file index.js:

import express from "express";

const app = express();
app.use(express.json());

let users = [{ id: 1, name: "Budi" }];
let nextId = 2;

// GET semua user
app.get("/api/users", (req, res) => {
  res.json(users);
});

// GET satu user
app.get("/api/users/:id", (req, res) => {
  const user = users.find((u) => u.id === Number(req.params.id));
  if (!user) {
    return res.status(404).json({ error: "User tidak ditemukan" });
  }
  res.json(user);
});

// POST user baru
app.post("/api/users", (req, res) => {
  const { name } = req.body;
  if (!name) {
    return res.status(400).json({ error: "Nama wajib diisi" });
  }
  const user = { id: nextId++, name };
  users.push(user);
  res.status(201).json(user);
});

// DELETE user
app.delete("/api/users/:id", (req, res) => {
  users = users.filter((u) => u.id !== Number(req.params.id));
  res.status(204).end();
});

app.listen(3000, () => {
  console.log("Server berjalan di http://localhost:3000");
});

Langkah 3: Jalankan dan Uji

node index.js

Buka endpoint http://localhost:3000/api/users di browser, lalu coba POST menggunakan Postman atau cURL:

curl -X POST http://localhost:3000/api/users \
  -H "Content-Type: application/json" \
  -d '{"name": "Siti"}'

Jika berhasil, server akan membalas status 201 Created beserta data user baru. Selamat, kamu baru saja membuat REST API pertamamu!

Untuk proyek sungguhan, jangan simpan konfigurasi sensitif seperti kunci API di dalam kode. Pelajari caranya di panduan environment variable dan .env di Node.js. Dan karena data tidak boleh hilang saat server restart, kamu perlu database yang dirancang rapi, mulai dari database normalization sampai database migration.

REST API vs SOAP vs GraphQL

REST bukan satu-satunya pilihan. Berikut perbandingan singkatnya:

AspekRESTSOAPGraphQL
Format dataUmumnya JSONXMLJSON
StrukturBanyak endpoint per resourceSatu endpoint, pesan XMLSatu endpoint, query fleksibel
Kemudahan belajarMudahLebih rumitSedang
Over/under-fetchingBisa terjadiBisa terjadiMinim, client memilih field
Cocok untukMayoritas aplikasi web dan mobileSistem enterprise lamaAplikasi dengan data kompleks

Untuk pemula, REST adalah titik awal terbaik karena dokumentasi, contoh, dan komunitasnya paling melimpah.

Best Practice Merancang REST API

Agar API-mu rapi dan mudah dipakai developer lain, terapkan kebiasaan berikut:

  1. Gunakan kata benda jamak untuk endpoint. Tulis /users, bukan /getUsers. Aksinya sudah diwakili method HTTP.
  2. Gunakan method dan status code yang tepat. Jangan membalas error dengan status 200.
  3. Beri versi pada API. Contoh: /api/v1/users agar perubahan di masa depan tidak merusak aplikasi lama.
  4. Sediakan pagination dan filter. Contoh: /users?page=2&limit=20.
  5. Amankan API. Gunakan HTTPS, autentikasi seperti token atau OAuth 2.0, dan batasi jumlah request (rate limiting).
  6. Validasi semua input. Jangan pernah percaya data dari client.
  7. Buat pesan error yang jelas. Sertakan penjelasan singkat agar mudah di-debug.
  8. Dokumentasikan dengan baik. Standar OpenAPI membantu membuat dokumentasi yang rapi dan bisa diuji.

Spesifikasi resmi semantik HTTP bisa kamu telusuri di RFC 9110 bila ingin mendalami.

Kesalahan Umum Pemula

  • Memakai POST untuk semuanya. Padahal tiap aksi punya method yang lebih tepat.
  • Tidak menangani error. Aplikasi langsung crash saat data kosong atau ID salah.
  • Menaruh kunci rahasia di repository publik. Selalu pakai environment variable, dan kelola riwayat kodenya dengan benar. Kalau belum paham, baca Git adalah: pengertian, cara kerja, dan 10 perintah dasar.
  • Tidak menyiapkan CORS. Frontend di domain lain akan gagal mengakses API.
  • Mengabaikan lingkungan yang konsisten. Agar API berjalan sama di laptop dan server, kenali Docker.

FAQ

Apa bedanya API dan REST API?

API adalah konsep umum untuk cara dua aplikasi berkomunikasi. REST API adalah salah satu jenis API yang bekerja di atas HTTP dan mengikuti prinsip arsitektur REST.

Apakah REST API harus memakai JSON?

Tidak harus. REST tidak menetapkan format data tertentu. Namun JSON menjadi pilihan paling populer karena ringan dan mudah dibaca, baik oleh manusia maupun mesin.

Apa itu RESTful API?

RESTful API adalah API yang benar-benar mengikuti prinsip-prinsip REST. Dalam percakapan sehari-hari, istilah REST API dan RESTful API sering dipakai bergantian.

Bahasa pemrograman apa yang cocok untuk membuat REST API?

Semua bahasa populer bisa: JavaScript (Node.js), Python (Flask, Django, FastAPI), PHP (Laravel), Java (Spring), Go, dan banyak lagi. Pilih yang paling kamu kuasai, atau lihat pilihan di kategori Bahasa Pemrograman.

Apa perbedaan PUT dan PATCH?

PUT mengganti seluruh resource dengan data baru, sedangkan PATCH hanya mengubah bagian tertentu. Gunakan PATCH ketika kamu hanya perlu memperbarui satu atau dua field.

Apakah REST API aman?

REST API bisa aman jika diterapkan dengan benar: gunakan HTTPS, autentikasi yang kuat, validasi input, dan rate limiting. Keamanan bergantung pada cara kita membangunnya, bukan pada REST itu sendiri.

Apakah belajar REST API penting untuk karier developer?

Sangat penting. Hampir semua lowongan web dan mobile developer menuntut kemampuan membuat atau memakai API. Baca juga tips di kategori Career Developer.

Kesimpulan

Secara ringkas, REST API adalah cara dua aplikasi berkomunikasi lewat HTTP menggunakan request dan response dengan aturan yang seragam. Kamu sudah mempelajari enam prinsipnya, method HTTP, status code, perbandingan dengan SOAP dan GraphQL, hingga cara membuat API sederhana dengan Node.js dan Express.

Langkah selanjutnya: modifikasi contoh di atas dengan menambahkan endpoint PUT, sambungkan ke database, lalu deploy menggunakan Docker. Jelajahi lebih banyak tutorial di kategori Web Development dan Programming Dasar di Ngoding Daily, dan tulis pertanyaanmu di kolom komentar.

Leave a Reply

Your email address will not be published. Required fields are marked *