Lewati ke konten
Kembali ke Blog

Cara Membuat REST API dengan Express.js

Β· Β· 3 menit baca

Express.js adalah minimal Node.js framework yang populer untuk building REST APIs. Mari pelajari cara membuatnya.

Setup Project

Initialize Project

# Create directory
mkdir my-api && cd my-api

npm init -y

Install Express

npm install express

Basic Server

// index.js
const express = require("express");
const app = express();
const PORT = 3000;

// Middleware app.use(express.json());

app.get("/", (req, res) => { res.json({ message: "Welcome to API" }); });

app.listen(PORT, () => { console.log( Server running on port ${PORT}); });

CRUD Operations

GET – Read Data

// Get all items
app.get("/api/users", (req, res) => {
  res.json(users);
});

// Get single item app.get("/api/users/:id", (req, res) => { const user = users.find((u) => u.id === parseInt(req.params.id)); if (!user) return res.status(404).json({ error: "User not found" }); res.json(user); });

POST – Create Data

app.post("/api/users", (req, res) => {
  const { name, email } = req.body;

if (!name || !email) { return res.status(400).json({ error: "Name and email required" }); }

const newUser = { id: users.length + 1, name, email, };

users.push(newUser); res.status(201).json(newUser); });

PUT – Update Data

app.put("/api/users/:id", (req, res) => {
  const user = users.find((u) => u.id === parseInt(req.params.id));
  if (!user) return res.status(404).json({ error: "User not found" });

const { name, email } = req.body; user.name = name || user.name; user.email = email || user.email;

res.json(user); });

DELETE – Remove Data

app.delete("/api/users/:id", (req, res) => {
  const index = users.findIndex((u) => u.id === parseInt(req.params.id));
  if (index === -1) return res.status(404).json({ error: "User not found" });

users.splice(index, 1); res.status(204).send(); });

Middleware

Custom Middleware

// Logger middleware
const logger = (req, res, next) => {
  console.log(`${req.method} ${req.url} - ${new Date().toISOString()}`);
  next();
};

app.use(logger);

Error Handling

// Error handler middleware
app.use((err, req, res, next) => {
  console.error(err.stack);
  res.status(500).json({ error: "Something went wrong!" });
});

Router Organization

Separate Routes

// routes/users.js
const express = require("express");
const router = express.Router();

router.get("/", getAllUsers); router.get("/:id", getUserById); router.post("/", createUser); router.put("/:id", updateUser); router.delete("/:id", deleteUser);

module.exports = router;

Use Router

// index.js
const userRoutes = require("./routes/users");
app.use("/api/users", userRoutes);

CORS Setup

Enable CORS

npm install cors
const cors = require("cors");
app.use(cors());

Environment Variables

Using dotenv

npm install dotenv
require("dotenv").config();
const PORT = process.env.PORT || 3000;

Kesimpulan

Express.js menyediakan foundation yang solid untuk building REST APIs dengan minimal boilerplate dan maximum flexibility.

Ditulis oleh

Hendra Wijaya

Hanya hamba Allah Ta'ala yang berusaha berbuat baik..

Tinggalkan Komentar

Email tidak akan ditampilkan.