API REST para um sistema de delivery (projeto acadêmico – Arquitetura de Sistemas/FAT). O projeto segue arquitetura em camadas (Controller, Service, Repository) e já possui CRUD de Clientes, documentação OpenAPI/Swagger, endpoints de Actuator e base para autenticação JWT.
- Clientes
- CRUD completo: criar, listar, buscar por ID, buscar por email, buscar por nome, atualizar
- Inativação (soft delete) e endpoint para alternar status (
PATCH /api/clientes/{id}/status) - Validações com Jakarta Validation
- Persistência
- H2 em memória
- JPA/Hibernate
- Observabilidade / Docs
- Swagger/OpenAPI via Springdoc (
/swagger-ui.html,/v3/api-docs) - Actuator habilitado (
/actuator/health,/actuator/info,/actuator/prometheus, etc.)
- Swagger/OpenAPI via Springdoc (
- Segurança (em andamento)
- Configuração stateless e filtro JWT (base)
- Utilitário
JwtUtilpara gerar/validar tokens (ainda há métodos TODO) - Roles definidas (ADMIN, CLIENTE, RESTAURANTE, ENTREGADOR, USER)
| Tecnologia | Versão |
|---|---|
| Java | 17 |
| Spring Boot | 4.0.2 |
| Maven | 3.8+ |
| Spring Data JPA | — |
| H2 | Runtime |
| Spring Security | — |
| Springdoc OpenAPI | — |
| Actuator/Micrometer | — |
- Java 17+
- Maven 3.8+ (ou Maven Wrapper)
git clone https://github.com/SilasJCSP/delivery-tech-fat.git
cd delivery-tech-fat
# build
./mvnw clean install -DskipTests
# run
./mvnw spring-boot:runAplicação: http://localhost:8080
- Console:
http://localhost:8080/h2-console - JDBC URL:
jdbc:h2:mem:delivery - User:
sa| Password: (vazio)
| Método | Endpoint | Descrição |
|---|---|---|
| POST | /api/clientes |
Cadastrar cliente |
| GET | /api/clientes |
Listar clientes ativos |
| GET | /api/clientes/{id} |
Buscar por ID |
| GET | /api/clientes/email/{email} |
Buscar por email |
| GET | /api/clientes/buscar?nome=... |
Buscar por nome |
| PUT | /api/clientes/{id} |
Atualizar |
| DELETE | /api/clientes/{id} |
Inativar |
| PATCH | /api/clientes/{id}/status |
Alternar status |
- Swagger UI:
/swagger-ui.html - OpenAPI JSON:
/v3/api-docs - Actuator:
/actuator(verapplication.propertiespara endpoints expostos)
./mvnw test- Finalizar autenticação/autorização JWT (Login/Refresh, roles e proteção por endpoint)
- Pedidos (endpoints, regras de negócio e relacionamento com cliente)
- Migração para PostgreSQL
- Testes de integração
- Docker e CI/CD (GitHub Actions)
Silas — Projeto acadêmico FAT (2026)
Status: 🟡 Em Desenvolvimento | Última atualização: 2026-02-20