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.
API-throttling is een veelvoorkomende uitdaging wanneer u toepassingen bouwt die afhankelijk zijn van cloud-API's. Hier volgen technieken die u kunt gebruiken om ermee om te gaan:
- Frequentiebeperking gebruiken. Als de API die u gebruikt ondersteuning biedt voor snelheidsbeperking, gebruikt u de informatie over snelheidsbeperking die de API verzendt om ervoor te zorgen dat uw toepassing de limieten van de API niet overschrijdt.
- Verwerk Retry-After headers. Sommige API's verzenden een
Retry-Afterheader in hun reactie wanneer een verzoek wordt beperkt. Als u wordt gethrottled en het antwoord eenRetry-Afterheader heeft, wacht u gedurende de opgegeven tijd voordat u een andere aanvraag verzendt. - Exponentieel terugvalmechanisme implementeren. Als de API die u gebruikt geen
Retry-After-header verzendt, implementeert u een algoritme voor exponentieel uitstel met willekeurige jitter. Na elke mislukte verzoek wacht u twee keer zo lang voordat u het opnieuw probeert en stopt u na een paar pogingen. Als u langer wacht, vermindert u de belasting van de API en verhoogt u de kans dat uw volgende aanvragen succesvol zijn. - Weet wanneer u het niet opnieuw moet proberen. Sommige beperkingsachtige fouten betekenen dat uw quotum of tegoed op zijn, bijvoorbeeld OpenAI's
credit_balance_exhausted. Het opnieuw proberen van deze helpt niet, dus stop en vertel de gebruiker. - Cache heeft eerder gegevens ontvangen. Cache-antwoorden van de API, vooral voor verzoeken die waarschijnlijk dezelfde gegevens teruggeven. Met caching kunt u het aantal aanroepen naar de API verminderen en binnen de frequentielimieten blijven.
- Plaats verzoeken in de wachtrij. Implementeer een wachtrij voor uitgaande API-aanvragen om de aanvraagsnelheid te beheren en zorg ervoor dat de frequentielimieten van de API niet worden overschreden.
- API-aanroepen optimaliseren. Haal alleen de gegevens op die u nodig hebt en gebruik batchaanvragen als de API deze ondersteunt. Door te optimaliseren kunt u het aantal verzoeken verminderen en binnen de ratelimieten blijven.
- Laat de gebruiker zien wat er gebeurt. "Bezet, opnieuw proberen in 5 seconden" is beter dan een spinner die nooit eindigt.
Nadat u deze technieken in uw toepassing hebt geïmplementeerd, test u of throttling correct wordt verwerkt. Logica voor opnieuw proberen die u nooit hebt zien werken, is logica voor opnieuw proberen waarvan u niet weet dat die werkt. Voor een vergelijking van manieren om dit te testen, zie Hoe u kunt testen of uw app throttling verwerkt.
Probeer het uit in je app
Dev Proxy geeft throttlingreacties terug voor de API's die u kiest, terwijl uw app de echte URL's blijft aanroepen en u laat zien wanneer uw app opnieuw probeert voordat de Retry-After tijd op is. Voorinstellingen zijn beschikbaar voor GitHub (github-rate-limiting), OpenAI (openai-throttling), Anthropic (anthropic-throttling) en Microsoft Graph OneDrive- en SharePoint-eindpunten (microsoft-graph-rate-limiting):
devproxy config get openai-throttling
devproxy --config-file "~dataFolder/configs/openai-throttling/.devproxy/devproxyrc.json"
Zie Dev Proxy instellen om Dev Proxy te installeren.