REST API versus HTTP API versus WebSocket API
Begrijp de afwegingen tussen REST API (uitgebreide functies), HTTP API (lage latency en lage kosten) en WebSocket API (bidirectioneel) en kies de juiste optie.
REST API versus HTTP API versus WebSocket API is een gratis AWS Solutions Architect-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject AWS Solutions Architect. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus AWS Solutions Architect bevat in totaal 4 lessen.
Waarom API Gateway bestaat
Amazon API Gateway is een volledig beheerde service waarmee je API's op elke schaal kunt maken, publiceren, beveiligen en bewaken. De service fungeert als voordeur voor je backendservices: Lambda-functies, EC2-instanties, HTTP-backends of andere AWS-services. API Gateway verzorgt verkeersbeheer, autorisatie, snelheidsbeperking, bewaking en API-versiebeheer, zodat je backend zich kan richten op bedrijfslogica in plaats van op aandachtspunten rond API-infrastructuur.
REST API: traditionele API met uitgebreide functies
REST API (het oorspronkelijke API Gateway-product) biedt de uitgebreidste functieset: transformatie van verzoeken en antwoorden met toewijzingssjablonen, snelheidsbeperking per methode, gebruiksplannen met API-sleutels, caching van antwoorden, WAF-integratie, X-Ray-tracering, bronbeleid en wederzijdse TLS met clientcertificaten. REST API's ondersteunen alle integratietypen: Lambda, HTTP, AWS-service, Mock en Lambda Proxy. Gebruik REST API wanneer je geavanceerde functies nodig hebt, zoals transformatie, caching of gebruiksplannen.
HTTP API: alternatief met lage latentie en lage kosten
HTTP API is ontworpen als een eenvoudiger, goedkoper en sneller alternatief voor REST API. De service ondersteunt alleen integraties met Lambda Proxy en HTTP Proxy—geen AWS-service-integraties en geen Mock. Belangrijke voordelen zijn: tot 70% lagere kosten dan REST API, lagere latentie, ingebouwde autorisatie met JWT's van OIDC en OAuth 2.0 (voor veel gebruikelijke authenticatiescenario's is geen Lambda-authorizer nodig) en automatische implementatie. Als je geen caching, gebruiksplannen of transformatie van verzoeken en antwoorden nodig hebt, is HTTP API de betere keuze.
# Create a simple HTTP API
aws apigatewayv2 create-api \
--name 'MyHttpAPI' \
--protocol-type HTTP \
--target 'arn:aws:lambda:us-east-1:123456789012:function:MyLambda'WebSocket API: bidirectionele realtimecommunicatie
WebSocket API houdt permanente, bidirectionele verbindingen tussen clients en de server in stand. In tegenstelling tot HTTP (verzoek-antwoord) maakt WebSocket het mogelijk dat de server op elk moment berichten naar clients pusht zonder dat de client hoeft te peilen. API Gateway beheert WebSocket-verbindingen en routeert berichten naar Lambda-functies op basis van route-expressies. Gebruik WebSocket API's voor realtime-applicaties, zoals chatapps, live dashboards, gezamenlijk bewerken, games en aandelenkoerstickers.
WebSocket-routes en verbindingsbeheer
WebSocket API's hebben drie ingebouwde routes: $connect (wordt geactiveerd wanneer een client een verbinding opent), $disconnect (wordt geactiveerd wanneer een verbinding wordt gesloten) en $default (vangt niet-overeenkomende berichten op). Je kunt aangepaste routes toevoegen, zoals sendmessage, die aan specifieke Lambda-functies worden gekoppeld. Gebruik de beheer-API @connections om vanuit je Lambda-functie berichten terug te sturen naar verbonden clients met de verbindings-ID van de client.
# Send a message to a specific WebSocket client from Lambda
import boto3
gw_client = boto3.client(
'apigatewaymanagementapi',
endpoint_url='https://abc123.execute-api.us-east-1.amazonaws.com/prod'
)
def lambda_handler(event, context):
connection_id = event['requestContext']['connectionId']
gw_client.post_to_connection(
Data='{"type": "message", "text": "Hello!"}',
ConnectionId=connection_id
)Functievergelijking: REST versus HTTP versus WebSocket
De belangrijkste verschillen in één oogopslag:
- REST API: volledige functieset (caching, gebruiksplannen, transformaties, WAF), hogere kosten en ondersteuning voor alle integratietypen
- HTTP API: alleen Lambda- of HTTP-proxy, 70% goedkoper, ingebouwde JWT-authenticatie, lagere latentie en geen caching of gebruiksplannen
- WebSocket API: permanente bidirectionele verbindingen, ondersteuning voor pushberichten vanaf de server en kosten per miljoen berichten en per minuut verbindingstijd
Voor het SAA-C03-examen geldt: HTTP-vragen zonder realtime- of geavanceerde functies → HTTP API. Realtime pushberichten → WebSocket. Complexe API-functies → REST API.
Fasen en implementaties
API Gateway-API's worden geïmplementeerd in fasen (bijvoorbeeld dev, staging en prod). Elke fase heeft een eigen URL en instellingen voor snelheidsbeperking en kan verwijzen naar een specifieke momentopname van een implementatie. Gebruik fasevariabelen (vergelijkbaar met omgevingsvariabelen) om backend-eindpunten per fase te parametriseren. Laat bijvoorbeeld de fase dev naar een dev-Lambda-alias verwijzen en prod naar de prod-alias, zonder de API-configuratie te dupliceren.
# REST API: create a deployment and stage
aws apigateway create-deployment \
--rest-api-id 'abc123' \
--stage-name 'prod'
# Set stage variable
aws apigateway update-stage \
--rest-api-id 'abc123' \
--stage-name 'prod' \
--patch-operations 'op=replace,path=/variables/lambdaAlias,value=prod'Aangepaste domeinnamen en toewijzingen van basispaden
API Gateway-URL's bevatten standaard de API-ID (bijvoorbeeld abc123.execute-api.us-east-1.amazonaws.com). Maak voor productiegebruik een aangepaste domeinnaam met een ACM-certificaat en koppel deze aan je API en fase. Gebruik toewijzingen van basispaden om meerdere API's onder één domein te hosten (bijvoorbeeld api.example.com/orders → Orders API en api.example.com/users → Users API). Voor aangepaste domeinnamen is een aliasrecord in Route 53 nodig dat naar het API Gateway-eindpunt verwijst.
Edge-geoptimaliseerde, regionale en private API's
REST API's kunnen in drie typen eindpunten worden geïmplementeerd: Edge-Optimised (CloudFront-frontend voor wereldwijde distributie, standaard), Regional (zonder CloudFront, lagere latentie voor clients in dezelfde regio of wanneer je je eigen CloudFront toevoegt) en Private (alleen toegankelijk vanuit je VPC via een VPC-interface-eindpunt, voor interne microservices). HTTP API's ondersteunen Edge-Optimised en Regional. WebSocket API's ondersteunen Regional en Private. Kies Regional voor API's die vanuit dezelfde regio worden gebruikt of wanneer je aangepaste CloudFront-distributies gebruikt.
Canary-implementaties met API Gateway
API Gateway REST API's ondersteunen canary-implementaties op een fase. Je kunt een percentage van het verkeer naar een canary-implementatie (nieuwe versie) routeren, terwijl de rest naar de productie-implementatie gaat. Bewaak foutpercentages en latentie op de canary; als deze stabiel is, promoveer je hem naar 100%. Als er problemen ontstaan, draai je terug door het canary-aandeel op 0 in te stellen. Dit is vergelijkbaar met routering op basis van gewichten met Lambda-aliases en maakt veilige, geleidelijke API-updates mogelijk zonder te wisselen tussen blue/green-omgevingen.
Het juiste API-type kiezen voor het examen
Trefwoorden in SAA-C03-examenvragen waarmee je het API-type kunt bepalen: 'kosteneffectieve eenvoudige API' → HTTP API; 'realtime bidirectioneel', 'pushberichten vanaf de server' of 'chat' → WebSocket API; 'transformatie van verzoeken', 'gebruiksplannen', 'snelheidsbeperking met API-sleutels' of 'caching van antwoorden' → REST API. Wanneer de vraag eenvoudigweg gaat over 'Lambda als HTTP-eindpunt met lage kosten beschikbaar maken', is HTTP API de beste keuze. Wanneer de vraag complexe functies voor API-beheer of partners omvat, is REST API meestal het juiste antwoord.
Korte controle
Test je begrip van de AWS Solutions Architect-concepten (SAA-C03) uit deze les.
Samenvatting van de les
In deze les heb je geleerd dat REST API de volledige functieset van API Gateway biedt (caching, transformaties, gebruiksplannen en WAF) tegen hogere kosten; dat HTTP API 70% goedkoper is, ingebouwde JWT-authenticatie en lagere latentie biedt en ideaal is voor Lambda- en HTTP-proxyscenario's zonder geavanceerde functies; en dat WebSocket API realtimecommunicatie met pushberichten vanaf de server mogelijk maakt via permanente verbindingen voor chat-, game- en livegegevensapplicaties. Hierna verkennen we API Gateway-integraties met Lambda, HTTP-backends en nagebootste antwoorden.
Leer AWS Solutions Architect 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
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “REST API versus HTTP API versus WebSocket API” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad AWS Solutions Architect, waaronder “REST API versus HTTP API versus WebSocket API”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus AWS Solutions Architect bevat in totaal 4 lessen.
Wat leer ik in “REST API versus HTTP API versus WebSocket API”?
Begrijp de afwegingen tussen REST API (uitgebreide functies), HTTP API (lage latency en lage kosten) en WebSocket API (bidirectioneel) en kies de juiste optie. Je oefent met AWS Solutions Architect 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 AWS Solutions Architect te beginnen?
Ervaring vooraf is niet nodig. AWS Solutions Architect 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 1 van 4.
Hoe lang duurt de les “REST API versus HTTP API versus WebSocket API”?
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 AWS Solutions Architect?
Ja. Elke les over AWS Solutions Architect 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
- REST API versus HTTP API versus WebSocket API
- Integraties: Lambda, HTTP en Mock
- Autorisatie: IAM, Lambda Authorizers en Cognito
- Throttling, caching en usage plans