🔗 REST API

Level: Advanced

REST API (Representational State Transfer) adalah standar arsitektur untuk membangun layanan web yang mudah diakses dan digunakan. REST menggunakan protokol HTTP dengan metode standar seperti GET, POST, PUT, DELETE. Bayangkan REST API seperti pelayan restoran: kita (client) memesan makanan (request), dapur (server) menyiapkan, lalu pelayan mengantarkan (response).

📖 Konsep Utama REST API

🔹 Contoh REST API dengan Express

// app.js
const express = require("express");
const app = express();
app.use(express.json());

let users = [
  { id: 1, nama: "Doddy" },
  { id: 2, nama: "Budi" }
];

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

// POST user baru
app.post("/users", (req, res) => {
  const user = { id: users.length + 1, nama: req.body.nama };
  users.push(user);
  res.status(201).json(user);
});

// PUT update user
app.put("/users/:id", (req, res) => {
  const id = parseInt(req.params.id);
  const user = users.find(u => u.id === id);
  if (!user) return res.status(404).send("User tidak ditemukan");
  user.nama = req.body.nama;
  res.json(user);
});

// DELETE user
app.delete("/users/:id", (req, res) => {
  const id = parseInt(req.params.id);
  users = users.filter(u => u.id !== id);
  res.sendStatus(204);
});

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

🛠️ Praktik Kecil

Coba jalankan server Express di atas, lalu gunakan Postman atau curl untuk menguji endpoint:

🎮 Mini Challenge

Buat REST API sederhana untuk resource tasks dengan fitur:

Tugas tambahan: Tambahkan validasi agar field nama tidak boleh kosong, dan gunakan status code yang sesuai.