Apa Itu REST API?
REST (Representational State Transfer) API adalah arsitektur untuk komunikasi antar aplikasi melalui HTTP. REST API menggunakan HTTP methods (GET, POST, PUT, DELETE) untuk operasi CRUD pada resources. REST API adalah standar industri untuk web services dan digunakan oleh hampir semua aplikasi modern.
Mengapa REST API Penting?
- Standard – Standar industri untuk web services
- Stateless – Setiap request independen
- Scalable – Mudah di-scale horizontal
- Platform Independent – Bisa diakses dari berbagai platform
- Cacheable – Response bisa di-cache
- Simple – Menggunakan HTTP standar
HTTP Methods
| Method | Deskripsi | Contoh |
|---|---|---|
| GET | Mengambil data | GET /api/users |
| POST | Membuat data baru | POST /api/users |
| PUT | Update seluruh data | PUT /api/users/1 |
| PATCH | Update sebagian data | PATCH /api/users/1 |
| DELETE | Menghapus data | DELETE /api/users/1 |
HTTP Status Codes
| Code | Deskripsi |
|---|---|
| 200 OK | Request berhasil |
| 201 Created | Resource berhasil dibuat |
| 204 No Content | Berhasil, tidak ada content |
| 400 Bad Request | Request tidak valid |
| 401 Unauthorized | Tidak terautentikasi |
| 403 Forbidden | Tidak memiliki akses |
| 404 Not Found | Resource tidak ditemukan |
| 422 Unprocessable Entity | Validasi gagal |
| 500 Internal Server Error | Error di server |
Roadmap Belajar REST API
Level 1: Beginner
- HTTP Basics – Methods, status codes, headers
- JSON – Format data, parse, stringify
- REST Principles – Stateless, resource-based, uniform interface
- API Design – Naming conventions, versioning, pagination
- Testing API – Postman, Insomnia, curl
Level 2: Intermediate
- Authentication – JWT, OAuth 2.0, API keys, Bearer token
- Authorization – Role-based, permission-based
- Validation – Input validation, error responses
- Rate Limiting – Throttling, quota
- Caching – ETag, Cache-Control, Redis
Level 3: Advanced
- API Documentation – Swagger/OpenAPI, Postman collections
- Versioning – URL versioning, header versioning
- Webhooks – Event-driven notifications
- GraphQL – Alternative to REST
- gRPC – High-performance RPC
Level 4: Expert
- API Gateway – Kong, AWS API Gateway
- Microservices – Service mesh, discovery
- Security – OWASP API Security Top 10
- Performance – CDN, compression, connection pooling
Contoh REST API dengan Express.js
const express = require('express');
const app = express();
app.use(express.json());
// GET all users
app.get('/api/users', (req, res) => {
const page = parseInt(req.query.page) || 1;
const limit = parseInt(req.query.limit) || 10;
res.json({
data: users.slice((page-1)*limit, page*limit),
meta: { page, limit, total: users.length }
});
});
// GET single user
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 user
app.post('/api/users', (req, res) => {
const { nama, email } = req.body;
if (!nama || !email) {
return res.status(400).json({ error: 'Nama dan email wajib diisi' });
}
const newUser = { id: users.length + 1, nama, email };
users.push(newUser);
res.status(201).json(newUser);
});
// PUT update user
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' });
Object.assign(user, req.body);
res.json(user);
});
// DELETE user
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();
});
app.listen(3000, () => console.log('API running on port 3000'));
Tips Belajar REST API
- Pelajari HTTP – Methods, status codes, headers
- Gunakan Postman – Untuk testing API
- Ikuti naming convention – Plural nouns, kebab-case
- Versioning – /api/v1/users
- Dokumentasikan API – Swagger/OpenAPI
- Pelajari authentication – JWT, OAuth
- Bangun project nyata – Blog API, e-commerce API
Tools yang Dibutuhkan
| Tool | Deskripsi |
|---|---|
| Postman / Insomnia | API testing |
| Swagger / OpenAPI | API documentation |
| Express.js / Laravel / Django | Backend framework |
| JWT library | Authentication |
| Git | Version control |
Kesimpulan
REST API adalah skill fundamental untuk web developer modern. Dengan memahami HTTP methods, status codes, authentication, dan best practices, Anda bisa membangun API yang robust dan scalable.
“APIs are the glue of the modern web.” – Web Development Community




