Institucional

  • Sobre nós
  • Trabalhe Conosco
  • Para Empresas
  • Para Escolas
  • Política de Privacidade
  • Compromisso de Integridade
  • Termos de Uso
  • Canal de Ética
  • Código de Ética
  • Fale Conosco
  • Documentos Institucionais
  • Status
Institucional
  • Sobre nós
  • Trabalhe Conosco
  • Para Empresas
  • Para Escolas
  • Política de Privacidade
  • Compromisso de Integridade
  • Termos de Uso
  • Canal de Ética
  • Código de Ética
  • Fale Conosco
  • Documentos Institucionais
  • Status

A Alura

  • Como Funciona
  • Inteligência Artificial
  • Plataforma
  • Depoimentos
  • Instrutores(as)
  • Dev em <T>
  • Luri, a Inteligência Artificial da Alura
  • IA Conference
  • Cursos Imersivos
  • Perguntas Frequentes
A Alura
  • Como Funciona
  • Inteligência Artificial
  • Plataforma
  • Depoimentos
  • Instrutores(as)
  • Dev em <T>
  • Luri, a Inteligência Artificial da Alura
  • IA Conference
  • Cursos Imersivos
  • Perguntas Frequentes

Conteúdos

  • Alura Cases
  • Imersões
  • Artigos
  • Podcasts
  • Artigos de educação corporativa
Conteúdos
  • Alura Cases
  • Imersões
  • Artigos
  • Podcasts
  • Artigos de educação corporativa
Uma Empresa do GrupoLogo Grupo Alun

Outras empresas do Grupo Alun

  • FIAP
  • STARTSE
  • PM3
  • LUMINA

Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

Redes Sociais & Apps

instagram
youtube
tiktok
x
appStore
googlePlay
Uma Empresa do GrupoLogo Grupo Alun

Outras empresas do Grupo Alun

  • FIAP
  • STARTSE
  • PM3
  • LUMINA

Ao submeter seu e-mail, você concorda com a política de privacidade da Alura.

Redes Sociais & Apps

