Como usar Python para consumir uma API e alimentar um banco de dados relacional

Levy Marques Nunes
geleia
Published in
3 min readJul 30, 2022

Hoje vou mostrar como usar a linguagem de programação Python, para consumir uma API Rest usando o pacote requests e alimentar um banco de dados no SQLite.

Para isso, vamos definir a nossa API. Vou usar uma API pública do Calendarific, que reúne os feriados do ano inteiro.

Então, a primeira coisa que precisamos quando selecionamos a API é da sua URL Base, é por ela que vamos nos conectar ao banco de dados da plataforma e requisitar as suas . No caso do Calendarific, a sua URL é a seguinte: https://calendarific.com/api/v2 . A partir desse link é possível enviar requisições para o aplicativo e esperar que ele mande uma resposta.

API Key (Chave de acesso)

Em alguns serviços, é necessário ter uma chave para fazer as requisições. Isso é importante pois a partir dessa chave é possível, para a plataforma, poder controlar a quantidade de chamadas que cada usuário pode fazer. Impedindo um usuário de fazer várias chamadas por segundo, fazendo com que o sistema da plataforma fique inacessível para outras pessoas.

Para pedir a sua chave no site do Calendarific, é muito simples. Basta criar uma conta, e a partir dessa conta, ir em calendarific.com/account e lá vai estar a sua “API Key”. É importante salvar essa chave, pois ela vai ser importante para fazer as requisições dentro do python.

É uma boa prática criar um script com o nome de secrets.py , nele você vai colocar informação sensível que não é uma boa compartilhar com o público.

Com esse arquivo criado, é possível importar dentro do script principal e acessar o atributo API_KEY e conseguir acesso à plataforma.

requests

Vamos usar a biblioteca requests para enviar requisições à URL Base. A partir dessa URL Base, vamos definir quais parâmetros queremos que a plataforma pesquise e envie para nossa aplicação.

A partir da documentação oficial da API é possível pesquisar quais Endpoints, podemos acessar para receber a resposta.

Endpoints nada mais é do que uma seção da API oficial. No caso do Calendarific, temos 3 endpoints.

  • /holidays : Lista de feriados baseado nos parâmetros passados pelo url
  • /languages: Lista de línguas que a API suporta.
  • /countries: Lista de países e linguagens que a API suporta.

O que nós queremos é a lista de feriados, então vamos usar esse Endpoint. Para ter acesso a ele é só colocar o endpoint no final da URL Base:

https://calendarific.com/api/v2/holidays/

Também é preciso colocar a nossa Chave de Acesso como parâmetro da URL.

https://calendarific.com/api/v2/holidays?api_key=123abc***

Com esses blocos, é possível fazer a requisição dos dados da API.

Resposta da API

Para entender melhor como desenhar a estrutura do banco de dados, é necessário entender quais informações a API responde, e quais informações são úteis para o seu projeto.

O seguinte script em Python, usa a biblioteca requests, a chave de acesso e a URL Base com a endpoint e os parâmetros para buscar os feriados.

Requisitção da API com os parâmetros acima

Vemos que a resposta é uma lista de dicionários, e alguns dicionários possuem dicionários em si.

Agora é observar quais informações são importantes para nós.

SQLite3

Usaremos a interface do SQLite para guardar nossas informações. Mais especificamente, a biblioteca sqlite3 nativa do python.

A primeira coisa a se fazer é construir o nosso banco de dados.

Com a tabela criada com as colunas que queremos, vamos alimentá-la com os dados da API que recebemos.

Pronto! Agora temos um banco de dados com os dados que recebemos da requisição API que fizemos.

--

--