API JSON dan Layanan REST: Panduan Pengembangan Lengkap
Pelajari cara membangun dan mengonsumsi API REST berbasis JSON. Mencakup metode HTTP, autentikasi, praktik terbaik, dan contoh implementasi dunia nyata.
Big JSON Team
• Technical WriterExpert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.
Dasar-dasar API REST
API REST (Representational State Transfer) menggunakan JSON sebagai format data utama untuk body permintaan (request) dan tanggapan (response).
Metode HTTP
- GET: Mendapatkan data
- POST: Membuat sumber daya (resource) baru
- PUT: Memperbarui seluruh sumber daya
- PATCH: Pembaruan parsial
- DELETE: Menghapus sumber daya
Membangun API dengan Express.js
import express from 'express';
const app = express();
app.use(express.json());
let users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' }
];
// GET semua pengguna
app.get('/api/users', (req, res) => {
res.json(users);
});
// GET satu pengguna
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: 'Tidak ditemukan' });
res.json(user);
});
// POST buat pengguna
app.post('/api/users', (req, res) => {
const user = { id: users.length + 1, ...req.body };
users.push(user);
res.status(201).json(user);
});
app.listen(3000);
Membangun API dengan Python FastAPI
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
app = FastAPI()
class User(BaseModel):
name: str
email: str
users_db = []
@app.get("/api/users")
def get_users():
return users_db
@app.post("/api/users", status_code=201)
def create_user(user: User):
users_db.append(user.dict())
return user
@app.get("/api/users/{user_id}")
def get_user(user_id: int):
if user_id >= len(users_db):
raise HTTPException(status_code=404, detail="Tidak ditemukan")
return users_db[user_id]
Mengonsumsi API
JavaScript Fetch
// Permintaan GET
const response = await fetch('https://api.example.com/users');
const users = await response.json();
// Permintaan POST
const newUser = await fetch('https://api.example.com/users', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ name: 'Alice', email: 'alice@example.com' })
});
Python Requests
import requests
# GET
response = requests.get('https://api.example.com/users')
users = response.json()
# POST
new_user = requests.post(
'https://api.example.com/users',
json={'name': 'Alice', 'email': 'alice@example.com'}
)
Pola Respons API
Respons Berhasil (Success)
{
"success": true,
"data": {
"id": 1,
"name": "Alice"
}
}
Respons Kesalahan (Error)
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Input tidak valid",
"details": [
{
"field": "email",
"message": "Format email tidak valid"
}
]
}
}
Autentikasi
Token Bearer
fetch('/api/protected', {
headers: {
'Authorization': 'Bearer token-anda-di-sini'
}
});
API Key
fetch('/api/data', {
headers: {
'X-API-Key': 'api-key-anda'
}
});
Paginasi
{
"data": [...],
"pagination": {
"page": 1,
"perPage": 20,
"total": 156,
"totalPages": 8
}
}
Praktik Terbaik
Kode Status (Status Codes)
- 200: OK
- 201: Created
- 204: No Content
- 400: Bad Request
- 401: Unauthorized
- 404: Not Found
- 500: Internal Server Error
Kesimpulan
API REST dengan JSON adalah tulang punggung aplikasi web modern. Kuasai metode HTTP, kode status yang tepat, dan autentikasi untuk membangun API yang tangguh!
Artikel Terkait
Apa itu JSON? Panduan Lengkap untuk Pemula 2026
Pelajari apa itu JSON, sintaksisnya, tipe data, dan kegunaannya. Panduan lengkap dan ramah pemula untuk memahami JavaScript Object Notation.
JavaScript JSON: Parse, Stringify, dan Praktik Terbaik
Panduan lengkap JSON dalam JavaScript. Pelajari JSON.parse(), JSON.stringify(), penanganan kesalahan, dan teknik tingkat lanjut untuk pengembangan web.
Python dan JSON: Panduan Lengkap Modul json
Kuasai JSON di Python dengan modul json. Pelajari cara mengurai, menghasilkan, dan memanipulasi data JSON dengan contoh praktis dan praktik terbaik.