Como consumir uma API utilizando Python

Como consumir uma API utilizando Python

O desenvolvimento de uma aplicação exige certos investimentos, especialmente no envolvimento de profissionais especializados e no emprego de recursos tecnológicos. Nos dias atuais, muitas empresas estão optando por reduzir os custos investindo na contratação de serviços que entreguem o que elas precisam sem a preocupação com a criação e manutenção destas aplicações.

Neste cenário, estão as APIs, que possibilitam a conexão a ambientes completos mantidos por terceiros de forma simplificada. O backend da aplicação é transparente ao contratante, que dedica muito menos recurso desenvolvendo apenas as integrações necessárias. Neste artigo, apresentamos o passo a passo para a conexão a APIs utilizando a linguagem Python.


A linguagem Python

Python é uma linguagem de alto nível, orientada a objetos e com sintaxe simplificada que permite a criação de softwares para os mais variados propósitos. A partir do emprego de frameworks, tais como Django e Flask, é possível trabalhar com desenvolvimento web, produzindo interfaces completas para integrar às aplicações. A linguagem também é muito utilizada em projetos relacionados a ciência de dados, Machine Learning, automações, entre outros.

Pycharm

Para a realização deste tutorial, utilizamos o Pycharm, um editor de código muito utilizado pela comunidade para o desenvolvimento de aplicações em Python. Você pode fazer o download da IDE neste link.

O que é uma API?

API significa Application Programming Interface e é, de acordo com uma definição bem sucinta publicada no site da empresa Red Hat, um “conjunto de ferramentas, definições e protocolos para a criação de aplicações de software”. Com as APIs, é possível oferecer integrações para diversos tipos de uso, como consumo de informações ou até mesmo automatização de processos, sem ceder o controle do código fonte da aplicação.

Ou seja, outras empresas poderão se conectar e aproveitar os serviços que, em outro momento, seriam desenvolvidos internamente, sem movimentação de tantos recursos pessoais e financeiros. A manutenção e segurança da tecnologia são garantidas pelo negócio que oferece o acesso à solução.

Um exemplo bacana é a API do Whats App Business que possibilita a integração de outras plataformas ao sistema de mensageria, proporcionando uma otimização do trabalho dentro de uma empresa que utiliza a ferramenta para o contato com clientes, por exemplo. Outras soluções muito utilizadas (e também muito famosas) são as APIs do Google Maps. Com elas, é possível inserir recursos relacionados a rotas, mapas e locais em sites e aplicativos de forma mais simplificada.

A maioria destas grandes empresas oferece acesso às APIs com planos pagos, mas existe uma série de interfaces que permite a integração de forma gratuita para você experimentar e aprender.

O que são endpoints?

Os endpoints são, basicamente, os endereços que conectam as APIs aos sistemas que as consomem. A partir destes endpoints, são realizadas conexões entre servidores e clientes, enviando e recebendo informações. Para isto, é necessária a utilização de uma URL e um método, além de itens essenciais relacionados às mensagens, tais como cabeçalho e corpo.

Com os métodos, é possível realizar uma série de operações, tais como: GET, que retorna uma consulta; POST, que insere alguma informação; PUT e PATH, que atualiza algum dado de forma completa ou parcial e o DELETE, que é utilizado para excluir alguma informação de uma base de dados.

Exemplos de API gratuitas para testes

Existem muitas APIs gratuitas que podem ser utilizadas pelos desenvolvedores no aprendizado de formas de integração.

Confira alguns exemplos:

The Open Movie Database (OMDB) → acesse muitas informações sobre filmes e séries.

New York Times → com essa API, você ficará bem informado sobre notícias do mundo todo.

PokéApi → uma API para quem é fã de Pokémon, com dados completos sobre as espécies, habilidades, recursos, evoluções, entre outros temas relacionados.

Consumindo uma API

Neste tutorial, utilizaremos a API Astronomy Picture of the Day (APOD), da NASA, que apresenta todos os dias uma foto diferente do universo. Você pode acessá-la neste link. Um detalhe importante é que esta API permite apenas operações do tipo GET, ou seja, somente de consulta de dados.

💡
O que é um arquivo .json? Um documento JavaScript Object Notation (JSON) é formatado como texto contendo em sua estrutura pares de chaves e valores, sendo as chaves os identificadores e os valores os elementos correspondentes às chaves. Os valores podem ser do tipo string, boolean, array, object, number e null.

Passo 1: acessando o site da API

É necessária uma autenticação para a conexão com a API APOD, portanto, você precisa fazer um registro rápido e gratuito para receber em seu e-mail uma API Key, ou seja, uma chave que possibilita o acesso. Existe também a possibilidade de usar o que eles chamam de DEMO KEY, que é uma API Key para você conferir algumas funcionalidades da API antes de se cadastrar.

Copie a API Key recebida no e-mail e insira ela no espaço indicado na URL: https://api.nasa.gov/planetary/apod?api_key= {INSIRA_SUA_APIKEY_AQUI}. Depois de inserir, você pode copiar e colar o endereço no seu navegador e conferir os campos e informações que a API oferece. Guarde esta URL para usarmos no código posteriormente.

Passo 2: criando um ambiente virtual

Para instalar suas dependências de forma específica apenas para este projeto, criaremos um ambiente virtual com o modo virtualenv. Abra o prompt de comando e digite: pip install virtualenv.

