Een API is een verzameling regels en protocollen waarmee twee softwarecomponenten met elkaar kunnen communiceren en gegevens kunnen uitwisselen. API’s spelen een grote rol in de huidige digitale wereld. Met de snelle toename van het API-gebruik is het essentieel om goed te begrijpen hoe je dit gebruik effectief beheert en controleert. Bij API-management is het ontwerpen van een API die compatibel is met de backend bijzonder belangrijk. Dit is precies waar API-throttling en rate limitering een rol spelen.
Wat is API Throttling?
API-throttling is het mechanisme waarmee je het aantal API verzoeken reguleert dat een gebruiker binnen een bepaalde tijd mag doen. Dit helpt om je API te beschermen tegen misbruik, zorgt voor eerlijk gebruik en voorkomt overbelasting van het systeem. Daarnaast ondersteunt het ook mogelijkheden voor monetisatie.
API Throttling met WSO2 API Manager v4
WSO2 API Manager biedt een complete oplossing voor API beheer, inclusief krachtige throttling mogelijkheden. Het stelt organisaties in staat om API verkeer te controleren, de beveiliging te waarborgen en de prestaties te optimaliseren, terwijl het tegelijkertijd de flexibiliteit biedt om API’s effectief op te schalen en te monetiseren. Met WSO2 API Manager kun je throttling toepassen op verschillende niveaus, zoals het API-niveau, applicatieniveau, resource-niveau en abonnementsniveau.
In dit artikel bespreken we hoe deze verschillende throttling niveaus werken en hoe we een complete throttling oplossing kunnen implementeren voor een realistische use case.
Laten we eerst bekijken hoe elk van deze throttling niveau’s werkt..
1. Subscription-niveau throttling
Dit gaat meestal hand in hand met monetisatie, waarbij het API providers in staat stelt om het aantal API-aanvragen te beheren dat API-abonnees (zoals Applicatie Ontwikkelaars) mogen uitvoeren. Deze controle wordt toegepast via verschillende throttling-tiers (of abonnementsplannen). API providers kunnen meerdere throttling-tiers definiëren. Elke tier heeft een eigen rate-limiet die aangeeft hoeveel API aanvragen per tijdseenheid mogen worden gedaan (bijvoorbeeld per minuut of per uur).
WSO2 Manager wordt standaard geleverd met vier verschillende throttling-niveau’s.
- Brons: Staat 1000 API aanvragen per minuut toe
- Zilver: Staat 2000 API aanvragen per minuut toe
- Goud: Staat 5000 API aanvragen per minuut toe
- Onbeperkt: Staat een onbeperkt aantal API aanvragen toe
API aanbieders kunnen ook hun eigen aangepaste throttling-tiers creëren om aan hun businessmodellen of klantvereisten te voldoen. Elke tier kan bovendien een eigen prijsstelling hebben, waardoor het bedrijf zijn API’s kan monetiseren.
Consumenten die meer API aanroepen nodig hebben, kunnen kiezen voor abonnementsniveau’s met een hogere capaciteit. Zo krijgen ze toegang tot wat ze nodig hebben, terwijl het de API provider extra inkomsten oplevert. De throttling op abonnementsniveau in WSO2 API Manager is flexibel en eenvoudig te configureren, zodat deze kan worden afgestemd op de specifieke behoeften van verschillende bedrijfsmodellen. Dit zorgt zowel voor optimale API prestaties als voor klanttevredenheid..
Burst Control
Burst Control helpt API’s te beschermen tegen plotselinge pieken in verkeer door naast algemene quota ook rate limieten te handhaven. Stel dat een gebruiker voor een API een quotum heeft van 3000 verzoeken per dag. Zonder burst control zou hij al deze verzoeken in korte tijd kunnen versturen, waardoor de backend overbelast raakt. Met burst control kun je om dit te voorkomen een limiet per seconde instellen, bijvoorbeeld 10 verzoeken per seconde,..
Door het aantal verzoeken te reguleren, zorgt burst control ervoor dat het verkeer gelijkmatig over de tijd wordt verspreid. Als een gebruiker bijvoorbeeld 60 verzoeken per minuut mag doen, kan burst control dit beperken tot 5 verzoeken per seconde, zodat de verzoeken gelijkmatig over de minuut worden verdeeld. Dit beschermt de back-end tegen plotselinge pieken, voorkomt aanvallen zoals DDoS en zorgt voor consistente API prestaties.
2. Application-niveau throttling
Een applicatie is een logische verzameling van één of meer API’s. Wanneer een App Ontwikkelaar zich wil abonneren op een API, heeft hij een applicatie nodig om zich daarop te kunnen abonneren. App Ontwikkelaars kunnen zich met één applicatie op meerdere API’s abonneren en daarbij één enkele access token gebruiken om de verzameling API’s aan te roepen…..
Applicatieniveau-throttling biedt een manier om API verzoeken te beheren die door een token (dus een applicatie gebruiker in plaats van een Applicatie Ontwikkelaar) via een specifieke applicatie worden gedaan, ongeacht het aantal API’s waarop de applicatie is geabonneerd. Dit type throttling stelt API Ontwikkelaars in staat te voorkomen dat één gebruiker met excessief verkeer de volledige abonnementsquota van de applicatie verbruikt. Zo blijft de verdeling van resources eerlijk voor alle gebruikers van dezelfde applicatie.
In WSO2 API Manager zijn er vier standaard throttling-niveau’s op applicatie niveau.
- 10PerMin: 10 API aanvragen per minuut
- 20PerMin: 20 API aanvragen per minuut
- 50PerMin: 50 API aanvragen per minuut
- Unlimited: Onbeperkte toegang De standaard applicatie, die out-of-the-box wordt geleverd, heeft het niveau ingesteld op ‘Onbeperkt’
Wanneer applicaties worden ontwikkeld door App Ontwikkelaars, kunnen zij throttling-niveaus selecteren die aansluiten bij de abonnementsniveau’s die ze van plan zijn af te nemen en aansluiten bij hun bedrijfsbehoeften. Daarnaast kunnen beheerders ook aangepaste throttling-niveaus voor applicaties aanmaken.
3. API-niveau throttling
Zowel throttling op abonnementsniveau als op applicatieniveau wordt doorgaans gebruikt voor monetisatie doeleinden en niet voor de bescherming van de API-back-end. Het is echter essentieel om API-back-ends te beschermen tegen overmatig verkeer en pieken die van alle consumenten kunnen komen. Daarom speelt throttling op API-niveau een belangrijke rol. Door een limiet op API-niveau in te stellen, zorg je ervoor dat je back-end-services niet worden overspoeld door te veel verzoeken, wat kan leiden tot verminderde prestaties of zelfs uitval van de dienst.
4. Resource-niveau throttling
Een API bestaat uit één of meer API resources. In sommige API’s kunnen verschillende resources een verschillend belang hebben en daarom een ander niveau van beveiliging vereisen. Resource-niveau throttling maakt meer gedetailleerde controle mogelijk door limieten af te dwingen op individuele API resources.
Stel bijvoorbeeld een online shopping-API voor. De product listing-resource wordt vaak gebruikt door consumenten die door producten bladeren, terwijl de check-out items-resource veel gevoeliger is, omdat deze betalingen verwerkt en de winkelwagen bijwerkt. Door verschillende throttling-limieten toe te passen op deze API resources kun je het verkeer effectiever beheren. Je kunt een hoger verkeer toestaan naar de product overzichten, maar strengere limieten toepassen op de chec-kout-end point om ervoor te zorgen dat de back-end elke transactie soepel verwerkt zonder overbelasting.
Deze functionaliteit zorgt er bovendien voor dat resources met veel verkeer niet de kritieke, maar minder gebruikte resources van het systeem verdringen.
Nu we de verschillende soorten throttling hebben besproken, kijken we hoe we deze kunnen toepassen in een praktijkvoorbeeld met WSO2 API Manager 4.3.0.
Real-world Use Case: Het verkeer van de Weather API van StarWeather managen
StarWeather is een bedrijf dat weersgegevens verzamelt en publiceert. Dit doen ze via een API genaamd de Weather API (Weer API). Omdat StarWeather inkomsten genereert met hun API is deze gemonetariseerd, waardoor App Ontwikkelaars toepassingen kunnen bouwen met behulp van de Weather API.
Stel dat Paul een App Ontwikkelaar is, die van plan is een weer app te ontwikkelen genaamd WeatherPredict (weersvoorspelling), welke realtime voorspellingen en weermeldingen ophaalt via de Weather API. Zodra de app is gebouwd, kunnen gebruikers het weer bekijken, meldingen ontvangen en meer.
Niet alleen Paul, maar ook een groot aantal App Ontwikkelaars bouwt applicaties met behulp van deze Weather API. Daardoor verwerkt StarWeather een groot volume aan gebruikers verspreid over meerdere apps. Om te voorkomen dat de API overbelast raakt, vooral tijdens periodes met hoge vraag, zoals bij zware stormen, kunnen ze throttling gebruiken om het aantal API verzoeken binnen een bepaalde tijd te beheersen.
Laten we bekijken hoe throttling op verschillende niveau’s kan worden geïmplementeerd voor deze weer app met behulp van WSO2 API Manager..
Abonnementsniveau-throttling: Het beheren van API-plannen voor Ontwikkelaars
StarWeather biedt verschillende abonnementen aan voor Ontwikkelaars, zoals Paul. Deze abonnementen bepalen hoeveel API verzoeken je kunt doen, afhankelijk van het bedrag dat je betaalt.
Standaard biedt WSO2 API Manager een ingebouwde abonnementsbeleid aan. Als StarWeather een eigen abonnementsbeleid wil opstellen, bekijken we hieronder hoe je dit kunt aanmaken in WSO2 API Manager.
Een aangepast abonnementsbeleid maken
- Navigeer naar de API Manager Admin Portaal via de https://<server_host>[:<server_port>]/admin url. Admin gebruikers hebben toegang tot dit portaal.
- Navigeer naar Rate Limiting Policies -> Subscription Policies (Abonnementsbeleid)
- Maak een nieuw abonnementsbeleid aan.