instagram
youtube
tiktok
x
appStore
googlePlay
Alura
  • Home

    Escolha seu Plano

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    Carreiras Alura

    Evolua com profundidade técnica, direção clara e aplicação prática.

    Jornadas guiadas do básico ao avançado com checkpoints práticos, desenhadas para quem busca profundidade e protagonismo técnico.

    Iniciante

    Comece do zero com uma trilha clara e progressiva.

    Fundamentos práticos para dar os primeiros passos com segurança e construir uma base sólida.

    Intermediário

    Continue sua evolução com cursos que conectam fundamentos, ferramentas e prática profissional. Ganhe autonomia, e avance para projetos mais completos.

    Avançado

    Aprofunde temas técnicos e estratégicos para enfrentar desafios mais complexos. Explore boas práticas, arquitetura, performance com visão profissional.

    CURSOS

    Ver mais cursos de Back-end
    • Pensamento computacional: fundamentos da computação e lógica de programação
    • Lógica de programação: mergulhe em programação com JavaScript
    • DDD: fundamentos do design orientado a domínio
    • ASP.NET: autenticação e autorização em APIs e aplicações web
    • Microsserviços: migração de monólitos e modularização

    CURSOS

    Ver mais cursos de Dados
    • Python para Dados: primeiros passos
    • Excel: domine o editor de planilhas
    • Engenharia de Dados: Orquestração de Pipelines com Apache Airflow
    • Power BI Desktop: construindo meu primeiro dashboard
    • Governança e Arquitetura de Dados

    CURSOS

    Ver mais cursos de Inteligência Artificial
    • IA: Explorando o Potencial da Inteligência Artificial Generativa
    • Engenharia de Prompt: Criando Prompts Eficazes para IA Generativa
    • Claude para Análise de Dados: prompts, integrações e automações
    • Agno: criando agentes e sistemas multiagente
    • Engenharia de software na era da IA: segurança de aplicações com agentes, MCPs e código gerado por IA

    CURSOS

    Ver mais cursos de Front-end
    • HTML e CSS: ambiente, estrutura e estilo
    • React: realizando testes avançados com Jest e Testing Library
    • React: integrando TypeScript em projetos
    • JavaScript: aprendendo a programar
    • React: aplicando arquiteturas de Micro frontends

    CURSOS

    Ver mais cursos de DevOps
    • Sistema Operacional Linux: fundamentos e administração prática
    • Containers e Docker: empacotamento, isolamento e gestão
    • Redes: dos conceitos iniciais à criação de uma intranet
    • Linux: gerenciando diretórios, arquivos, permissões e processos
    • Cibersegurança: Fundamentos e práticas integradas

    CURSOS

    Ver mais cursos de UX & Design
    • UX Research: mapeando a experiência da pessoa usuária
    • UX/UI Design: Entregando produtos digitais com IA
    • UI Design: Prototipação e animações interativas
    • Figma: Conhecendo o programa
    • Product Design: métricas e ciclo de vida do produto

    CURSOS

    Ver mais cursos de Inovação e Gestão
    • Canva: Criação de landing pages e e-mail marketing
    • Agilidade: como ela pode ajudar a criar um time de alta performance
    • Google Analytics 4: Extrair insights e configurar eventos
    • Management 3.0: gerencie o ambiente, não as pessoas
    • Automação de processos com n8n: Inteligência de dados para Marketing

    CURSOS

    Ver mais cursos de Mobile
    • React Native: Estilização e Layouts com Flexbox e StyleSheet
    • Flutter: Graphql e suporte offline
    • Android com Gemini: Trabalhando com textos e imagens na IA
    • Dart: trabalhando com orientação a objetos
    • React Native: Dominando Listas com FlatList e ScrollView

    CARREIRAS

    Ver mais carreiras
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA

    CURSOS

    • Engenharia de Prompt: Prompts Eficazes para IA Generativa
    • Claude Code: Criando sua Primeira Aplicação
    • Python: Crie sua Primeira Aplicação
    • Git e GitHub: Compartilhando e Colaborando
    • N8N: Fluxos de Trabalho Avançados

    CURSOS

    • Copilot Studio: Solução Multiagentes
    • Padrões de API HTTP e Modelagem de APIs
    • Python para Análise de Dados com SQL
    • Docker: Criando e Gerenciando Containers
    • Design com IA: Otimizando o Processo Criativo

    CURSOS

    • Model Context Protocol (MCP)
    • Spec-Driven Development: Dev Assistido por Agentes
    • Arquitetura de Sistemas Distribuídos com Java
    • Governança de Modelos e Reprodutibilidade
    • Pentest: Vulnerabilidades em Aplicações Web

    Escolha seu Plano

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    Skills & Go

    O Skills & Go é para Tech Leads, Product Managers, estrategistas e early adopters que transformam ideias em soluções de alto impacto. Em cursos ao vivo e 100% online, você domina a nova era da IA em tempo real.

    Aulas ao vivo

    Saiba mais
    • Agentic Engineering: orquestre multiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA

    Escolha seu Plano

    • Plus 2430% OFF
    • Pro 2430% OFF
    • Ultra Lab 2430% OFF

    Eventos Alura

    Nossos eventos são pensados para quem quer estar à frente das mudanças em tecnologia, IA e inovação. Em experiências presenciais, você acompanha tendências e se conecta com especialistas que estão moldando o futuro.

    Próximos eventos

    • IA Conference
    • Alura Signals
  • Talent Lab
  • IA
  • Artigos
  • Para Empresas
