Promoção no ar
Tempo restante da oferta:
06 Horas
54 Min
02 Seg
Assinar →

Consumindo APIs com Python - Parte 1

Veja neste artigo como consumir APIs com Python.

Fagner Pinheiro 6 anos atrás

Há casos em que precisamos consumir dados de um servidor remoto para incrementar uma aplicação utilizando APIs externas. No Python este processo é muito simples e neste artigo vamos aprender a consumir APIs com Python.

O que são APIs?

Uma API, basicamente, é um conjunto de padrões de requisições e respostas que facilitam a construção de aplicações. Elas são responsáveis por retornar vários tipos de informações, existem APIs para retornar o clima de uma determinada cidade, o preço do dólar em um país, etc.

Possuímos aqui no blog um ótimo artigo que exemplifica muito bem o que é e como funciona uma API.

Curso Python - Fundamentos Conhecer o curso

API utilizada

Para simular uma API completa, vamos utilizar o tw-dev-server , uma aplicação desenvolvida pelo Akira Hanashiro para simular uma API e, assim, conseguir realizar requisições HTTP e testar nossa aplicação.

Aqui no blog possuímos um artigo que explica todo o processo de instalação e uso do tw-dev-server, é muito importante que você leia e execute a aplicação em sua máquina.

Criando e configurando projeto

Agora que já possuímos a API rodando em nossa máquina, estamos prontos para consumí-la utilizando o Python. Para isso, vamos partir de uma aplicação muito simples, apenas um arquivo chamado main.py :

Criando projeto base

O primeiro passo, então, é instalar a biblioteca requests, responsável por enviar requisições HTTP com o Python. Para isso, com o pip instalado, basta executar o seguinte comando no terminal do próprio PyCharm:

pip install requests

Instalando biblioteca requests

Curso Python - Orientação a objetos Conhecer o curso

Criando registros na API

Para buscar os dados de uma API com Python é bem simples. Primeiramente, vamos criar alguns registros na API utilizando o próprio GUI do tw-dev-server na seguinte URL: https://treinaweb.github.io/tw-dev-server/.

Vale lembrar que o servidor precisa estar rodando em sua máquina para que tudo funcione corretamente:

Servidor do tw-dev-server rodando

Agora, basta criar alguns registros na API utilizando o navegador. Para isso, é só enviar uma requisição do tipo POST com os dados do registro. No meu caso, criei uma API de tarefas com título e descrição:

Cadastrando dados na API

Buscando dados de uma API

Agora, com a API pronta e com registros, podemos buscar estes dados utilizando o Python. Para isso, vamos criar um método chamado buscar_dados() em nosso projeto. Este método irá utilizar a biblioteca requests para enviar uma requisição GET (verbo responsável por informar à API que queremos listar seus dados) para a rota definida na API (no meu caso http://localhost:3002/api/todo):

import requests

def buscar_dados():
    request = requests.get("http://localhost:3002/api/todo")
    print(request.content)

Curso Django - Fundamentos Conhecer o curso

Depois, basta adicionar como parâmetro do print o conteúdo da variável request. Agora, para executar o método buscar_dados() quando executarmos o arquivo main.py, basta adicionar a chamada no seguinte bloco de código:

import requests

def buscar_dados():
    request = requests.get("http://localhost:3002/api/todo")
    print(request.content)

if __name__ == '__main__':
    buscar_dados()

Com isso, estamos enviando uma requisição do tipo GET (para buscar dados) para a rota http://localhost:3002/api/todo e, com isso, buscando todos os dados daquela API.

Agora, ao executar o arquivo main.py teremos o seguinte retorno:

Dados retornados da API

No terminal do PyCharm, podemos ver o conteúdo da API sendo impresso, o que significa que a requisição foi feita com sucesso.

Porém, esta resposta é exibida em bytes, se quisermos convertê-la para um formato de dicionário e, assim, acessar seus atributos de uma forma mais simples, basta utilizar a biblioteca json do próprio Python:

import requests
import json

def buscar_dados():
    request = requests.get("http://localhost:3002/api/todo")
    todos = json.loads(request.content)
    print(todos)
    print(todos[0]['titulo'])

if __name__ == '__main__':
    buscar_dados()

Esta biblioteca, basicamente, converte a resposta de bytes para um dicionário do Python, facilitando o acesso aos atributos de forma individual:

Convertendo resposta da API

Filtrando dados por ID

Há casos em que precisamos buscar um dado a partir do seu ID (ou qualquer outro atributo). Nestes casos, podemos enviar uma requisição com o verbo GET com o parâmetro que precisamos filtrar.

Utilizando o tw-dev-server, para filtrar os registros, enviamos este parâmetro na rota da requisição, como podemos ver abaixo:

import requests
import json

def buscar_dados_id(id):
    request = requests.get(f"http://localhost:3002/api/todo?id={id}")
    todo = json.loads(request.content)
    print(todo)
    print(todo['titulo'])

if __name__ == '__main__':
    # buscar_dados()
    buscar_dados_id("h7i39LVliST6r8kI")

Com isso, ao executar o código acima, será retornado apenas a todo com o id passado como parâmetro:

Filtrando dados da API

Conclusão

Como vimos acima, é muito simples consumir uma API com o Python, bastando apenas informar a rota desejada e qual verbo será utilizado para esta requisição. Neste artigo vimos como listar dados da API, no próximo artigo desta série veremos como cadastrar, editar e remover dados de uma API remota com o Python. Até lá! :D

Continue lendo

Artigos relacionados

Um ano de acesso total para você viver de programação.

Todos os cursos e formações da TreinaWeb numa única assinatura, com professores que atuam no mercado, suporte direto e certificados. Do primeiro console.log ao mercado de trabalho.

  • 1 ano de acesso a todos os cursos
  • Cursos novos toda semana
  • Suporte direto com professores
  • Plano de carreira personalizado
  • Certificados digitais inclusos
  • Aplicativos para Android e iOS, com acesso offline
Garantia incondicional de satisfação

Teste por 7 dias e, se não fizer sentido para você, devolvemos seu dinheiro.

Acesso completo a todos os cursos e dezenas de Formações.

12 meses
Economize R$ 840,00 54% OFF

de 12x R$ 129,00 por apenas

12x R$ 59,00

sem juros no cartão de crédito ou R$ 599,00 à vista

Oferta termina em 06h 54min 02s

  • Acesso imediato e ilimitado durante 1 ano.
  • Plano de carreira personalizado.
  • Suporte direto com professores.
  • E muito mais!
Matricule-se agora