Aexis logo

REST API's eenvoudig begrijpen: van het web naar SQL- en JSON-data

Wat is een API? Waarvoor dienen REST, HTTP, CRUD, URL's, responsstatussen en JSON? Deze stapsgewijze gids legt de basis helder uit, eerst voor niet-technische profielen, daarna met concrete voorbeelden rond SQL en moderne data-uitwisseling.

Stephane Malho
Stephane Malho

Lead Frontend Architect - Next.js & TypeScript. Expert in het ontwikkelen van performante en schaalbare webapplicaties, met een sterke focus op UX en codekwaliteit.

10 minuten leestijd

Het woord API komt overal terug: webapplicaties, bedrijfssoftware, ERP, CRM, cloudtools, automatisering, artificiele intelligentie en data-integratie. Toch blijft het concept voor veel mensen vaag. Een API lijkt technisch, abstract en voorbehouden aan ontwikkelaars. In werkelijkheid kan je het heel eenvoudig begrijpen. Een API is in de eerste plaats een gestandaardiseerd toegangspunt waarmee het ene systeem informatie kan opvragen of doorgeven aan het andere. Concreet kan een onderneming bepaalde data of diensten op een gecontroleerde manier beschikbaar maken, zodat andere applicaties of geautoriseerde gebruikers er toegang toe krijgen voor een welbepaalde behoefte. In dit artikel vertrekken we vanuit een brede en toegankelijke visie en bouwen we stap voor stap op naar een meer technische lezing door API's te koppelen aan SQL-query's, JSON-responses en de verschillen tussen relationele en documentgerichte modellen.

Didactische illustratie van een REST API die applicatie, SQL en JSON verbindt
Didactische illustratie van een REST API die applicatie, SQL en JSON verbindt

Interactieve demo

De API testen en de JSON bekijken

Open een aparte subpagina om meerdere API-responses te verkennen, op een businesswaarde te klikken en exact te zien waar die in een groter JSON-object zit.

Open de API-playground

Een API uitgelegd zonder jargon

Een API kan worden gezien als een georganiseerde tussenlaag tussen twee systemen. In plaats van rechtstreeks in een database of in de code van een applicatie te lezen, stuurt een systeem een aanvraag naar een interface die daarvoor voorzien is en ontvangt het een antwoord in een afgesproken formaat.

In het dagelijkse leven kan je een API vergelijken met een bankloket. Je gaat naar je bank omdat je informatie nodig hebt over je rekening: je saldo, een recente verrichting of een rekeninguittreksel. De bank beschikt al over die informatie in haar systeem. Jij kan als klant niet rechtstreeks in de interne databanken van de bank gaan kijken. Daarom passeer je via een loket. Dat loket ontvangt je aanvraag, controleert of je gemachtigd bent om die informatie te krijgen en geeft je vervolgens een duidelijk en bruikbaar antwoord terug.

In die analogie stelt de bank het systeem voor dat de data bezit, het loket is het toegangspunt en de loketbediende speelt de rol van tussenpersoon tussen jouw aanvraag en de opgeslagen informatie. Bij een API werkt het op dezelfde manier: een applicatie krijgt niet rechtstreeks toegang tot de tabellen, bestanden of interne verwerkingen van een systeem. Ze stuurt een aanvraag naar een specifiek adres, een URL, die je kan zien als het adres van het juiste loket. Als de bank meerdere loketten heeft afhankelijk van de behoefte, moet je naar het loket gaan dat de juiste informatie geeft. Op dezelfde manier komt elke API-URL overeen met een precies toegangspunt. De API ontvangt vervolgens de aanvraag, controleert de toegangsregels, bevraagt de juiste data en stuurt een gestructureerd antwoord terug, vaak in JSON.

