O que são rate limits?
Rate LImit é uma restrição que uma API impõe ao número de vezes que um usuário ou cliente pode acessar o servidor dentro de um período de tempo especificado.
rate limits são uma prática comum para APIs e são implementados por alguns motivos diferentes:
Eles ajudam a proteger contra abuso ou uso indevido da API. Por exemplo, um usuário mal-intencionado pode inundar a API com solicitações na tentativa de sobrecarregá-la ou causar interrupções no serviço. Ao definir rate limits, o Pottencial API´s pode impedir esse tipo de atividade.
Os rate limits ajudam a garantir que todos tenham acesso justo à API. Se uma pessoa ou organização fizer um número excessivo de solicitações, isso poderá sobrecarregar a API para todos os outros. Ao limitar o número de solicitações que um único usuário pode fazer, o Pottencial API´s garante que o maior número de pessoas tenha a oportunidade de usar a API sem sofrer lentidão.
Os rate limits podem ajudar o Pottencial API´s a gerenciar a carga agregada em sua infraestrutura. Se as solicitações para a API aumentarem drasticamente, isso poderá sobrecarregar os servidores e causar problemas de desempenho. Ao definir rate limits, o Pottencial API´s pode ajudar a manter uma experiência suave e consistente para todos os usuários.
Quais são os rate limits para nossas API´s?
Aplicamos rate limit no nível da organização, não no nível do usuário, com base no endpoint específico usado, bem como no tipo de conta que você possui. Os rate limits são medidos de duas maneiras: RPM (solicitações por minuto) e TPM (tokens por minuto). A tabela abaixo destaca os limites de taxa padrão para nossa API, mas esses limites podem ser aumentados dependendo do seu caso de uso após o preenchimento do formulário de solicitação de aumento de limite de taxa.
A unidade TPM (tokens por minuto) é diferente dependendo do modelo:
TIPO 1 IGUAL A TPM
Autenticação 1 token por minuto
É importante observar que o limite de taxa pode ser atingido por qualquer uma das opções, dependendo do que ocorrer primeiro. Por exemplo, você pode enviar 20 solicitações com apenas 100 tokens para o endpoint do Quotes isso preencheria seu limite, mesmo que você não tenha enviado 40 mil tokens nessas 20 solicitações.
Como funcionam os limites de taxa?
Se o seu rate limit de 60 solicitações por minuto e 150 mil tokens por minuto, você ficará limitado ao atingir o limite de solicitações/min ou ficar sem tokens, o que ocorrer primeiro. Por exemplo, se o máximo de solicitações/min for 60, você poderá enviar 1 solicitação por segundo. Se você enviar 1 solicitação a cada 800 ms, assim que atingir seu limite de taxa, você só precisará fazer seu programa dormir 200 ms para enviar mais uma solicitação, caso contrário, as solicitações subsequentes falharão. Com o padrão de 3.000 solicitações/min, os clientes podem enviar efetivamente 1 solicitação a cada 20 ms ou a cada 0,02 segundos.
O que acontece se eu atingir um erro de rate limit?
Os erros de rate limit são definidos da seguinte forma:
Rate limit atingido para Post em Quote no parceiro X em solicitações por min. Limite: 20,000000/min. Atual: 24,000000/min.>/p>
Se você atingir um rate limit, isso significa que você fez muitas solicitações em um curto período de tempo e a API está se recusando a atender outras solicitações até que um determinado período de tempo tenha passado.
Mitigação de erros
Quais são algumas medidas que posso tomar para mitigar isso?
Tome cuidado ao fornecer acesso programático, recursos de processamento em massa e postagem automatizada em mídia social - considere habilitá-los apenas para clientes confiáveis.
Para se proteger contra uso indevido automatizado e de alto volume, defina um limite de uso para usuários individuais dentro de um período de tempo especificado (diário, semanal ou mensal). Considere implementar um hard cap ou um processo de revisão manual para usuários que excedem o limite.
Tentando novamente com espera exponencial
Uma maneira fácil de evitar erros de limite de taxa é repetir automaticamente as solicitações com uma espera exponencial aleatória. Tentar novamente com espera exponencial significa executar uma suspensão curta quando um erro de limite de taxa é atingido e, em seguida, tentar novamente a solicitação malsucedida. Se a solicitação ainda não for bem-sucedida, a duração do sono é aumentada e o processo é repetido. Isso continua até que a solicitação seja bem-sucedida ou até que um número máximo de tentativas seja atingido. Essa abordagem tem muitos benefícios:
Novas tentativas automáticas significam que você pode se recuperar de erros de limite de taxa sem travar ou perder dados
A espera exponencial significa que suas primeiras tentativas podem ser feitas rapidamente, enquanto ainda se beneficiam de atrasos mais longos se suas primeiras tentativas falharem
Adicionar jitter aleatório ao atraso ajuda nas novas tentativas de todas as rebatidas ao mesmo tempo.
Observe que as solicitações malsucedidas contribuem para o seu limite por minuto, portanto, reenviar continuamente uma solicitação não funcionará.