💡 Nota: este foi meu primeiro projeto de e-commerce. Uma versão evoluída e mais robusta, com webhooks idempotentes e controle de estoque, está em PizzariaAPI.
API REST em Spring Boot com:
- 🔒 Autenticação via JWT
- 💳 Integração com MercadoPago
- 📄 Documentação interativa com Swagger (Springdoc OpenAPI)
- 🐳 Docker & Docker Compose para execução local
- ☁️ Deploy automático no Railway com HTTPS
- ⏱️ Timer de tentativas de login com backoff exponencial
| Tecnologia | Descrição |
|---|---|
| ☕ Java 17 | Linguagem principal |
| 📦 Spring Boot 3.x | Framework backend Java |
| 🔒 Spring Security + JWT | Autenticação e autorização |
| 🗄️ Spring Data JPA | Persistência de dados |
| 📋 Springdoc OpenAPI | Documentação Swagger |
| 🧩 Maven | Gerenciamento de dependências |
| 🐳 Docker & Docker Compose | Containerização |
| ☁️ Railway | Deploy em nuvem |
| 💳 MercadoPago SDK | Integração de pagamentos |
| Método | Endpoint | Descrição | Auth |
|---|---|---|---|
| POST | /auth/login |
🗝️ Retorna JWT | ❌ |
| POST | /auth/create |
✍️ Registra novo usuário | ❌ |
| Método | Endpoint | Descrição | Auth |
|---|---|---|---|
| PUT | /user/update/{id} |
📝 Atualiza usuário | ✅ (self/admin) |
| DELETE | /user/delete/{id} |
🗑️ Remove usuário | ✅ (self/admin) |
| GET | /user/me |
👤 Dados do usuário logado | ✅ |
| Método | Endpoint | Descrição | Auth |
|---|---|---|---|
| POST | /product/create |
➕ Cria produto | ✅ admin |
| DELETE | /product/delete/{id} |
➖ Remove produto | ✅ admin |
| PUT | /product/update/{id} |
✏️ Atualiza produto | ✅ admin |
| GET | /product/get/{id} |
🔍 Busca produto por ID | ✅ admin |
| GET | /product/getall |
📜 Lista todos os produtos | ✅ user |
| Método | Endpoint | Descrição | Auth |
|---|---|---|---|
| POST | /payments |
💰 Cria pagamento via MercadoPago | ✅ |
| POST | /payments/webhook |
🔄 Webhook MercadoPago (atualiza status) | ❌ |
| Método | Endpoint | Descrição | Auth |
|---|---|---|---|
| POST | /purchase/create |
🛒 Cria nova compra | ✅ admin |
| GET | /purchase/me |
📋 Compras do usuário | ✅ user |
| GET | /purchase/getall |
📑 Lista todas as compras | ✅ admin |
| GET | /purchase/get/{id} |
🔎 Busca compra por ID | ✅ admin |
| PUT | /purchase/update/{id} |
♻️ Atualiza compra | ✅ admin |
| DELETE | /purchase/delete/{id} |
❌ Remove compra | ✅ admin |
Para testar o ambiente em produção, entre em contato para credenciais de teste.
1. Copiar o arquivo de exemplo:
cp application.properties.example application.properties2. Preencher em application.properties:
DB_HOST,DB_PORT,DB_NAME,DB_USERNAME,DB_PASSWORDMERCADO_ACCESS_TOKENSERVER_PORT
3. Executar:
mvn clean spring-boot:run4. (Opcional) Docker Compose:
docker-compose up --buildDisponível em /swagger-ui.html após subir a aplicação.
MIT License
Fernando Prado
- 💼 LinkedIn: fernando-prado21
- 🐙 GitHub: FernandoPPrado