Een belangrijk punt moet wel worden verduidelijkt: een zichtbaar toegangspunt betekent niet dat iedereen om het even welke informatie kan raadplegen. Op dezelfde manier stelt een publieke API niet noodzakelijk publieke data bloot. Ze kan toegankelijk zijn voor externe partijen en tegelijk beschermd blijven door authenticatie, autorisatie en toegangscontrole.

Zonder toegangscontrole zou een blootgesteld toegangspunt uiteraard problematisch zijn. In het geval van een bank zou dat betekenen dat eender wie de historiek van een rekening kan opvragen zonder identiteitscontrole. In softwarearchitectuur is dat precies de reden waarom een degelijke API de toegang tot data omkadert met duidelijke beveiligingsregels.

De parallel tussen een bank en een API

Deze analogie helpt om elk technisch element te koppelen aan een eenvoudig en concreet beeld.

In het bankvoorbeeldIn de wereld van API's
De bankHet informatiesysteem of de databron
Rekeningen en verrichtingenBedrijfsdata
De klantDe gebruiker of applicatie die de aanvraag doet
Het loketHet toegangspunt tot de data
Het loketadresDe API-URL
De loketbediendeDe logica die de aanvraag ontvangt en het antwoord terugstuurt
IdentiteitscontroleAuthenticatie
Het recht om bepaalde informatie te raadplegenAutorisatie
Het document dat aan de klant wordt gegevenHet API-antwoord, vaak in JSON

Waarom API's onmisbaar zijn geworden

Moderne systemen leven bijna nooit op zichzelf. Een website moet producten ophalen, een klantenportaal moet facturen tonen, een audittool moet financiele data lezen, een CRM moet met een ERP communiceren en een mobiele applicatie moet informatie synchroniseren met een externe server.

Zonder API's zou elk systeem rechtstreeks toegang moeten krijgen tot de interne data van andere systemen, wat fragiel, riskant en moeilijk te onderhouden zou zijn. De API maakt het mogelijk om te controleren wat wordt blootgesteld, in welk formaat, met welke beveiligingsregels en voor welke toepassingen.

Met andere woorden: een API vermijdt dat je iedereen de sleutels van het huis geeft. Ze opent alleen de juiste deur, op het juiste moment, volgens gekende regels. In een bedrijfscontext laat dat bijvoorbeeld een ERP, een rapporteringsportaal of een platform zoals IBM Planning Analytics toe om nuttige data op te halen zonder de volledige onderliggende technische structuur rechtstreeks bloot te leggen. De gebruiker ziet duidelijke informatie in de interface, terwijl de API de juiste data op de juiste plaats gaat ophalen.

Eenvoudige visie: database, applicatie en API

Deze tabel helpt de rollen te onderscheiden zonder meteen in technische details te duiken.

ElementHoofdrolEenvoudige vraag om te stellen
DatabaseInformatie opslaanWaar leeft de data?
ApplicatieGebruik tonen, verwerken en orchestrerenWat wil de gebruiker doen?
APIGecontroleerde uitwisseling tussen systemen mogelijk makenHoe kan informatie correct worden opgevraagd of verstuurd?

Wat is een REST- of RESTful-API

Wanneer we vandaag over web-API's spreken, hebben we het heel vaak over REST-API's. Dat betekent meestal dat een applicatie resources via URL's beschikbaar maakt en dat we ermee interageren via de standaardmechanismen van het web, in het bijzonder HTTP.

Eenvoudig gezegd organiseert een REST-API uitwisselingen rond identificeerbare resources, zoals klanten, bestellingen, facturen of producten. Elke resource heeft een adres en een expliciete methode geeft aan welke actie gewenst is.

In de praktijk zeggen veel teams REST, ook wanneer hun API niet strikt RESTful is in academische zin. Dat is geen probleem om te leren. Om te beginnen volstaat het te onthouden dat een REST-API een web-API is die gestructureerd is rond resources, duidelijke URL's en standaardmethodes.

Een API-URL begrijpen