- Standaard zijn er vijf abonnements-rate-limiting-policies (beleid) met verschillende API request quota’s. Als de Admin een nieuwe abonnements-rate-limiting-policy wil aanmaken volgens het bedrijfsbeleid, kan dit op dezelfde pagina worden gedaan..
Klik op de knop ‘Nieuwe policy toevoegen’. Maak vervolgens de policy aan met de quota limieten.

- Optioneel kun je op dezelfde pagina de monetisatie details en burst-control configuraties toevoegen.
- Klik daarna op de knop “Opslaan”.
Subscription policies toe wijzen aan de API
- Open de Publisher Dashboard en selecteer de Weather API.
- Navigeer naar Portal Configurations -> Subscriptions. Je ziet het zojuist aangemaakte aangepaste abonnementsbeleid onder de bedrijfsplannen.

- Selecteer de benodigde abonnementsplannen voor de API en sla ze op.
- Zodra de API is gepubliceerd, zie je de Weather API met de geselecteerde abonnementsplannen als optie voor App Ontwikkelaars in het ontwikkelaarsportaal.
Nu de API klaar is met de abonnementsplannen, kan Paul zich abonneren op de API. Hij kan een bedrijfsplan kiezen dat aansluit bij zijn behoeften.
Application-niveau Throttling: Verkeer beperken voor een applicati
Paul heeft zijn WeatherPredict App (weersvoorspelling App) ontwikkeld, die inmiddels door duizenden gebruikers wordt gebruikt. Maar om te voorkomen dat één gebruiker de API overbelast met te veel verzoeken, moet StarWeather beperkingen instellen op hoeveel verkeer een enkele user token mag genereren. Anders kunnen één of enkele gebruikers alle capaciteit verbruiken die Paul heeft ingekocht voor zijn volledige gebruikersbestand.
Hiervoor kunnen we applicatie throttling toepassen.
Een aangepaste rate-limiting policy voor applicaties maken.
- Navigeer naar de API Manager Admin console. Admin gebruikers hebben toegang tot dit portaal.
- Navigeer naar Rate Limiting Policies → Application Rate Limiting Policies. Op deze pagina zie je standaard de drie policies.

