Uma API REST simples para sistema de e-commerce desenvolvida em Python com Flask.
- Flask 2.3.0 - Framework web minimalista
- Flask-SQLAlchemy 3.1.1 - ORM para integração com banco de dados
- Flask-Login 0.6.2 - Sistema de autenticação de usuários
- Flask-CORS 3.0.10 - Suporte para Cross-Origin Resource Sharing
- Werkzeug 2.3.0 - Biblioteca WSGI utility
- SQLite - Banco de dados local
- Padrão MVC - Separação entre modelos, views e controllers
- API RESTful - Endpoints seguindo convenções REST
- ORM Pattern - Mapeamento objeto-relacional com SQLAlchemy
- Authentication Pattern - Sistema de login baseado em sessões
- ✅ Autenticação de usuários (login/logout)
- ✅ Gerenciamento de produtos (CRUD)
- ✅ Sistema de carrinho de compras
- ✅ Busca de produtos
- ✅ Documentação da API com Swagger
- Python 3.7+
- pip
- Clone o repositório:
git clone <repository-url>
cd e-commerce-api- Crie um ambiente virtual:
python -m venv venv- Ative o ambiente virtual:
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate- Instale as dependências:
pip install -r requirements.txt- Execute a aplicação:
python app.pyA API estará disponível em http://127.0.0.1:5000
A documentação completa da API está disponível no arquivo swagger.yaml.
POST /login- Autenticação do usuárioPOST /logout- Logout do usuárioGET /api/products- Lista todos os produtosGET /api/products/{id}- Busca produto por IDGET /api/products/search- Busca produtos por termoPOST /api/products/add- Adiciona novo produto (requer autenticação)
O projeto utiliza SQLite com as seguintes entidades:
- User - Usuários do sistema
- Product - Produtos do e-commerce
- CartItem - Itens do carrinho de compras
O banco de dados é criado automaticamente em instance/ecommerce.db na primeira execução.
As principais configurações podem ser alteradas no arquivo app.py:
app.config['SECRET_KEY'] = 'your_secret_key' # Altere para produção
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///ecommerce.db'