De URL is het adres waarnaar een aanvraag wordt gestuurd. Die bevat vaak meerdere delen: het protocol, het domein, een pad en soms parameters.

Als we de vergelijking met het bankloket opnieuw nemen: de URL is niet de loketbediende, maar het adres van het juiste loket. Ze geeft aan naar welke dienst de aanvraag moet worden gestuurd.

Neem een eenvoudig voorbeeld: https://api.example.com/customers/42?include=orders

- Het protocol is https.

- Het domein is api.example.com.

- Het pad /customers/42 verwijst hier naar een specifieke resource, bijvoorbeeld klant nummer 42.

- De parameter include=orders geeft aan dat je het antwoord eventueel wilt verrijken met de bestellingen van die klant.

Een goede URL moet leesbaar, stabiel en resourcegericht zijn. Je vraagt een identificeerbare resource op. Je schrijft geen vage zin. De URL is er niet om een verhaal te vertellen, maar om naar een precieze informatie of actie te verwijzen.

Een API-URL ontleden

OnderdeelVoorbeeldRol
ProtocolhttpsGeeft de communicatiemodus aan
Domeinapi.example.comGeeft de doelserver aan
Pad/customers/42Identificeert de resource
Query params?include=ordersVerfijnen de aanvraag
Optionele versie/v1/Helpt de evolutie van de API beheren

De belangrijkste HTTP-methodes om te kennen

Een REST-API steunt doorgaans op HTTP-methodes om de intentie van de aanvraag uit te drukken. Dat is fundamenteel. De URL zegt wat je viseert. De methode zegt wat je wilt doen.

GET dient om te lezen. POST dient om te creeren. PUT dient vaak om een bestaande resource volledig te vervangen. PATCH dient om een resource gedeeltelijk te wijzigen. DELETE dient om te verwijderen. Er bestaan nog andere methodes, maar deze dekken de essentie voor de meeste bedrijfscontexten.

Wanneer je API's leert kennen, moet je deze woorden niet meer zien als gratis technisch vocabularium. Het zijn gewoon gestandaardiseerde werkwoorden om resources via het web te manipuleren.

HTTP-methodes en CRUD-logica

De link met CRUD is erg nuttig voor mensen die al vertrouwd zijn met data-operaties.

HTTP-methodeCRUDVoorbeeld van intentie
GETReadEen factuur of een klantenlijst lezen
POSTCreateEen nieuwe bestelling aanmaken
PUTUpdateEen klantfiche volledig vervangen
PATCHUpdateAlleen het adres van een klant wijzigen
DELETEDeleteEen resource verwijderen

Een API-aanvraag lezen als een zin

Een goede manier om API's aan niet-technische profielen uit te leggen is elke call te lezen als een gestructureerde zin.

Bijvoorbeeld: GET /invoices/125 betekent: ik wil factuur nummer 125 lezen. POST /customers betekent: ik wil een nieuwe klant aanmaken. PATCH /customers/42 betekent: ik wil een deel van de informatie van klant 42 wijzigen.

Die lezing is eenvoudig, gezond en pedagogisch. Ze helpt om te tonen dat een API niets mysterieus heeft. Ze drukt gewoon een intentie uit op een resource via een gedeelde conventie.

Hoe een API-response eruitziet

Een API-response bevat doorgaans meerdere elementen: een statuscode, soms technische headers en heel vaak een gestructureerde inhoud die body wordt genoemd.

Die body is vaak in JSON. JSON is het dominante formaat geworden voor web-API-uitwisselingen omdat het zowel leesbaar is voor mensen als gemakkelijk te interpreteren voor applicaties.

Een antwoord kan een enkel object teruggeven, een lijst van objecten, een foutmelding, paginatiemetadata of een succesindicator.

Veelvoorkomende responsepatronen