- Als je een aangepaste rate-limiting policy voor een applicatie wilt maken, klik je op de knop Policy toevoegen. Maak de policy aan met de benodigde telling-/bandbreedte-instellingen. Daarnaast kun je hier de burst-control limieten configureren. Sla vervolgens de instellingen op.

- Wanneer App Ontwikkelaars zoals Paul applicaties maken in de Dev Portal, dan kunnen ze één van de applicatie niveau-beleidspakketten kiezen.
Application policies toewijzen aan de applicatie.

- Wanneer een App Ontwikkelaar een applicatie maakt, kan hij zowel de standaard- als de aangepaste applicatie beleidsregels zien op de pagina voor het aanmaken van de applicatie.
- Op basis van de vereisten van de App Ontwikkelaar kan deze een beleid kiezen en de applicatie creëren..
Selecteer het abonnementsplan wanneer je je aanmeldt voor de API.
- Nadat de applicatie is aangemaakt, kan Paul deze gebruiken om zich te abonneren op de ‘Weather API’. Op dezelfde API-abonnementspagina staan alle beschikbare businessplannen (zowel gratis als commercieel). Hij kan het businessplan kiezen dat aansluit bij zijn behoeften en zich abonneren op de API.

- De WeatherPredict App maakt gebruik van het standaard abonnement. Wanneer de app binnen één minuut 100 verzoeken doet, stopt de Weather API tijdelijk met het accepteren van verdere verzoeken totdat de volgende minuut in gaat.
API-niveau Throttling: Het beschermen van de volledige API tegen overbelasting
De API van StarWeather wordt door veel Ontwikkelaars en applicaties gebruikt, niet alleen door Paul. Tijdens extreme weersomstandigheden kan het API verkeer sterk toenemen. StarWeather moet ervoor zorgen dat de volledige API niet overbelast raakt, ongeacht wie de verzoeken indient. Daarom kan de API Ontwikkelaar API-niveau limieten configureren voor de API.

