O que é throttling?

A limitação é uma técnica que as APIs de nuvem usam para limitar o número de solicitações que podem ser feitas em um período de tempo específico. A limitação de taxa garante que a API permaneça disponível e responsiva para todos os usuários. Também evita que qualquer usuário consuma muitos recursos.

Você pode experimentar a limitação de várias maneiras. Uma maneira comum é usando códigos de status HTTP. Por exemplo, quando você excede o número permitido de solicitações, a API pode retornar um 429 Too Many Requests código de status. Essa resposta indica que você fez solicitações demais em um período específico e deve diminuir a velocidade. Nem toda API usa 429: GitHub também pode responder com 403, e a Anthropic usa 529 quando toda a sua API está sobrecarregada.

Além dos códigos de status, algumas APIs fornecem mais informações nos cabeçalhos ou corpo da resposta. Por exemplo, eles podem usar o Retry-After cabeçalho para indicar quanto tempo você deve esperar antes de fazer outra solicitação.

Você precisa estar ciente dos limites de limitação das APIs que você usa e saber como lidar com a limitação em seus aplicativos, para que eles permaneçam responsivos e confiáveis quando a API estiver sob carga pesada.

Como a limitação afeta seu aplicativo

Quando uma API limita seu aplicativo e o aplicativo não lida com isso, o aplicativo falha, mostra um erro genérico, tenta novamente tão rápido que permanece limitado ou descarta dados silenciosamente. Você raramente vê nada disso durante o desenvolvimento, pois a API é rápida, você é o único usuário e seus dados de teste são pequenos.

Como testar se seu aplicativo lida com throttling

Approach O que você encontra Do que você sente falta
Aguardar ambiente de produção Limitação de taxa real Tudo, até que um usuário clique nele
Fazer mock da API em seus testes ou deixar seu agente de codificação escrever o mock Se o branch de repetição é executado Os códigos de status, Retry-After cabeçalhos e corpos de erro reais da API e a política de repetição do SDK. Seu aplicativo também precisa de uma opção somente de teste para acessar a simulação.
Faça chamadas para a API real até atingir o limite de taxa Comportamento real Você não pode acionar o throttling sob demanda, e usa sua cota real
Interceptar o tráfego real do aplicativo e simular a limitação URLs reais, seu SDK real e política de repetição e se seu aplicativo aguarda o tempo que Retry-After diz Seu código, de forma isolada. Guarde seus testes unitários para isso.

Experimente em seu aplicativo

Dev Proxy retorna respostas de limitação de taxa para as APIs escolhidas, enquanto seu aplicativo continua chamando as URLs reais. Ele também informa quando seu aplicativo chama a API novamente antes do Retry-After tempo acabar.

Baixe a predefinição para a API que seu aplicativo chama e inicie o Proxy de Desenvolvimento com ela:

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

Para qualquer outra API, consulte Testar se meu aplicativo lida com a limitação corretamente. Para instalar o Proxy de Desenvolvimento, consulte Configurar o Proxy de Desenvolvimento.

Próximas Etapas