API para cadastro e listagem de livros com suporte a containerização
API Livros Vai Na Web 📚 + Docker 🐳
API para cadastro e listagem de livros com suporte a containerização
Pré-requisitos ⚙️
Opção 1 - Sem Docker
- Python 3.11+
- Git (opcional)
Opção 2 - Com Docker
- Docker Desktop (Windows/Mac)
- Docker Compose (vem com Docker Desktop)
🛠️ Instalação Tradicional (Sem Docker)
Siga as instruções anteriores para instalação manual
🐳 Execução com Docker (Recomendado)
1. Clonar repositório
git clone https://github.com/samuelrms/desafio-2-vnw-full-stack.git livros-api cd livros-api
2. Criar arquivo de ambiente
cp .env.example .env
3. Construir e executar
docker-compose up --build
4. Acessar a API
http://localhost:5000/
Comandos úteis
| Comando | Descrição | |---------|------------| |
docker compose up
docker compose down
docker compose logs
Estrutura do Projeto 📂
livros-api/ ├── app/ # Código da aplicação ├── docker-compose.yml # Configuração Docker ├── Dockerfile # Definição da imagem ├── .env.example # Modelo de variáveis de ambiente └── database.db # Banco de dados (gerado automaticamente)
Configuração de Ambiente ⚙️
Arquivo .env
# Modo de desenvolvimento (1 = ativo, 0 = desativo) FLASK_DEBUG=1 # URL do banco de dados DATABASE_URL=sqlite:///database.db
Testando com Docker 🔍
# Cadastrar livro curl -X POST -H "Content-Type: application/json" -d '{ "titulo": "Arquitetura Limpa", "categoria": "TI", "autor": "Robert C. Martin", "imagem_url": "http://exemplo.com/clean-arch.jpg" }' http://localhost:5000/doar # Listar livros curl http://localhost:5000/livros
Solução de Problemas Docker 🐛
Erro: "Porta já em uso"
# Encerre outros containers docker-compose down
Erro: "Arquivo .env não encontrado"
cp .env.example .env
Reconstruir containers
docker-compose down && docker-compose up --build
Vantagens do Setup Docker ✅
- Não precisa instalar Python localmente
- Ambiente isolado e consistente
- Fácil compartilhamento do projeto
- Configuração replicável em qualquer máquina
🤝 Contribuição
Siga os mesmos passos anteriores, usando Docker para desenvolvimento:
docker-compose exec web bash # Acessar container
Escolha seu método preferido e divirta-se codando! 🎮💻
Documentação Docker | Site Vai Na Web
Feito com ❤️ por Samuel Ramos