Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ograniczanie przepustowości to technika używana przez interfejsy API w chmurze w celu ograniczenia liczby żądań, które można wykonać w określonym przedziale czasu. Ograniczanie przepustowości zapewnia, że interfejs API pozostaje dostępny i odpowiada wszystkim użytkownikom. Zapobiega to również używaniu zbyt wielu zasobów przez pojedynczego użytkownika.
Możesz doświadczać ograniczania przepustowości na kilka sposobów. Jednym z typowych sposobów jest użycie kodów stanu HTTP. Na przykład po przekroczeniu dozwolonej liczby żądań interfejs API może zwrócić kod stanu 429 Too Many Requests. Ta odpowiedź wskazuje, że wysłano zbyt wiele żądań w określonym przedziale czasu i należy zwolnić. Nie każdy interfejs API używa 429: GitHub może również odpowiedzieć za pomocą 403, a Anthropic używa 529, gdy cały interfejs API jest przeciążony.
Oprócz kodów stanu niektóre interfejsy API zawierają więcej informacji w nagłówkach odpowiedzi lub treści. Mogą na przykład użyć nagłówka Retry-After , aby wskazać, jak długo należy poczekać przed wykonaniem kolejnego żądania.
Należy pamiętać o limitach dławienia używanych interfejsów API i wiedzieć, jak obsługiwać dławienie w aplikacjach, aby zachować szybkość reakcji i niezawodność, gdy interfejs API jest mocno obciążony.
Jak ograniczanie wpływa na aplikację
Gdy interfejs API ogranicza aplikację i aplikacja nie obsługuje tego poprawnie, aplikacja ulega awarii, wyświetla ogólny komunikat o błędzie, ponawia próbę tak szybko, że pozostaje objęta ograniczaniem, lub po cichu gubi dane. Podczas opracowywania rzadko widzisz dowolny z tych elementów, ponieważ interfejs API jest szybki, jesteś jedynym użytkownikiem, a dane testowe są małe.
Jak przetestować, czy aplikacja obsługuje throttling
| Approach | Co znajdziesz | To, co przegapisz |
|---|---|---|
| Poczekaj na produkcję | Rzeczywiste ograniczanie | Wszystko, dopóki użytkownik go nie kliknie |
| Mockuj interfejs API w testach albo pozwól agentowi programistycznemu napisać mocka | Czy gałąź ponowień się wykonuje | Rzeczywiste kody stanu, Retry-After nagłówki i treści błędów interfejsu API oraz zasady ponawiania prób Twojego zestawu SDK. Aplikacja wymaga również przełącznika tylko do testowania, aby połączyć się z atrapą. |
| Wywołuj rzeczywiste API, aż API zacznie Cię ograniczać | Rzeczywiste zachowanie | Nie można wyzwalać dławienia na żądanie i wyczerpujesz swój rzeczywisty limit przydziału |
| Przechwytuj rzeczywisty ruch aplikacji i symuluj ograniczanie przepustowości | Rzeczywiste adresy URL, prawdziwy zestaw SDK i zasady ponawiania prób oraz to, czy aplikacja czeka tak długo, jak określa Retry-After |
Twój kod w izolacji. Zostaw testy jednostkowe do tego. |
Wypróbuj ją w aplikacji
Dev Proxy zwraca odpowiedzi z ograniczeniem przepustowości dla wybranych interfejsów API, podczas gdy aplikacja nadal wywołuje rzeczywiste adresy URL. Informuje również, kiedy aplikacja ponownie wywołuje interfejs API, zanim upłynie Retry-After
Pobierz preset interfejsu API, które wywołuje Twoja aplikacja, i uruchom Dev Proxy przy jego użyciu:
devproxy config get microsoft-graph-rate-limiting
devproxy --config-file "~dataFolder/configs/microsoft-graph-rate-limiting/.devproxy/devproxyrc.json"
| API | Preset |
|---|---|
Microsoft Graph (OneDrive i SharePoint: /drive, /shares, /sites) |
microsoft-graph-rate-limiting |
| GitHub | github-rate-limiting |
| OpenAI | openai-throttling |
| Anthropic | anthropic-throttling |
W przypadku dowolnego innego interfejsu API zobacz Sprawdź, czy moja aplikacja poprawnie obsługuje ograniczanie przepustowości. Aby zainstalować Dev Proxy, zobacz Konfigurowanie narzędzia Dev Proxy.