Een API Gateway implementeren
Ontwerp en configureer een API Gateway als centraal toegangspunt voor aanvragen van clients aan uw microservices.
Een API Gateway implementeren is een gratis Bootcamp backendontwikkeling met Node.js-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Bootcamp backendontwikkeling met Node.js. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Bootcamp backendontwikkeling met Node.js bevat in totaal 4 lessen.
API Gateway: de voordeur
In een microservicesarchitectuur moeten clients vaak communiceren met veel verschillende services. Een API Gateway fungeert als één uniform toegangspunt voor alle aanvragen van clients.
Je kunt het zien als de receptie van een groot hotel. In plaats van dat gasten zelf specifieke kamers (microservices) moeten vinden, gaan ze naar de receptie, die hen naar de juiste plek verwijst en algemene aanvragen afhandelt.

Waarom een API Gateway gebruiken?
API Gateways lossen verschillende uitdagingen op die ontstaan bij het gebruik van microservices:
- Vereenvoudigt clients: Clients hoeven slechts één eindpunt (de gateway) te kennen in plaats van de URL's van veel microservices.
- Aanvraagroutering: Stuurt binnenkomende aanvragen naar de juiste backendservice.
- Gemeenschappelijke verantwoordelijkheden: Handelt algemene aspecten zoals authenticatie, snelheidsbeperking en logboekregistratie op één centraal punt af.
- Serviceaggregatie: Kan antwoorden van meerdere services combineren tot één antwoord dat geschikt is voor de client.
Gateway versus load balancer
Een API Gateway en een load balancer worden gemakkelijk door elkaar gehaald, maar ze hebben verschillende doelen:
- Load balancer: Werkt op de netwerklaag (laag 4) of applicatielaag (laag 7) om verkeer over meerdere instanties van dezelfde service te verdelen voor hoge beschikbaarheid en goede prestaties.
- API Gateway: Werkt op de applicatielaag (laag 7) en richt zich op API-specifieke aspecten. De gateway stuurt aanvragen naar verschillende services en kan transformaties of beveiligingscontroles uitvoeren.
Ze werken vaak samen, waarbij een load balancer vóór de API Gateway staat.
Belangrijkste verantwoordelijkheden van een gateway
Een API Gateway vervult verschillende belangrijke rollen:
- Aanvraagroutering: Specifieke API-paden (bijvoorbeeld
/users) koppelen aan de juiste microservice. - Authenticatie en autorisatie: De identiteit en rechten van gebruikers controleren voordat aanvragen worden doorgestuurd.
- Snelheidsbeperking: Het aantal aanvragen beperken dat een client binnen een bepaalde periode kan doen.
- Caching: Veelgebruikte gegevens opslaan om de belasting van backendservices te verminderen en reactietijden te verbeteren.
- Logboekregistratie en bewaking: Logboeken voor alle binnenkomende aanvragen en uitgaande antwoorden centraliseren.
Een eenvoudige gateway bouwen
Je kunt een aangepaste API Gateway bouwen met Node.js en frameworks zoals Express.js. Een populaire bibliotheek voor het proxy'en van HTTP-aanvragen in Express is http-proxy-middleware.
Deze bibliotheek maakt het eenvoudig om aanvragen vanuit je gateway door te sturen naar je backendmicroservices, waarbij de gateway als reverse proxy fungeert.
Basisconfiguratie van een proxy
Laten we een eenvoudige Express.js-server instellen die als proxy fungeert. Deze gateway luistert op poort 3000 en stuurt alle aanvragen die beginnen met /api door naar een nagebootste microservice voor 'users' op poort 3001.
Houd er rekening mee dat je voor volledige functionaliteit een echte microservice nodig hebt die draait op http://localhost:3001.
const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
const app = express();
const GATEWAY_PORT = 3000;
// Proxy all requests starting with /api to the users microservice
app.use(
'/api',
createProxyMiddleware({
target: 'http://localhost:3001', // Target URL of your users microservice
changeOrigin: true, // Needed for virtual hosted sites
logLevel: 'debug' // Optional: for seeing proxy activity in console
})
);
// Simple root route for gateway status
app.get('/', (req, res) => {
res.send('API Gateway is running. Try /api/users (if microservice is active).');
});
app.listen(GATEWAY_PORT, () => {
console.log(`API Gateway listening on port ${GATEWAY_PORT}`);
console.log('Proxying /api to http://localhost:3001');
});Routeren naar meerdere services
De kracht van een API-gateway komt voort uit de mogelijkheid om aanvragen naar verschillende microservices te routeren op basis van het aanvraagpad, de HTTP-methode of andere criteria.
Je kunt meerdere proxyregels definiëren die elk naar een andere backendservice verwijzen. Zo gaat /users naar de gebruikersservice en /products naar de productservice.
Voorbeeld van routeren naar meerdere services
Hier breiden we onze gateway uit zodat aanvragen voor /users naar een 'users-service' op poort 3001 gaan en aanvragen voor /products naar een 'products-service' op poort 3002.
De optie pathRewrite is belangrijk: deze verwijdert het padvoorvoegsel (bijvoorbeeld /users) voordat de aanvraag naar de doelservice wordt doorgestuurd.
const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
const app = express();
const GATEWAY_PORT = 3000;
// Proxy for user-related requests
app.use(
'/users',
createProxyMiddleware({
target: 'http://localhost:3001', // Users Microservice URL
changeOrigin: true,
pathRewrite: { '^/users': '' }, // Remove /users prefix
logLevel: 'debug'
})
);
// Proxy for product-related requests
app.use(
'/products',
createProxyMiddleware({
target: 'http://localhost:3002', // Products Microservice URL
changeOrigin: true,
pathRewrite: { '^/products': '' }, // Remove /products prefix
logLevel: 'debug'
})
);
app.get('/', (req, res) => {
res.send('API Gateway is running. Try /users or /products (if microservices are active).');
});
app.listen(GATEWAY_PORT, () => {
console.log(`API Gateway listening on port ${GATEWAY_PORT}`);
console.log('Proxying /users to http://localhost:3001');
console.log('Proxying /products to http://localhost:3002');
});Gecentraliseerde middleware voor de gateway
Een van de grootste voordelen van een API-gateway is dat je middleware voor algemene aandachtspunten kunt toepassen voordat aanvragen je microservices bereiken.
Je kunt Express-middlewarefuncties globaal of voor specifieke routes binnen je gateway implementeren om taken uit te voeren zoals:
- Authenticatie: JWT's of sessietokens verifiëren.
- Logboekregistratie: Elke binnenkomende aanvraag vastleggen.
- Frequentiebeperking: Misbruik voorkomen door de frequentie van aanvragen te beperken.
- Invoervalidatie: Basisvalidatie uitvoeren voordat de aanvraag wordt doorgestuurd.
Korte controle over de gateway
Een API-gateway is een essentieel onderdeel van een microservicesopstelling. Laten we je begrip van het hoofddoel ervan testen.
Samenvatting van de gateway
Je hebt geleerd wat API-gateways zijn, waarom ze belangrijk zijn voor microservices en hoe je een eenvoudige gateway implementeert met Express.js en http-proxy-middleware.
Belangrijkste punten:
- API-gateways vereenvoudigen interacties met clients door één toegangspunt te bieden.
- Ze verzorgen routering, authenticatie, frequentiebeperking en andere dwarsdoorsnijdende aandachtspunten.
- Express.js met
http-proxy-middlewareis een flexibele manier om aangepaste gateways te bouwen.
Een goede beheersing van API-gateways is essentieel voor het bouwen van robuuste en schaalbare microservices!
Leer JavaScript met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 22
- Lessen
- 92
Veelgestelde vragen
Is de les “Een API Gateway implementeren” gratis?
Ja — de volledige tekst van “Een API Gateway implementeren” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Bootcamp backendontwikkeling met Node.js wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Bootcamp backendontwikkeling met Node.js bevat in totaal 4 lessen.
Wat leer ik in “Een API Gateway implementeren”?
Ontwerp en configureer een API Gateway als centraal toegangspunt voor aanvragen van clients aan uw microservices. Je oefent met Bootcamp backendontwikkeling met Node.js door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Bootcamp backendontwikkeling met Node.js te beginnen?
Ervaring vooraf is niet nodig. Bootcamp backendontwikkeling met Node.js op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Een API Gateway implementeren”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Bootcamp backendontwikkeling met Node.js?
Ja. Elke les over Bootcamp backendontwikkeling met Node.js bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Inleiding tot microservicesarchitectuur
- Node.js-microservices ontwikkelen
- Een API Gateway implementeren
- Communicatie tussen services met message queues