REST API itu backbone dari hampir semua aplikasi modern. Di tutorial ini aku bakal jelasin cara bikin dari nol.
Setup Project
mkdir my-api && cd my-api
npm init -y
npm install express dotenv cors helmet morgan
Basic Server
const express = require('express');
const app = express();
const PORT = process.env.PORT || 3000;
app.use(express.json());
app.get('/', (req, res) => {
res.json({ message: 'API is running!' });
});
app.listen(PORT, () => {
console.log(`Server running on port ${PORT}`);
});
CRUD Operations
// GET all
app.get('/api/users', (req, res) => {
res.json(users);
});
// GET single
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: 'Not found' });
res.json(user);
});
// POST create
app.post('/api/users', (req, res) => {
const newUser = { id: nextId++, ...req.body };
users.push(newUser);
res.status(201).json(newUser);
});
// PUT update
app.put('/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: 'Not found' });
users[index] = { ...users[index], ...req.body };
res.json(users[index]);
});
// DELETE
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: 'Not found' });
users.splice(index, 1);
res.status(204).send();
});
Best Practices
- Versioning -
/api/v1/users - Pagination -
?page=1&limit=10 - Error handling
- Input validation
- Rate limiting
Conclusion
Dalam 1 jam, kamu udah punya REST API yang functional.
Butuh bantuan? DM di Telegram!