Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.