Vad är strypning?

Strypning är en teknik som moln-API:er använder för att begränsa antalet begäranden som kan göras under en viss tidsperiod. Hastighetsbegränsning säkerställer att API:et förblir tillgängligt och responsivt för alla användare. Det förhindrar också att en enskild användare förbrukar för många resurser.

Du kan uppleva strypning på flera sätt. Ett vanligt sätt är att använda HTTP-statuskoder. Om du till exempel överskrider det tillåtna antalet begäranden kan API:et returnera en 429 Too Many Requests statuskod. Det här svaret anger att du har utfärdat för många begäranden under en viss tidsperiod och bör sakta ner. Inte alla API:er använder 429: GitHub kan också svara med 403, och Anthropic använder 529 när hela API:et är överbelastat.

Förutom statuskoder ger vissa API:er mer information i svarshuvudena eller brödtexten. De kan till exempel använda Retry-After rubriken för att ange hur länge du ska vänta innan du gör en annan begäran.

Du måste vara medveten om begränsningsgränserna för de API:er som du använder och veta hur du hanterar begränsningar i dina appar, så att de är dynamiska och tillförlitliga när API:et är hårt belastat.

Hur begränsning påverkar din app

När ett API stryper din app och appen inte hanterar det, kraschar appen, visar ett allmänt fel, försöker igen så snabbt att den fortsätter att strypas eller tyst släpper data. Du ser sällan något av detta när du utvecklar, eftersom API:et är snabbt, du är den enda användaren och dina testdata är små.

Så här testar du att appen hanterar strypning

Approach Det här hittar du Vad du saknar
Vänta på produktionsmiljön Verklig begränsning Allt, tills en användare trycker på den
Mocka API:et i dina tester eller låt kodningsagenten skriva en mock Om återförsöksgrenen körs API:ets verkliga statuskoder, Retry-After headers och felsvar samt SDK:ns återförsöksprincip. Din app behöver också en testomkopplare för att nå mocken.
Anropa det verkliga API:et tills det stryper dina anrop Verkligt beteende Du kan inte utlösa strypning vid behov, och du använder din verkliga kvot
Fånga upp appens verkliga trafik och simulera begränsning Verkliga URL:er, din riktiga SDK och återförsöksprincip och om din app väntar så länge som Retry-After anger Din kod i isolerad miljö. Behåll enhetstesterna för det.

Prova det i din app

Dev Proxy returnerar throttlingssvar för de API:er du väljer, medan appen fortsätter att anropa de verkliga URL:erna. Den talar också om för dig när din app anropar API:et igen innan Retry-After tiden är slut.

Ladda ned förinställningen för API:et som appen anropar och starta Dev Proxy med den:

devproxy config get microsoft-graph-rate-limiting
devproxy --config-file "~dataFolder/configs/microsoft-graph-rate-limiting/.devproxy/devproxyrc.json"
API Preset
Microsoft Graph (OneDrive och SharePoint: /drive, /shares, /sites) microsoft-graph-rate-limiting
GitHub github-rate-limiting
OpenAI openai-throttling
Anthropic anthropic-throttling

För alla andra API:er, se Testa att mitt program hanterar throttling korrekt. Information om hur du installerar Dev Proxy finns i Konfigurera Dev Proxy.

Nästa steg