Was ist Drosselung?

Drosselung ist eine Technik, die Cloud-APIs verwenden, um die Anzahl der Anforderungen zu begrenzen, die in einem bestimmten Zeitraum vorgenommen werden können. Durch Drosselung wird sichergestellt, dass die API für alle Benutzer verfügbar und reaktionsfähig bleibt. Außerdem wird verhindert, dass einzelne Benutzer zu viele Ressourcen verbrauchen.

Drosselung kann auf verschiedene Arten erfolgen. Eine gängige Methode ist die Verwendung von HTTP-Statuscodes. Wenn Sie beispielsweise die zulässige Anzahl von Anfragen überschreiten, gibt die API möglicherweise einen 429 Too Many Requests Statuscode zurück. Diese Antwort gibt an, dass Sie in einem bestimmten Zeitraum zu viele Anfragen gestellt haben und es langsamer angehen lassen sollten. Nicht jede API verwendet429: GitHub kann auch mit 403antworten, und Anthropic verwendet529, wenn die gesamte API überladen ist.

Zusätzlich zu Statuscodes stellen einige APIs weitere Informationen in den Antwortheadern oder im Textkörper bereit. Sie können z. B. den Retry-After Header verwenden, um anzugeben, wie lange Sie warten sollten, bevor Sie eine weitere Anfrage stellen.

Sie müssen sich der Drosselungsgrenzen der von Ihnen verwendeten APIs bewusst sein und wissen, wie Sie in Ihren Apps mit Drosselung umgehen, damit sie reaktionsfähig und zuverlässig bleiben, wenn die API stark belastet wird.

Auswirkungen der Drosselung auf Ihre App

Wenn eine API Ihre App drosselt und die App nicht damit umgehen kann, stürzt die App ab, zeigt einen generischen Fehler an, wiederholt so schnell, dass sie gedrosselt bleibt, oder verwirft Daten stillschweigend. Während der Entwicklung sehen Sie selten irgendetwas davon, da die API schnell ist, Sie der einzige Benutzer sind und Ihre Testdaten klein sind.

So testen Sie, dass Ihre App mit Drosselung umgeht

Approach Was Sie finden Was Ihnen fehlt
Auf die Produktion warten Tatsächliche Drosselung Alles, bis ein Benutzer darauf klickt
Mocken Sie die API in Ihren Tests, oder lassen Sie Ihren Coding-Agenten den Mock schreiben Ob Ihre Wiederholungsverzweigung ausgeführt wird Die echten Statuscodes, Retry-After Header und Fehlerantworttexte der API und die Wiederholungsrichtlinie Ihres SDKs. Ihre App benötigt außerdem einen reinen Testschalter, um den Mock zu erreichen.
Rufen Sie die echte API auf, bis sie Sie drosselt Tatsächliches Verhalten Sie können die Drosselung bei Bedarf nicht auslösen, und Sie verwenden Ihr reales Kontingent.
Abfangen des realen Datenverkehrs Ihrer App und Simulieren der Drosselung Echte URLs, Ihr reales SDK und Ihre Wiederholungsrichtlinie und ob Ihre App so lange wartet, wie von Retry-After angegeben Ihr Code in Isolation. Bewahren Sie sich das für Ihre Unit-Tests auf.

Probieren Sie sie in Ihrer App aus

Dev Proxy gibt Drosselungsantworten für die von Ihnen ausgewählten APIs zurück, während Ihre App die tatsächlichen URLs aufruft. Außerdem erfahren Sie, wann Ihre App die API erneut aufruft, bevor die Retry-After Zeit abgelaufen ist.

Laden Sie die Voreinstellung für die API herunter, die Ihre App aufruft, und starten Sie Dev Proxy damit:

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

Für alle anderen APIs siehe Testen Sie, ob meine Anwendung Throttling ordnungsgemäß verarbeitet. Informationen zum Installieren von Dev Proxy finden Sie unter Einrichten von Dev Proxy.

Nächste Schritte