O que é "throttling"?

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.

Passos seguintes