Type responseVoorbeeldWanneer gebruiken
Enkel object{ id: 42, name: 'Alice' }Wanneer je een specifieke resource leest
Lijst[{...}, {...}]Wanneer je een collectie leest
Object met paginatie{ data: [...], page: 1, total: 120 }Wanneer de lijst lang kan zijn
Succesbericht{ success: true }Wanneer je een eenvoudige bewerking bevestigt
Gestructureerde fout{ error: 'Unauthorized' }Wanneer de aanvraag niet kan slagen

Responsstatussen begrijpen zonder ontwikkelaar te zijn

HTTP-statuscodes geven snel aan of een aanvraag geslaagd is of niet. Ze zijn erg handig om het resultaat van een uitwisseling te lezen zonder alles in detail te moeten inspecteren.

Een code 200 betekent doorgaans dat het lezen geslaagd is. Een 201 betekent dat een creatie is uitgevoerd. Een 400 wijst vaak op een ongeldige aanvraag. Een 401 betekent dat de gebruiker niet geauthenticeerd is. Een 403 betekent dat hij geen rechten heeft. Een 404 geeft aan dat de resource niet gevonden is. Een 500 duidt op een fout aan serverzijde.

Voor een business-, audit- of dataprofiel kunnen deze codes worden gezien als diagnostische signalen. Ze helpen bepalen of het probleem komt van de aanvraag, de rechten, de resource zelf of het doelsysteem.

De HTTP-codes die je eerst moet onthouden

200 OK

De aanvraag is geslaagd en het antwoord bevat doorgaans de verwachte data.

201 Created

Een nieuwe resource werd succesvol aangemaakt.

400 Bad Request

De aanvraag is fout opgebouwd of onvolledig.

401 / 403

Het probleem ligt bij authenticatie of toegangsrechten.

404 Not Found

De geviseerde resource bestaat niet of is op dat adres niet bereikbaar.

500 Internal Server Error

Er is een fout opgetreden aan de serverzijde.

Publieke API en private API: wat is het verschil

In onze bankanalogie moeten we een veelvoorkomende verwarring vermijden: een loket dat van buitenaf zichtbaar is, betekent niet dat iedereen om het even welke informatie kan krijgen. Het kan publiek toegankelijk zijn en tegelijk identiteitscontrole vereisen en strikt bepalen wat toegankelijk is.

Op dezelfde manier stelt een publieke API niet noodzakelijk publieke data bloot. Ze verwijst vooral naar een API die toegankelijk is voor partijen buiten het systeem, zoals partners, klanten of externe ontwikkelaars. Die API kan tegelijk sterk beschermd zijn door authenticatie, autorisatie, quota en toegangscontrole.

Omgekeerd is een private API doorgaans voorbehouden voor interne uitwisselingen tussen applicaties binnen dezelfde organisatie. Technisch kan ze sterk lijken op een publieke API, maar de blootstelling, governance en gebruikscontext verschillen.

Dat onderscheid is belangrijk voor architectuur, beveiliging en audit. Een API is niet alleen een formaat om data uit te wisselen. Het is ook een blootstellingsoppervlak dat strikt bestuurd moet worden.

Publieke API vs private API

CriteriaPublieke APIPrivate API
DoelgebruikersPartners, klanten, externe ontwikkelaarsInterne applicaties en teams
DocumentatieVaak formeler en stabielerSoms lichter of intern
BeveiligingSterk omkaderd omdat ze breder blootgesteld isOok omkaderd, maar binnen een interne perimeter
EvolutieMoet brekende wijzigingen beperken voor externe consumersKan sneller evolueren als het ecosysteem beheerst is

Hoe een applicatie een API consumeert

Een API consumeren betekent een aanvraag versturen en het antwoord vervolgens gebruiken. Dat kan via een webapplicatie, een mobiele app, een automatiseringsscript, een ETL, een BI-tool of een technische connector.

In een front-endapplicatie sturen we vaak een HTTP-aanvraag en zetten we daarna de JSON-response om om ze te tonen in een tabel, een klantfiche, een dashboard of een formulier.