- Navigeer in de publisher-portal naar de API-configuratie → Resource van de Weather API. Selecteer het API-niveau en kies de Rate Limiting Policies op basis van de mogelijkheden van de back-end. Hier zie je de standaard beleidsregels..
- Als je een aangepast beleid wilt maken, kun je dit doen via het beheerportaal.
- Navigeer naar Rate Limiting Policies → Advanced Rate Limiting Policies. Je ziet hier de standaard geavanceerde beleidsinstellingen.

- Als je een aangepast beleid wilt toevoegen, kun je dit doen door op de knop ‘Nieuw beleid toevoegen’ te klikken.

Resource-Niveau Throttling: Het prioriteren van kritieke diensten
In de API van StarWeather worden verschillende services aangeboden, zoals actuele weergegevens, historische weergegevens en waarschuwingen voor extreem weer. Deze API’s hebben elk hun eigen resourcebehoeften en gebruikspatronen, waardoor het lastig is om één uniforme throttling-policy toe te passen.
API’s zoals “huidige weergegevens” worden vaak gebruikt en zijn lichtgewicht, waardoor ze weinig back-end-bronnen nodig hebben om snelle responses te leveren. Aan de andere kant zijn API’s zoals “weeralarmen bij extreem weer” veel intensiever, omdat ze complexe back-end processen omvatten (zoals locatie controles, impact analyses, enzovoort). Hoewel de API alerts minder vaak worden gebruikt, moet deze wel altijd beschikbaar zijn wanneer iemand er toegang toe vraagt, omdat gebruikers vertrouwen op deze kritieke en tijdgevoelige informatie.
Het toepassen van één uniforme throttling-policy op alle API resources brengt het risico met zich mee dat de quota van veel gebruikte services sneller worden uitgeput. Hierdoor kan de beschikbaarheid van andere API resources, inclusief diensten met hoge prioriteit, beperkt raken. Door resource-specifieke throttling-limieten te implementeren, kun je resources effectiever toewijzen en ervoor zorgen dat iedere service responsief en beschikbaar blijft op basis van zijn eigen behoeften en gebruikspatronen.

- Navigeer in het publisher portaal naar de API configuratie en vervolgens naar de Resource van de Weather API.
- Selecteer de “Operation Level” en klik vervolgens op de API resource waarop je de resource-level throttling-policies wilt toepassen.

- Selecteer de ‘Rate limiting policies’ op basis van de mogelijkheden van de back-end. Hier zie je de standaard policies.
- Je kunt een aangepast rate-limiting-beleid voor de API resources op dezelfde manier creëren als je een aangepast rate-limiting-beleid voor de API maakt..
Conclusie
API’s vormen de ruggengraat van moderne digitale systemen en maken het mogelijk dat applicaties moeiteloos met elkaar communiceren en gegevens uitwisselen. Maar naarmate het gebruik van API’s toeneemt, wordt effectief verkeersbeheer steeds belangrijker om stabiliteit en eerlijke toegang te waarborgen. Throttling, vooral met WSO2 API Manager, speelt hierbij een cruciale rol.
Door verschillende limieten in te stellen, zoals abonnements-tiers, applicatie controles en resource-specifieke beperkingen, kunnen API providers hun back-end beschermen, misbruik voorkomen en zelfs nieuwe inkomsten stromen creëren. Met functies zoals burst control zorgt WSO2 API Manager ervoor dat API’s plotselinge pieken in verkeer kunnen opvangen zonder systemen te overbelasten.
Kortom, de krachtige throttling mogelijkheden van WSO2 API Manager zorgen ervoor dat API’s betrouwbaar, schaalbaar en klaar voor de eisen van de echte wereld blijven.
Wil je ontdekken hoe jouw organisatie API-verkeer efficiënter kan beheren én de stabiliteit van je systemen kan versterken? Neem dan vandaag nog contact met ons op we helpen je graag verder.
