Uma API RESTful para gerenciar pedidos, clientes, restaurantes e produtos em uma plataforma de delivery. Desenvolvido com Spring Boot seguindo Clean Architecture.
- Java 21+
- Spring Boot 3.5.4
- Spring Data JPA
- Maven
- H2 Database (dev/testes)
- Lombok (reduz código repetitivo)
- JDK 21 ou superior
- Apache Maven
- Clone o repositório:
git clone https://github.com/unnathLS/delivery-api-LuizHenrique.git 
- Navegue até o diretório:
cd delivery-api-LuizHenrique
- Inicie a aplicação:
./mvnw spring-boot:run 
Base URL: http://localhost:8080
| Método | Endpoint | Descrição | 
|---|---|---|
| GET | /health | Status e informações básicas | 
| GET | /info | Informações da aplicação | 
| Método | Endpoint | Descrição | 
|---|---|---|
| POST | /clientes | Cadastra novo cliente | 
| GET | /clientes | Lista todos os clientes | 
| GET | /clientes/ativos | Lista clientes ativos | 
| GET | /clientes/{id} | Busca cliente pelo ID | 
| PATCH | /clientes/ativar/{id} | Ativa cliente | 
| PATCH | /clientes/desativar/{id} | Desativa cliente | 
| PUT | /clientes/atualizar/{id} | Atualiza cliente pelo ID | 
| Método | Endpoint | Descrição | 
|---|---|---|
| POST | /restaurantes | Cadastra restaurante | 
| GET | /restaurantes/todos | Lista todos os restaurantes | 
| GET | /restaurantes/ativos | Lista restaurantes ativos | 
| PATCH | /restaurantes/ativar/{id} | Ativa restaurante | 
| PATCH | /restaurantes/desativar/{id} | Desativa restaurante | 
| Método | Endpoint | Descrição | 
|---|---|---|
| POST | /produtos/cadastrar-produto/{restauranteId} | Cadastra produto vinculado a restaurante | 
| GET | /produtos/todos | Lista todos os produtos | 
| Método | Endpoint | Descrição | 
|---|---|---|
| POST | /pedidos | Cria novo pedido | 
| GET | /pedidos/{id} | Lista pedidos | 
| PUT | /pedidos/{id}/confirmar | Confirma pedido | 
| PUT | /pedidos/{id}/preparo | Inicia preparo do pedido | 
| PUT | /pedidos/{id}/enviar | Envia pedido | 
| PUT | /pedidos/{id}/entregar | Entrega pedido | 
| PUT | /pedidos/{id}/cancelar | Cancela pedido | 
- controller/: Requisições HTTP e respostas
- service/: Lógica de negócio
- repository/: Interação com banco de dados
- entity/: Modelos/tabelas
- Endpoints de health check (/healthe/info)
- Listagem e ativação/inativação de clientes e restaurantes
- Cadastro de produtos vinculado ao restaurante
- Fluxo completo de status do pedido (confirmar, preparo, enviar, entregar, cancelar)