Introdução
Neste tutorial, vamos explorar a poderosa habilidade de integrar APIs utilizando o framework Flask, que é uma das principais ferramentas para desenvolver aplicações web em Python. Aprender a integrar APIs é essencial para qualquer desenvolvedor, já que essa prática permite a troca de dados entre diferentes aplicações e serviços, transformando informações brutas em insights valiosos. Aqui, vamos desenvolver uma aplicação Flask que consome uma API de dados públicos, processa as informações e as apresenta de forma amigável. Este guia passo a passo é ideal para iniciantes ou para aqueles que desejam aprofundar seus conhecimentos em Flask e integração de APIs.
Etapas
Configuração do Ambiente de Desenvolvimento
Certifique-se de ter o Python e pip instalados em sua máquina. Verifique as versões instaladas usando os comandos `python –version` e `pip –version`. Caso não tenha, siga as instruções no site oficial do Python. Em seguida, crie um novo diretório para o seu projeto e ative um ambiente virtual para isolar as dependências do projeto.
commands# Verificar versões instaladas
python --version
pip --version
# Criar diretório para o projeto
mkdir flask_api_integration
cd flask_api_integration
# Criar ambiente virtual
python -m venv venv
# Ativar o ambiente virtual
source venv/bin/activate # No Linux ou macOS
venv\Scripts\activate # No WindowsInstalação do Flask e Dependências
Com o ambiente virtual ativado, instale o Flask e as bibliotecas necessárias para fazer requisições HTTP e manipulação de dados. Usaremos o `requests` para a requisição da API e `Flask-Cors` para gerenciar as políticas de CORS.
commandspip install Flask requests Flask-Cors
Estrutura do Projeto
Crie a estrutura básica de diretórios para o seu projeto. O código-fonte será armazenado em uma pasta chamada `src` e os dados gerados em um arquivo `data.json` na raiz do projeto.
commands# Criar estrutura de diretórios
mkdir src
touch data.jsonCriando a Aplicação Flask
Dentro da pasta `src`, crie um arquivo chamado `app.py` onde vamos definir a aplicação Flask e os endpoints necessários para interagir com a API. Abaixo está um exemplo de como estruturar o seu arquivo:
app.pyfrom flask import Flask, jsonify import requests from flask_cors import CORS app = Flask(__name__) CORS(app) @app.route('/api/data', methods=['GET']) def fetch_data(): response = requests.get('https://api.exemplo.com/dados') data = response.json() return jsonify(data) if __name__ == '__main__': app.run(debug=True, port=5000)
Consumo de API Externa
No endpoint `/api/data`, estamos fazendo uma requisição para uma API externa. Porém, antes de usá-la, você pode precisar de um token de autenticação, dependendo da API. Adaptar o código usando cabeçalhos de autenticação:
app.pyheaders = { 'Authorization': 'Bearer SEU_TOKEN_AQUI' } response = requests.get('https://api.exemplo.com/dados', headers=headers)
Executando a Aplicação
Agora que você criou sua aplicação Flask, é hora de executá-la. Certifique-se de estar no diretório `src` e execute o seguinte comando:
commandspython app.py
Testando o EndPoint
Com a aplicação em execução, você pode testar o endpoint usando ferramentas como Postman ou cURL. Aqui estão alguns exemplos de requisições que você pode fazer:
curl_examples# Obter dados da API
curl -X GET http://localhost:5000/api/dataSalvando os Dados em JSON
Para processar os dados obtidos, vamos salvar esses dados em um arquivo JSON. Adicione o seguinte código dentro da função `fetch_data()` após obter os dados:
app.pywith open('data.json', 'w') as json_file: json.dump(data, json_file)
Implementação de Testes Unitários
É importante garantir que sua aplicação funcione corretamente. Vamos usar a biblioteca `unittest` do Python para implementar testes básicos.
test_app.pyimport unittest from app import app class FlaskTestCase(unittest.TestCase): def setUp(self): self.app = app.test_client() self.app.testing = True def test_fetch_data(self): response = self.app.get('/api/data') self.assertEqual(response.status_code, 200) if __name__ == '__main__': unittest.main()
Executando os Testes
Para executar os testes, use o seguinte comando no terminal. Certifique-se de estar no diretório `src`:
commandspython -m unittest test_app.py
Conclusão
Neste tutorial, você aprendeu a criar uma aplicação Flask que consome uma API externa, processa os dados e os salva em um arquivo JSON. Através de exemplos práticos, você foi apresentado ao ciclo completo de desenvolvimento, incluindo a instalação de dependências, criação de endpoints, manipulação de dados e testes unitários. Essa experiência lhe proporcionará a base necessária para trabalhar com APIs em projetos reais e desenvolver aplicações mais complexas e informativas.