Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
As APIs em nuvem utilizam a limitação como técnica para restringir o número de solicitações que podem ser feitas em um período de tempo específico. A limitação garante que a API permaneça disponível e receptiva a todos os utilizadores. Também evita que um único utilizador consuma demasiados recursos.
Você pode experimentar a limitação de várias maneiras. Uma maneira comum é usando códigos de status HTTP. Por exemplo, quando ultrapassa o número permitido de pedidos, a API pode devolver um 429 Too Many Requests código de estado. Esta resposta indica que enviou demasiados pedidos num determinado período de tempo e que deve abrandar. Nem todas as APIs utilizam 429: o GitHub também pode responder com 403, e o Anthropic usa 529 quando toda a sua API está sobrecarregada.
Para além dos códigos de estado, algumas APIs fornecem mais informações nos cabeçalhos da resposta ou no corpo. Por exemplo, podem usar o cabeçalho Retry-After para indicar quanto tempo deve esperar antes de fazer outra solicitação.
Precisa de estar ciente dos limites de throttling das APIs que utiliza e saber como lidar com o throttling nas suas aplicações, para que se mantenham responsivas e fiáveis quando a API estiver sob grande carga.
Como o throttling afeta a sua aplicação
Quando uma API limita a sua aplicação e esta não reage a isso, a app falha, mostra um erro genérico, tenta tão rápido que permanece limitada pela API ou perde dados silenciosamente. Raramente vês isto enquanto desenvolves, porque a API é rápida, és o único utilizador e os teus dados de teste são pequenos.
Como testar se a sua aplicação lida com a limitação de taxa
| Approach | O que encontra | Do que sente falta |
|---|---|---|
| Aguardar produção | Limitação real | Tudo, até que um utilizador lhe clicar |
| Simula a API nos teus testes, ou deixa o teu agente de programação escrever o mock | Se o seu branch de retry executar | Os códigos de estado, Retry-After cabeçalhos e corpos de erro reais da API, e a política de repetição do seu SDK. A tua aplicação também precisa de um switch só de teste para chegar ao mock. |
| Invoca a API real até atingir o limite de taxa | Comportamento real | Não podes ativar a limitação de taxa à vontade, e usas a tua quota real |
| Interceta o tráfego real da tua app e simula o throttling | URLs reais, o seu SDK real e política de retentativas, e se a sua aplicação espera tanto quanto Retry-After diz |
O teu código isoladamente. Reserva os testes unitários para isso. |
Experimente na sua app
O Dev Proxy gera respostas de limitação de débito para as APIs que escolhes, enquanto a tua aplicação continua a chamar os URLs reais. Também indica quando a sua aplicação chama novamente a API antes de o tempo Retry-After acabar.
Descarregue a predefinição da API que a sua aplicação chama e inicie o Dev Proxy 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, veja Teste se a minha aplicação lida corretamente com a limitação de taxa. Para instalar Dev Proxy, consulte Configurar Dev Proxy.