Che cos'è la limitazione?

La limitazione è una tecnica usata dalle API cloud per limitare il numero di richieste che possono essere effettuate in un periodo di tempo specifico. La limitazione garantisce che l'API rimanga disponibile e rispondente a tutti gli utenti. Impedisce inoltre a qualsiasi singolo utente di usare troppe risorse.

È possibile sperimentare la limitazione in diversi modi. Un modo comune consiste nell'usare i codici di stato HTTP. Ad esempio, quando si supera il numero consentito di richieste, l'API potrebbe restituire un 429 Too Many Requests codice di stato. Questa risposta indica che hai inviato troppe richieste in un periodo di tempo specifico e che dovresti rallentare. Non tutte le API usano 429: GitHub può anche rispondere con 403 e Anthropic usa 529 quando l'intera API è sovraccarica.

Oltre ai codici di stato, alcune API forniscono altre informazioni nelle intestazioni o nel corpo della risposta. Ad esempio, potrebbero usare l'intestazione Retry-After per indicare il tempo di attesa prima di effettuare un'altra richiesta.

È necessario essere consapevoli dei limiti di limitazione delle API usate e sapere come gestire la limitazione delle richieste nelle app, in modo che rimangano reattive e affidabili quando l'API è sotto carico elevato.

Come il throttling influisce sulla tua app

Quando un'API limita l'app e l'app non la gestisce, l'app si arresta in modo anomalo, mostra un errore generico, riprova così velocemente che continua a essere soggetta a limitazione o perde i dati senza avvisare. Raramente viene visualizzato nulla di tutto questo durante lo sviluppo, perché l'API è veloce, si è l'unico utente e i dati di test sono di piccole dimensioni.

Come testare che l'app gestisca la limitazione

Avvicinarsi Cosa trovi Quello che ti manca
Attendere l'ambiente di produzione throttling reale Tutto, fino a quando un utente non ci fa clic
Simula l'API nei test oppure consenti all'agente di coding di scrivere il mock Se il ramo di ripetizione dei tentativi viene eseguito I codici di stato, le Retry-After intestazioni e i corpi di errore reali dell'API, e i criteri di ripetizione dei tentativi dell'SDK. L'app richiede anche un interruttore di sola prova per raggiungere il mock.
Chiama l'API reale fino a quando non ti applica il throttling Comportamento reale Non è possibile attivare il throttling su richiesta e si usa la quota reale
Intercettare il traffico reale dell'app e simulare la limitazione URL reali, l'SDK reale e i criteri di ripetizione dei tentativi e se l'app attende fino a quando Retry-After indica Il codice isolato. Mantieni gli unit test per quello.

Provalo nella tua app

Dev Proxy restituisce risposte di limitazione per le API scelte, mentre l'app continua a chiamare gli URL reali. Indica anche quando l'app chiama di nuovo l'API prima che scada il tempo Retry-After.

Scaricare il set di impostazioni per l'API che l'app chiama e avviare Dev Proxy con esso:

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

Per qualsiasi altra API, vedere Testare che l'applicazione gestisca correttamente la limitazione. Per installare Dev Proxy, vedere Configurare Dev Proxy.

Passaggi successivi