JSON-API's en REST-services: Complete ontwikkelingsgids
Leer hoe u op JSON gebaseerde REST-API's kunt bouwen en gebruiken. Behandelt HTTP-methoden, authenticatie, best practices en implementatievoorbeelden uit de praktijk.
Big JSON Team
• Technical WriterExpert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.
Basisprincipes van REST-API's
REST (Representational State Transfer) API's gebruiken JSON als het primaire gegevensformaat voor de 'body' van verzoeken (requests) en antwoorden (responses).
HTTP-methoden
- GET: Gegevens ophalen
- POST: Een nieuwe bron (resource) aanmaken
- PUT: Een volledige bron bijwerken
- PATCH: Een bron gedeeltelijk bijwerken
- DELETE: Een bron verwijderen
API's bouwen met Express.js
import express from 'express';
const app = express();
app.use(express.json());
let gebruikers = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' }
];
// GET alle gebruikers
app.get('/api/users', (req, res) => {
res.json(gebruikers);
});
// GET één gebruiker op ID
app.get('/api/users/:id', (req, res) => {
const gebruiker = gebruikers.find(u => u.id === parseInt(req.params.id));
if (!gebruiker) return res.status(404).json({ error: 'Niet gevonden' });
res.json(gebruiker);
});
// POST een gebruiker aanmaken
app.post('/api/users', (req, res) => {
const gebruiker = { id: gebruikers.length + 1, ...req.body };
gebruikers.push(gebruiker);
res.status(201).json(gebruiker);
});
app.listen(3000);
API's bouwen met Python FastAPI
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
app = FastAPI()
class Gebruiker(BaseModel):
name: str
email: str
gebruikers_db = []
@app.get("/api/users")
def get_users():
return gebruikers_db
@app.post("/api/users", status_code=201)
def create_user(gebruiker: Gebruiker):
gebruikers_db.append(gebruiker.dict())
return gebruiker
API's gebruiken (Consuming APIs)
JavaScript Fetch
// GET-verzoek
const response = await fetch('https://api.example.com/users');
const gebruikers = await response.json();
// POST-verzoek
const nieuweGebruiker = 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')
gebruikers = response.json()
# POST
nieuwe_gebruiker = requests.post(
'https://api.example.com/users',
json={'name': 'Alice', 'email': 'alice@example.com'}
)
API-antwoordpatronen
Succesvol antwoord
{
"success": true,
"data": {
"id": 1,
"name": "Alice"
}
}
Foutantwoord
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Ongeldige invoer",
"details": [
{
"field": "email",
"message": "Ongeldig e-mailformaat"
}
]
}
}
Authenticatie
Bearer Token
fetch('/api/protected', {
headers: {
'Authorization': 'Bearer jouw-token-hier'
}
});
Paginering
{
"data": [...],
"pagination": {
"page": 1,
"perPage": 20,
"total": 156,
"totalPages": 8
}
}
Best Practices
Belangrijke Statuscodes
- 200: OK (Succesvol)
- 201: Created (Aangemaakt)
- 400: Bad Request (Foutief verzoek)
- 401: Unauthorized (Niet geautoriseerd)
- 404: Not Found (Niet gevonden)
- 500: Internal Server Error (Serverfout)
Conclusie
REST-API's met JSON vormen de ruggengraat van moderne webapplicaties. Beheers HTTP-methoden, statuscodes en authenticatie om robuuste API's te bouwen!
Gerelateerde Artikelen
Wat is JSON? Complete Gids voor Beginners 2026
Leer wat JSON is, de syntaxis, datatypen en use cases. Een uitgebreide, beginnersvriendelijke gids voor het begrijpen van JavaScript Object Notation.
JavaScript JSON: Parse, Stringify en Best Practices
Complete gids voor JSON in JavaScript. Leer meer over JSON.parse(), JSON.stringify(), foutafhandeling en geavanceerde technieken voor webontwikkeling.
Python en JSON: Complete gids voor de json-module
Beheers JSON in Python met de ingebouwde json-module. Leer hoe u JSON-gegevens kunt parsen, genereren en manipuleren met praktische voorbeelden en best practices.