💡
Caso apareça o erro “’pip’ não é reconhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes”, verifique se ele está instalado (acesse a pasta Scripts na pasta origem da instalação do Python e confira se o executável pip.exe está nesta pasta).

Se estiver, adicione-o nas variáveis do ambiente, seguindo este passo: acesse o Explorador de Arquivos e aperte o botão direito do mouse no Este computador. Acesse a opção Configurações avançadas do sistema, clique na opção Avançado e depois em Variáveis de ambiente. Após, selecione a variável Path e clique em Editar. Clique em Novo e adicione o caminho da pasta Scripts. Reinicie o prompt de comando.


Crie o ambiente virtual com o comando: virtualenv nome_da_<~virtualenv~> e o ative com o comando nome_da_virtualenv/Scripts/Activate. Lembrando que estes comandos são válidos para Windows, que é o sistema operacional utilizado para a criação deste tutorial. Para desativar, utilize o comando deactivate.

Passo 3: criando o projeto

No menu superior do PyCharm, clique em File e, após, Open para abrir a pasta onde foi criado seu ambiente virtual. Nesta pasta, crie um arquivo Python. Para teste projeto, criamos o app.py.

Passo 4: importando o módulo requests

Instale a biblioteca requests para realizar as requisições nos endpoints da API utilizando Python. No prompt de comando, ainda no seu ambiente virtual, digite pip install requests e aperte enter. Lembrando que este pacote não será instalado de forma global, pois estamos trabalhando em um ambiente específico.

No seu arquivo app.py, importe o requests com o seguinte código:

import requests

Passo 5: armazenando a URL em uma variável

Agora, armazene a URL que você guardou anteriormente, na qual você inseriu a API Key recebida, em uma variável. No nosso código, chamamos ela de api_url.

import requests

api_url = "https://api.nasa.gov/planetary/apod?api_key={INSIRA_SUA_APIKEY_AQUI}"

💡
Não esqueça de remover as chaves ( { } ) que adicionamos nos espaços onde há indicação para inserir informações, como na variável api_url

Passo 6: armazenando a requisição em uma variável

Neste momento, crie uma variável para armazenar a requisição, o GET(), que faremos para acesso aos dados fornecidos pela API, conforme o indicado no trecho de código abaixo. O parâmetro inserido neste método será justamente a URL.

import requests

api_url = "https://api.nasa.gov/planetary/apod?api_key={INSIRA_SUA_APIKEY_AQUI}"

request = requests.get(api_url)

Passo 7: fazendo um if para continuar a operação somente se o status for 200

Antes de continuarmos, precisamos falar sobre os códigos HTTP que podem ser retornados quando tentamos realizar conexões com APIs. De acordo com a plataforma MDN Web Docs, os possíveis valores são:

100 - 199 → respostas da informação.

200 - 299 → respostas de sucesso.

300 - 399 → redirecionamento.

400 - 499 → erros do cliente.

500 - 599 → erros do servidor.

Sabendo disto, faça um if para que a aplicação somente continue seu funcionamento se o status retornado for 200, ou seja, de sucesso na requisição. Dentro deste if, armazene os dados guardados na variável request, no formato .json, na variável dados.

import requests

api_url = "https://api.nasa.gov/planetary/apod?api_key={INSIRA_SUA_APIKEY_AQUI}"

request = requests.get(api_url)

if request.status_code == 200:

dados = request.json()


Agora, você pode usar o comando print(dados.text) para conferir todos os dados retornados pela API. Se a mensagem no terminal for diferente do formato esperado, revise os passos anteriores. No dia 31/03/2023, quando este tutorial foi finalizado, a informação que devia ser retornada era:

{'date': '2023-03-31', 'explanation': "Shrouded in a thick atmosphere, Saturn's largest moon Titan really is hard to see. Small particles s

Passo 8: acessando as informações retornadas pela API de forma individual

Agora que você está acessando todos os dados, separe as informações que você deseja e as salve em variáveis específicas.

import requests

api_url = "https://api.nasa.gov/planetary/apod?api_key={INSIRA_SUA_APIKEY_AQUI}"

request = requests.get(api_url)

if request.status_code == 200:

dados = request.json()

data = dados['date']

explicacao = dados['explanation']

url = dados['url']

titulo = dados['title']


Perceba que, após feito isso, se dermos um print() em cada uma das variáveis, os dados serão retornados de forma individual:

print(url)

É importante salientar que os campos podem ser alterados a cada requisição. Por exemplo: na requisição realizada no dia 30/03/2023, o campo copyright era retornado, com o nome de quem possui direitos autorais sobre a imagem.

Entretanto, no dia 31/03/2023, este campo já não esteve na mensagem de resposta da API. Para garantir que você acessará todos os campos que deseja, faça um print() na variável que armazena todos os dados. No caso do nosso código, a variável dados. Dessa forma, você confere os campos retornados e acessa os que desejar.

Extra

É possível realizar integrações com interfaces criadas em HTML a partir de bibliotecas, tais como a pyscript, e exibir os dados diretamente na sua página da web. Consulte a documentação oficial neste link e faça o teste!

Neste artigo, apresentamos uma forma de consumir uma API utilizando Python e mostrar os dados retornados no próprio terminal.

Sucesso!

💡
As opiniões e comentários expressos neste artigo são de propriedade exclusiva de seu autor e não representam necessariamente o ponto de vista da Revelo.

A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.