1
resposta

[Dúvida] Rate Limit

Olá,

estou tendo problemas com Rate Limit, relacionado ao meu token e IP. Faço poicas requisições, porém está interferindo no desenvolvimento, pq não consigo prosseguir quando excede a taxa de requisição.

Alguma dica? ja tentei fazer com que a taxa seja aumentada pela documentação, mas sem sucesso...

1 resposta

Olá, Diego!

Pelo que você descreveu, parece que você está lidando com um problema comum ao trabalhar com APIs: o limite de taxa (Rate Limit).

Aqui estão algumas sugestões que podem te ajudar:

  1. Temporizador: Você pode usar a função time.sleep() do Python para fazer uma pausa entre as solicitações. Por exemplo, se a API permite 100 solicitações por minuto, você pode fazer uma pausa de 0,6 segundos entre as solicitações para não exceder o limite. Aqui está um exemplo:
import time
import requests

for i in range(100):
    response = requests.get('URL da API')
    # processa a resposta
    time.sleep(0.6)
  1. Backoff Exponencial: Este é um algoritmo que aumenta o tempo de espera entre as tentativas de solicitação cada vez que uma solicitação falha devido ao limite de taxa. Existem bibliotecas Python como o backoff que podem ajudar com isso.

Exemplo de uso da backoff:

import requests
import backoff

# Função que faz uma solicitação HTTP usando a biblioteca 'requests'
@backoff.on_exception(backoff.expo, requests.exceptions.RequestException, max_tries=3)
def make_request():
    url = 'https://api.example.com/some_endpoint'
    response = requests.get(url)
    response.raise_for_status()  # Lança uma exceção se a resposta for um erro HTTP
    return response.json()

try:
    data = make_request()
    print('Dados recebidos com sucesso:', data)
except backoff.MaxRetriesExceeded:
    print('Não foi possível obter os dados após várias tentativas.')
except requests.exceptions.RequestException as e:
    print('Erro na solicitação:', e)

Espero ter ajudado e bons estudos!