Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die API-Drosselung ist eine häufige Herausforderung beim Erstellen von Anwendungen, die auf Cloud-APIs basieren. Hier sind Techniken, mit denen Sie damit umgehen können:
- Verwenden Sie eine Geschwindigkeitsbegrenzung. Wenn die API, die Sie verwenden, Ratenbegrenzung unterstützt, verwenden Sie die von der API gesendeten Informationen zur Ratenbegrenzung, um sicherzustellen, dass Ihre Anwendung die Grenzwerte der API nicht überschreitet.
- Behandeln Sie Retry-After-Headern. Einige APIs senden einen
Retry-After-Header in ihrer Antwort, wenn eine Anforderung gedrosselt wird. Wenn Sie gedrosselt werden und die Antwort über eineRetry-AfterKopfzeile verfügt, warten Sie die angegebene Zeit ab, bevor Sie eine andere Anforderung senden. - Implementieren Sie exponentielles Backoff. Wenn die API, die Sie verwenden, keinen
Retry-AfterHeader sendet, implementieren Sie einen exponentiellen Backoff-Algorithmus mit zufälligem Jitter. Warten Sie nach jeder fehlgeschlagenen Anfrage zweimal so lange, bevor Sie es erneut versuchen, und hören Sie nach einigen Versuchen auf. Wenn Sie länger warten, können Sie die Auslastung der API reduzieren und die Chancen erhöhen, dass Ihre nächsten Anfragen erfolgreich sind. - Wissen Sie, wann Sie eine Wiederholung nicht versuchen sollten. Einige drosselungsähnliche Fehler bedeuten, dass Ihr Kontingent oder Guthaben aufgebraucht sind, z. B. OpenAIs
credit_balance_exhausted. Erneutes Versuchen hilft hier nicht, also hören Sie auf und teilen Sie dem Benutzer mit. - Zuvor empfangene Daten zwischenspeichern. Cacheantworten aus der API, insbesondere für Anforderungen, die wahrscheinlich dieselben Daten zurückgeben. Mit der Zwischenspeicherung können Sie die Anzahl der Anrufe an die API reduzieren und innerhalb der Ratelimits bleiben.
- Anfragen in die Warteschlange stellen. Implementieren Sie eine Warteschlange für ausgehende API-Anforderungen, um die Anforderungsrate zu verwalten, und stellen Sie sicher, dass die Ratengrenzwerte der API nicht überschritten werden.
- Optimieren sie API-Aufrufe. Rufen Sie nur die benötigten Daten ab, und verwenden Sie Batchanforderungen, wenn die API sie unterstützt. Durch die Optimierung können Sie die Anzahl der Anforderungen reduzieren und innerhalb der Ratelimits bleiben.
- Zeigen Sie dem Benutzer, was passiert. „Belegt, erneuter Versuch in 5 Sekunden“ schlägt einen Spinner, der nie endet.
Nachdem Sie diese Techniken in Ihrer Anwendung implementiert haben, testen Sie, ob Ihre Anwendung die Drosselung ordnungsgemäß verarbeitet. Wiederholungslogik, die Sie nie in Ausführung gesehen haben, ist Wiederholungslogik, von der Sie nicht wissen, ob sie funktioniert. Einen Vergleich der Möglichkeiten zum Testen finden Sie unter So testen Sie, dass Ihre App mit Drosselung umgehen kann.
Probieren Sie sie mit Ihrer App aus
Der Dev-Proxy liefert Drosselungsantworten für die von Ihnen ausgewählten APIs, während Ihre App die echten URLs aufruft und Sie informiert, wann Ihre App vor dem Retry-After Zeitpunkt erneut versucht. Voreinstellungen sind für GitHub (github-rate-limiting), OpenAI (openai-throttling), Anthropic (anthropic-throttling) und Microsoft Graph OneDrive und SharePoint Endpunkte (microsoft-graph-rate-limiting):
devproxy config get openai-throttling
devproxy --config-file "~dataFolder/configs/openai-throttling/.devproxy/devproxyrc.json"
Zum Installieren von Dev Proxy siehe Einrichten von Dev Proxy.