Ver planos
Links principais
  • Planos e Promoções
  • Carreiras

    Ver todas
    • Especialista em IA
    • Engenharia de IA
    • Ai native software engineering
    • Arquitetura de Soluções com IA
    • AI Product Design
    • Engenharia de Machine Learning
    • Desenvolvimento Front-End React
    • Engenharia de Dados
    • Cloud Security
    • Social Media Marketing
    • Engenharia de Agentes de IA
    Entrar Ver Planos
  • Área de Interesse

    Entrar Ver Planos
  • Aulas ao Vivo - Skills & Go

    • Agentic Engineering: orquestre multiplos agentes com confiabilidade
    • Building AI Products: transforme ideias em produtos reais com IA
    • AI Data Strategy: transforme dados em decisões estratégicas com IA
    Entrar Ver Planos
  • Senioridade

    Entrar Ver Planos
  • Eventos Alura

    • IA Conference
    • Alura Signals
    Entrar Ver Planos
  • Links complementares do menu mobile
  • Talent lab
  • Inteligência Artificial
  • Pós Graduações
  • Artigos
  • Para Empresas
  • Sobre a Alura
  • Grupo Alun
  • Entrar
    • Home
    • Carreiras
    • Skills & Go
    • Talent Lab
    • Inteligência Artificial
    • Pós Graduações
    • Artigos
    • Sobre a Alura
    • Grupo Alun
    LoginContato
    • Plano Pro 24
    • Plano Plus 24
    • Plano Ultra Lab 24
    • LinkedIn
    • Instagram
    • YouTube
    1. Página inicial
    2. Back-end
    3. Consumindo a API do Github em Python

    Consumindo a API do Github em Python

    5 min5 minutos de leitura

    5 min5 minutos de leitura

    Publicado: 28/04/2020

    Última atualização: 19 de Março

    1. Por que utilizar uma API?
    2. Entendendo o funcionamento da API
    3. Fazendo uma requisição
    4. Acessando os repositórios
    5. Agora sim, como consumir uma API em Python ?
    6. Listando os repositórios

    No dia a dia de um profissional de tecnologia, independente da linguagem, a palavra API é bem recorrente. Mas, o que é uma API? Como fazer o consumo de uma API utilizando a linguagem Python? É isto que vamos descobrir neste artigo.

    Uma API(Application Programming Interface) ou em português, Interface de Programação de Aplicativos, trata-se de um conjunto de rotinas que permite enviar e recuperar dados em um servidor, de forma a permitir a integração do uso destes dados em outras aplicações. Mas por que utilizar uma API e não um arquivo csv com os dados que precisamos?

    Por que utilizar uma API?

    Em certas situações, queremos apenas algumas informações que estão nesse arquivo, porém, os dados costumam mudar frequentemente. Utilizando uma API conseguiremos ir direto ao ponto, evitando baixar arquivos desnecessários e economizando tempo.

    E foi exatamente o que aconteceu durante essa semana, quando eu recebi uma tarefa para listar somente os repositórios do github de uma funcionária da empresa onde trabalho.

    Banner da Alura convidando profissionais a desenvolver habilidades em inteligência artificial para acompanhar as transformações do mercado de tecnologia. A campanha destaca que quem utiliza IA produz mais, cresce na carreira e se torna mais competitivo, reforçando que a inteligência artificial deixou de ser tendência e passou a ser uma habilidade essencial. O banner incentiva a começar a aprender IA com os cursos da Alura e impulsionar a transformação digital.

    Entendendo o funcionamento da API

    Talvez, a primeira ideia que venha à mente seja ir ao perfil dela e listar um a um cada repositório. Porém, é muito laborioso fazer isto manualmente, concorda?!

    E é aí que entra a API, como uma ponte em tempo real entre os dados do github e nossa aplicação, como mostra a imagem abaixo:

    imagem 1

    Ou seja, iremos solicitar os dados para a API através de uma requisição e ela irá retornar os dados solicitados, no nosso caso os repositórios da funcionária.

    Fazendo uma requisição

    Para conseguirmos nos comunicar com a API do github iremos precisar da biblioteca requests, como essa biblioteca não é built in do Python, vamos instalá-la através do comando:

    pip install requests 
    

    Agora que já temos nossa biblioteca instalada, podemos começar. Mas antes, vamos analisar como funciona a API pública do Github. Ela está disponível através da url:

    https://api.github.com/
    

    Quando acessamos este link, nos deparamos com uma estrutura similar a esta:

    {
      "current_user_url": "https://api.github.com/user",
      "rate_limit_url": "https://api.github.com/rate_limit",
      "repository_url": "https://api.github.com/repos/{owner}/{repo}",
      "user_url": "https://api.github.com/users/{user}",
      "user_organizations_url": "https://api.github.com/user/orgs",
    }
    

    Mas calma,não se assuste. Observe que temos uma estrutura semelhante a um dicionário em python: um par de chave e valor. E o nosso valor é uma url de como podemos acessar as chaves específicas, por exemplo, na chave: user_url possuímos o valor:

    https://api.github.com/users/{user}
    

    Então, se substituirmos o parâmetro user no link acima, excluindo também as chaves por um nome de usuário válido, por exemplo:

    https://api.github.com/users/nadiaaoliverr
    

    Teremos como resultado a mesma estrutura já vista antes, porém, com os dados da usuária nadiaaoliverr.

    {
      "login": "NadiaaOliverr",
      "name": "Nádia Oliveira",
      "location": "Rio Paranaíba - Minas Gerais - BR",
      "bio": "Just a common dev |  Student in Information Systems",
      "public_repos": 17,
      "followers": 82,
      "following": 130,
    }
    

    Legal! Mas, e os repositórios?

    Acessando os repositórios

    Para termos acesso aos repositórios precisamos acessar a url:

    https://api.github.com/users/{user}/repos
    

    E caso façamos a requisição para esta nova url com o nome de usuário mencionado, será possível ver todos os repositórios daquela pessoa.

    imagem 2

    Bingo! Era o que queríamos. Com isto, fizemos o nosso primeiro acesso a api, porém, manualmente. O que queremos é mostrar estes dados com a ajuda do Python, vamos lá.

    Agora sim, como consumir uma API em Python ?

    No nosso arquivo de código, vamos dizer ao Python que queremos utilizar a biblioteca de requisições e também, a biblioteca de representação de dados, a json.

    import requests
    import json
    

    O Json(JavaScript Object Notation) nada mais é do que um formato de representação de dados muito utilizado em API's. Para uma melhor organização do nosso código, iremos trabalhar com uma classe que recebe como parâmetro o nome do usuário.

    class ListaDeRepositorios():
        def __init__(self, usuario):
            self._usuario = usuario
    

    O que queremos é obter os repositórios que estão dentro da api, e para isso, na função responsável por fazer a requisição, vamos utilizar o método requests.get() que recebe como parâmetro a url da api.

      def requisicao_api(self):
            resposta = requests.get(
                f'https://api.github.com/users/{self._usuario}/repos')
    

    Agora que já fizemos a requisição, precisamos saber se houvesse sucesso ou não nesta solicitação e para isto, iremos utilizar o status de retorno da api. Podemos identificar esta informação através da palavra reservada status_code. Os mais comuns são:

    • 200 (OK): a solicitação ocorreu conforme o esperado e retornará algum dado, caso haja.
    • 404 (NOT FOUND): não foi possível encontrar o endereço passado como parâmetro.
    • 500 (INTERNAL SERVER ERROR): ocorreu algum erro no servidor.

    Então, caso retorne 200, podemos retornar aqueles dados, em caso contrário, vamos retornar o status daquela solicitação, conseguimos criar essa lógica através de um if/else:

    def requisicao_api(self):
            resposta = requests.get(
                f'https://api.github.com/users/{self._usuario}/repos')
            if resposta.status_code == 200:
                return resposta.json()
            else:
                return resposta.status_code
    

    Agora, temos que mostrar estes dados na tela. Vamos lá

    Listando os repositórios

    Vamos criar uma função responsável por imprimir os repositórios. Chamaremos dentro desta função a nossa requisição à api e caso o retorno não seja um inteiro, percorremos os dados e acessaremos o nome daquele repositório.

    def imprime_repositorios(self):
            dados_api = self.requisicao_api()
            if type(dados_api) is not int:
                for i in range(len(dados_api)):
                    print(dados_api[i]['name'])
            else:
                print(dados_api)
    

    Caso o retorno seja um número inteiro diferente de 200, lembre-se que o status 200 é um OK, vamos printar este status.

    Podemos acessar uma lista completa de todos os retornos e o que eles significam neste link.

    Observe que conseguimos acessar os dados da api através da chave da mesma, neste caso, a chave name. Podemos agora instanciar nossa classe e printar os repositórios daquela funcionária:

    
    repositorios = ListaDeRepositorios('nadiaaoliverr')
    repositorios.imprime_repositorios()
    

    Ao executarmos o código, teremos como resultado:

    imagem 3

    Maravilha! Alcançamos nosso objetivo. Não tinha ideia que fosse tão simples assim, não é?! Você pode encontrar o código completo aqui.

    Esta é apenas uma das inúmeras funcionalidades da poderosa biblioteca de requests e você pode saber mais sobre ela acessando a documentação da mesma.

    Gostou deste artigo e quer conhecer mais sobre os poderes da linguagem python? Que tal dar uma olhada em nossos cursos de Python aqui na Alura? Bons estudos e até o próximo artigo!

    Banner da Alura convidando profissionais a desenvolver habilidades em inteligência artificial para acompanhar as transformações do mercado de tecnologia. A campanha destaca que quem utiliza IA produz mais, cresce na carreira e se torna mais competitivo, reforçando que a inteligência artificial deixou de ser tendência e passou a ser uma habilidade essencial. O banner incentiva a começar a aprender IA com os cursos da Alura e impulsionar a transformação digital.

    Avalie este artigo

    Foto de Nádia Oliveira

    Autor(a)

    Nádia Oliveira

    Com mais de 7 anos de experiência como Desenvolvedora de Software e graduada em Sistemas de Informação pela Universidade Federal de Viçosa, trilhei um caminho diversificado, explorando diversas tecnologias, até me consolidar como especialista em Python. Além das minhas habilidades técnicas, desempenho papel de liderança técnica na Alura. Sou movida pela autodisciplina e dedicada a enfrentar qualquer desafio que se apresente no meu caminho.

    Explore por tópico

    • Mobile
    • Back-end
    • Front-end
    • DevOps
    • UX & Design
    • Dados
    • Gestão & Negócios
    • Inteligência Artificial
    • Cibersegurança
    • Cloud

    Leia também

    • 08/09/2024

      Webhooks: o que é, como funciona e como aplicar na prática

      Ler mais
    • Alura
      13/06/2009

      Java Puzzle: curiosidades sobre eliminar variáveis locais

      Ler mais
    • 12/05/2022

      Fastify: o framework NodeJS rápido e seguro

      Ler mais
    Ver mais conteúdos

    Inscreva-se em nossa Newsletter

    Fique por dentro de conteúdos, insights e oportunidades do universo tech. Receba novidades e lançamentos direto no seu e-mail.