Het fundamentele punt is het volgende: een API consumeren betekent niet alleen een URL oproepen. Het betekent een volledige conversatie beheren met een extern systeem: successen, fouten, laadstatussen, ontbrekende data, rechten, formaten en mogelijke schemaverschillen.

Vanuit het standpunt van een auditor: de natuurlijke parallel met SQL

Voor profielen die vertrouwd zijn met SQL wordt een API vaak veel duidelijker zodra je een directe vergelijking maakt met een leesquery op een tabel.

In SQL bevraag je rechtstreeks een relationele structuur. Bij een API vraag je een interface om een gecontroleerde weergave van de data bloot te leggen. Businesslogica, toegangsregels, transformaties en het teruggegeven formaat kunnen door de API worden gedragen.

Met andere woorden: SQL spreekt rechtstreeks met de datamotor. De API spreekt met een servicelaag die daarna een of meerdere databanken kan bevragen, data kan herformatteren en beveiligingsregels kan toepassen.

Dezelfde behoefte, twee benaderingen: SQL en API

BehoefteSQL-aanpakAPI-aanpak
Een specifieke klant lezenSELECT * FROM customers WHERE id = 42;GET /customers/42
Betaalde facturen oplijstenSELECT * FROM invoices WHERE status = 'paid';GET /invoices?status=paid
Een klant aanmakenINSERT INTO customers (...) VALUES (...);POST /customers
Een adres bijwerkenUPDATE customers SET city = 'Paris' WHERE id = 42;PATCH /customers/42
Een resource verwijderenDELETE FROM customers WHERE id = 42;DELETE /customers/42

Wat een API toevoegt tegenover rechtstreekse SQL-toegang

De SQL-parallel is nuttig, maar we mogen de twee niet door elkaar halen. Een API is niet zomaar een andere syntaxis om SQL te schrijven.

Een API kan de echte databasestructuur verbergen, meerdere bronnen samenbrengen, bepaalde velden beperken, namen herformatteren, het antwoord verrijken, toegangen loggen en businessvalidaties afdwingen.

In veel organisaties is het precies die rol die API's onmisbaar maakt: ze creeren een contractuele laag tussen consumers en interne data.

Waarom JSON zo vaak voorkomt in API's

JSON heeft zich doorgezet omdat het eenvoudig leesbaar is, licht is om te versturen en erg natuurlijk is voor het voorstellen van objecten, lijsten en geneste structuren.

Waar SQL vaak een tabelvormige logica teruggeeft met rijen en kolommen, maakt JSON het mogelijk om volledige businessobjecten directer voor te stellen, eventueel met onderliggende subobjecten of gekoppelde lijsten.

Een klant kan bijvoorbeeld worden teruggestuurd met adres, voorkeuren en recente bestellingen in een enkel gestructureerd antwoord. Die mogelijkheid om hierarchische structuren voor te stellen is bijzonder nuttig voor moderne webapplicaties.

Tabellezing vs JSON-lezing

AspectRelationele SQLAPI-JSON
Natuurlijke vormTabel met rijen en kolommenObject met eigenschappen en arrays
RelatiesBeheerd via sleutels en joinsVaak voorgesteld via nesting of links
Structurele flexibiliteitSchema is doorgaans stijverStructuur is vaak flexibeler
GebruikRelationele opslag en queryingData-uitwisseling tussen systemen

SQL, NoSQL en JSON: wat je niet mag verwarren

JSON is niet hetzelfde als NoSQL. Dat is een erg frequente verwarring. JSON is in de eerste plaats een formaat om data voor te stellen of uit te wisselen.

Een API kan perfect JSON teruggeven terwijl de data opgeslagen zijn in een relationele SQL-database. Omgekeerd kan een documentgerichte NoSQL-database structuren opslaan die op JSON lijken, maar dat hoort bij het opslagmodel en niet alleen bij het antwoordformaat.

