REST API Adalah: Pengertian, Cara Kerja & 5 Contoh Penggunaan

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:

  1. Client (browser, aplikasi mobile, atau program lain) mengirim request ke sebuah URL.
  2. Server menerima, memproses, lalu mengambil atau mengubah data di database.
  3. 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:

MethodFungsiContoh
GETMengambil dataAmbil daftar artikel
POSTMembuat data baruMendaftarkan user baru
PUTMengganti data secara utuhMemperbarui seluruh profil
PATCHMengubah sebagian dataMengganti email saja
DELETEMenghapus dataMenghapus 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 /users dan /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:

  1. Pakai kata benda jamak untuk URL. Tulis /produk, bukan /ambilSemuaProduk.
  2. Biarkan method yang menentukan aksi. Jangan /hapus-user, cukup DELETE /users/5.
  3. Kirim kode status yang tepat. Jangan balas 200 untuk semua kondisi.
  4. Beri versi pada API, misalnya /api/v1/users, agar perubahan tidak merusak aplikasi lama.
  5. 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-Type saat 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.

Leave a Reply

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