Este projeto é uma API REST simples desenvolvida em Python + Flask, criada para simular a interação com um "banco de dados" de carros, utilizando uma lista em memória (bd.py).
O objetivo é demonstrar os conceitos básicos de CRUD (Create, Read, Delete) e a estrutura de uma aplicação Flask modular.
Criar uma API funcional que:
- Liste todos os carros disponíveis;
- Retorne um carro específico pelo seu ID;
- Permita cadastrar (POST) um novo carro;
- Permita deletar (DELETE) um carro existente.
Tudo isso sem utilizar um banco de dados real, apenas manipulando uma lista de dicionários em Python.
📂 api_flask_python
┣ 📜 main.py # Arquivo principal, inicializa o servidor Flask e define as rotas
┣ 📜 bd.py # "Banco de dados" simulado com uma lista de dicionários
┣ 📜 requirements.txt # Dependências do projeto
┗ 📜 README.md # Este arquivo 😄
- 🐍 Python 3.x
- 🌶️ Flask — microframework web para criação de APIs
- 💾 Lista de dicionários como banco de dados em memória
git clone https://github.com/gumeyohas/api_flask_python.git
cd api_flask_pythonvirtualenv env_name
source env_name/bin/activate # Linux / Mac
env_name\Scripts\activate # Windows
pip install flask
pip install -r requirements.txt
python main.py
O Flask iniciará em:
http://localhost:5000
Retorna a lista de todos os carros.
Exemplo de resposta:
[
{"id": 1, "marca": "Toyota", "modelo": "Corolla", "ano": 2021, "cor": "Prata", "preco": 118000},
{"id": 2, "marca": "Honda", "modelo": "Civic", "ano": 2020, "cor": "Preto", "preco": 110000}
]
Retorna um carro específico pelo ID.
Exemplo:
GET /carros/5
Resposta:
{
"mensagem": "Carro específico",
"carro": {
"id": 5,
"marca": "Volkswagen",
"modelo": "Gol",
"ano": 2018,
"cor": "Vermelho",
"preco": 42000
}
}
Adiciona um novo carro à lista.
Exemplo de corpo da requisição (JSON):
{
"marca": "Fiat",
"modelo": "Argo",
"ano": 2023,
"cor": "Branco",
"preco": 72000
}
Resposta:
{
"mensagem": "Carro adicionado com sucesso",
"carro": { ...novo carro... }
}
Remove um carro existente da lista.
Exemplo:
DELETE /carros/3
Resposta:
{
"mensagem": "Carro removido com sucesso",
"carro": { ...carro removido... }
}
Estrutura básica de uma API REST
Manipulação de listas e dicionários em Python
Uso de rotas dinâmicas no Flask (/carros/int:id)
Retorno de respostas JSON
Boas práticas de status HTTP (200, 404, etc.)
Implementar PUT /carros/ (para atualizar um carro)
Persistir dados em um banco de dados real (SQLite, PostgreSQL ou Oracle)
Adicionar validação de entrada (com Flask-RESTful ou Marshmallow)
Criar testes automatizados com pytest