We moeten dus drie dingen onderscheiden: hoe data worden opgeslagen, hoe data worden bevraagd en in welk formaat data worden uitgewisseld.

De drie niveaus die je niet mag verwarren

SQL

Een taal om relationele databanken te bevragen en te manipuleren.

JSON

Een formaat om data voor te stellen en uit te wisselen.

NoSQL

Een familie van niet-relationele opslagmodellen, vaak flexibeler afhankelijk van de use case.

Concreet voorbeeld: van een SQL-tabel naar een JSON-response

Stel je een customers-tabel en een orders-tabel voor. In SQL zouden we meerdere query's of een join kunnen gebruiken om het beeld van een klant met zijn bestellingen op te bouwen.

Bij een API is het gebruikelijk om een antwoord te krijgen dat directer bruikbaar is voor de applicatie, in de vorm van een verrijkt businessobject.

Dat verschil verklaart waarom front-end-, mobiele en integratieteams vaak graag werken met goed ontworpen API's: ze stellen data beschikbaar in een vorm die al dicht bij de concrete gebruiksbehoefte ligt.

Wat een goede API moet uitstralen

Een goede API moet duidelijkheid uitstralen. URL's moeten begrijpelijk zijn. Methodes moeten consistent zijn. Antwoorden moeten gestructureerd zijn. Fouten moeten leesbaar zijn. Beveiligingsregels moeten expliciet zijn.

Een slechte API daarentegen mengt conventies, toont inconsistente namen, geeft ondoorzichtige fouten terug, wijzigt haar schema te vaak of dwingt consumers om te raden wat ze moeten versturen.

Voor een onderneming is de kwaliteit van een API geen technische luxe. Ze is een directe factor voor onderhoudbaarheid, integratie, betrouwbaarheid en gedeeld begrip tussen teams.

Hoe je API's leert zonder te verdwalen

De juiste methode is in drie stappen vooruitgaan. Eerst de algemene logica begrijpen: een API is een gecontroleerde toegangspoort tot een resource. Daarna de minimale conventies leren: URL, methode, aanvraag, antwoord, status. Ten slotte die koppelen aan concrete use cases: klanten lezen, facturen aanmaken, vergelijken met SQL, JSON lezen en fouten beheren.

Veel mensen lopen vast omdat ze te vroeg beginnen met authenticatiedetails, complexe headers of frameworks. Eerst moet de conceptuele logica stevig staan.

Zodra die basis begrepen is, wordt de rest veel eenvoudiger: API-documentatie, tools zoals Postman, front-endconsumptie, back-endintegratie, beveiliging en versiebeheer.

Conclusie

Een API begrijpen betekent niet dat je een soort magie moet leren die alleen voor ontwikkelaars bestemd is. Het betekent begrijpen hoe systemen op een gecontroleerde, leesbare en gestandaardiseerde manier met elkaar praten.

REST, HTTP, CRUD, URL's, responsstatussen en JSON zijn geen losstaande begrippen. Ze beschrijven allemaal hetzelfde uitwisselingsmechanisme vanuit complementaire invalshoeken.

Voor een business-, finance-, audit- of dataprofiel is de vergelijking met SQL vaak het beste vertrekpunt. SQL helpt om de logica van het lezen en manipuleren van data te begrijpen. De API voegt daar de service-, beveiligings-, formatterings- en blootstellingslaag aan toe. En JSON maakt het mogelijk om die data uit te wisselen in een eenvoudige en flexibele vorm die geschikt is voor moderne applicaties.

<- Terug naar blog

Tags

APIREST APIHTTPCRUDJSONSQLNoSQLData-integratieBusiness Intelligence

Last updated on Mar 26, 2026

REST API's eenvoudig begrijpen: van het web naar SQL- en JSON-data | AEXIS Blog