Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Throttling is een techniek die cloud APIs gebruiken om het aantal aanvragen te limiteren dat in een specifieke periode kan worden gedaan. Throttling zorgt ervoor dat de API beschikbaar blijft en snel reageert op alle gebruikers. Het voorkomt ook dat een enkele gebruiker te veel resources verbruikt.
U kunt op verschillende manieren vertraging ervaren. Een veelvoorkomende manier is het gebruik van HTTP-statuscodes. Wanneer u bijvoorbeeld het toegestane aantal aanvragen overschrijdt, kan de API een 429 Too Many Requests statuscode retourneren. Dit antwoord geeft aan dat u in een bepaalde periode te veel verzoeken hebt verzonden en moet vertragen. Niet elke API gebruikt429: GitHub kan ook antwoorden met 403en Anthropic gebruikt 529 wanneer de hele API overbelast is.
Naast statuscodes bieden sommige API's meer informatie in de antwoordheaders of hoofdteksten. Ze kunnen bijvoorbeeld de Retry-After header gebruiken om aan te geven hoe lang u moet wachten voordat u een andere aanvraag indient.
U moet rekening houden met de throttlinglimieten van de API's die u gebruikt en weten hoe u throttling kunt afhandelen in uw apps, zodat ze responsief en betrouwbaar blijven wanneer de API zwaar wordt belast.
Hoe throttling uw app beïnvloedt
Wanneer een API uw app afknijpt en de app dit niet afhandelt, loopt de app vast, wordt er een algemene fout weergegeven, worden nieuwe pogingen zo snel uitgevoerd dat de app afgeknijpt blijft of laat de app gegevens stilzwijgend vallen. U ziet dit zelden tijdens het ontwikkelen, omdat de API snel is, u de enige gebruiker bent en uw testgegevens klein zijn.
Testen of uw app throttling afhandelt
| Approach | Wat u vindt | Wat u mist |
|---|---|---|
| Wacht op productie | Echte beperking | Alles, totdat een gebruiker het raakt |
| Mock de API in je tests, of laat je codeeragent de mock schrijven | Of uw retry-branch wordt uitgevoerd | De echte statuscodes, Retry-After headers en foutteksten van de API en het beleid voor opnieuw proberen van uw SDK. Uw app heeft ook een testswitch nodig om de mock te bereiken. |
| De echte API aanroepen totdat deze u beperkt | Echt gedrag | U kunt throttling niet op aanvraag forceren en u gebruikt uw werkelijke quotum |
| Het echte verkeer van uw app onderscheppen en beperking simuleren | Echte URL's, uw echte SDK en beleid voor opnieuw proberen, en of uw app wacht zo lang als Retry-After aangegeven |
Uw code is geïsoleerd. Houd daar uw eenheidstests voor. |
Probeer het in uw app
Dev Proxy retourneert throttlingreacties voor de API's die u kiest, terwijl uw app de echte URL's blijft aanroepen. Er wordt ook aangegeven wanneer uw app de API opnieuw aanroept voordat de Retry-After tijd voorbij is.
Download de voorinstelling voor de API die uw app aanroept en start er Dev Proxy mee:
devproxy config get microsoft-graph-rate-limiting
devproxy --config-file "~dataFolder/configs/microsoft-graph-rate-limiting/.devproxy/devproxyrc.json"
| API | Preset |
|---|---|
Microsoft Graph (OneDrive en SharePoint: /drive, /shares, /sites) |
microsoft-graph-rate-limiting |
| GitHub | github-rate-limiting |
| OpenAI | openai-throttling |
| Anthropic | anthropic-throttling |
Zie voor elke andere API Testen of mijn toepassing throttling correct afhandelt. Zie Dev Proxy instellen om Dev Proxy te installeren.