1
resposta

[Sugestão] - Contribuição para os demais alunos

Olá, pessoal, tudo bem com vocês? Gostaria de deixar minha contribuição para o desafio do módulo 02, onde é solicitado a extração do total de seguidores do usuário, o que envolve a paginação da API.

No meu código, eu fiz algumas alterações, sendo uma delas o fato de eu ter alterado o parâmetro per_page para 100, o que permite enviar menos requisições para a API.

Além disso, não usei o append para adicionar a lista de usuários à followers_list, e sim o método extend. Dessa forma, é possível contar o total de seguidores, pois a followers_list será uma lista de dicionários, onde cada item representa os dados de um seguidor.

Espero que minha contribuição seja útil principalmente para aqueles que estão dando os primeiros passos na programação em Python. Também, gostaria de pedir aos demais alunos e instrutores que avaliem como a minha solução, citando e corrigindo qualquer erro que exista, pois apesar de ter uma boa experiência com Python, sempre há espaço para melhorias.

import requests

access_token = "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"

headers = {'Authorization': 'Bearer ' + access_token,
           'X-GitHub-Api-Version': '2022-11-28'}

params = {
    "per_page" : 100,
}

username = 'amzn'
url = f"https://api.github.com/users/{username}/followers"

# Iniciando a paginação
followers_list = []
page_num = 1
while True:
    url_page = f'{url}?page={page_num}'
    response = requests.get(url_page, headers=headers, params=params)
    followers = response.json()
    # Condição para encerrar o loop
    if len(followers) == 0:
        # Imprimir o total de páginas removendo a última págiba, que estará sempre vazia
        print(f"Total pages = {page_num - 1}")
        break
    # Acrescenta, individualmente, cada dicionário presente na página atual
    followers_list.extend(followers)
    print(f"url => {url_page}")
    page_num += 1

# Verificando a quantidade de seguidores
print(f"{username} has {len(followers_list)} followers ")
1 resposta

Oi, Nilson! Sua contribuição está excelente! A escolha de usar o extend ao invés do append faz total sentido, pois dessa forma a lista final será mais direta e fácil de manipular. Além disso, aumentar o per_page para 100 é uma ótima estratégia para reduzir o número de requisições, tornando o processo mais eficiente. Isso vai ajudar bastante quem está começando com Python e quer otimizar suas soluções.

Acredito que sua solução é bem clara e útil para quem está praticando a parte de paginação da API. Parabéns pelo esforço de compartilhar!

Se essa resposta te ajudou marque como solucionada.