REST API: CRUD dengan Express Router

Merancang REST API yang rapi: resource, metode HTTP, status code yang tepat, dan memecah route dengan Router.

Part 19 dari 24 ± 45 menit Gratis

Apa itu REST API?

REST adalah gaya merancang API web: segala sesuatu dipandang sebagai resource (benda) yang diidentifikasi oleh URL, dan dioperasikan dengan metode HTTP. Klien (aplikasi web, mobile) dan server bertukar data, umumnya berformat JSON.

CRUD ↔ metode HTTP

OperasiMetode & URLSuksesGagal umum
DaftarGET /api/tugas200 + array—
DetailGET /api/tugas/:id200 + objek404
BuatPOST /api/tugas201 + objek baru400
Ganti seluruhnyaPUT /api/tugas/:id200 + objek400, 404
Ubah sebagianPATCH /api/tugas/:id200 + objek404
HapusDELETE /api/tugas/:id204 (tanpa isi)404

Aturan desain URL

  • Pakai kata benda jamak, bukan kata kerja: /api/tugas, bukan /api/ambilSemuaTugas.
  • Hierarki untuk relasi: /api/pengguna/5/pesanan.
  • Filter, urutan, dan halaman lewat query string: /api/tugas?selesai=true&halaman=2.
  • Versi API: /api/v1/... agar perubahan di masa depan tidak merusak klien lama.
  • Respons konsisten: objek untuk satu data, array untuk banyak data, { "error": "..." } untuk kegagalan.

Express Router: memecah route

Alih-alih menumpuk semua route di satu berkas, express.Router() membuat "mini-aplikasi" yang bisa dipasang pada awalan path:

const express = require('express');
const router = express.Router();

router.get('/', (req, res) => { /* GET /api/tugas */ });
router.get('/:id', (req, res) => { /* GET /api/tugas/5 */ });
router.post('/', (req, res) => { /* POST /api/tugas */ });

const app = express();
app.use(express.json());
app.use('/api/tugas', router);     // semua route di atas diawali /api/tugas

Menemukan data berdasarkan id

function cari(req, res) {
  const t = data.find((x) => x.id === Number(req.params.id));
  if (!t) { res.status(404).json({ error: 'Tugas tidak ditemukan' }); return null; }
  return t;
}

PUT vs PATCH

  • PUT: klien mengirim representasi lengkap; menggantikan data lama.
  • PATCH: klien hanya mengirim bagian yang berubah.

Penyimpanan

Di latihan ini data disimpan di array dalam memori (hilang saat server restart). Aplikasi nyata memakai database (PostgreSQL, MongoDB, SQLite) — lapisan akses datanya diganti, sementara bentuk API tetap sama.

Menguji API

Alat: curl, Postman, Thunder Client (VS Code), atau tes otomatis. Contoh: curl -X POST localhost:3000/api/tugas -H "Content-Type: application/json" -d '{"judul":"Belajar Node"}'.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X