Este repositório contém uma API desenvolvida em Java com Spring Boot, que simula o funcionamento de um sistema de e-commerce. A API permite o gerenciamento de clientes (customers), pedidos (orders) e produtos (products), abrangendo operações de criação, leitura, atualização e exclusão (CRUD) para cada entidade.
- Gerenciamento de clientes (Customer):
- Adicionar, listar, atualizar e excluir clientes.
- Gerenciamento de produtos (Product):
- Adicionar, listar, atualizar e excluir produtos.
- Gerenciamento de pedidos (Order):
- Criar pedidos vinculando clientes e produtos.
- Calcular automaticamente o valor total do pedido.
.
└── src
├── main
│ ├── java
│ │ └── com.example.ecommerce
│ │ ├── customer
│ │ │ ├── Customer.java # Entidade Customer
│ │ │ ├── CustomerController.java # Controller Customer
│ │ │ ├── CustomerRepository.java # Repository Customer
│ │ │ └── CustomerService.java # Service Customer
│ │ ├── order
│ │ │ ├── Order.java # Entidade Order
│ │ │ ├── OrderController.java # Controller Order
│ │ │ ├── OrderRepository.java # Repository Order
│ │ │ └── OrderService.java # Service Order
│ │ ├── product
│ │ │ ├── Product.java # Entidade Product
│ │ │ ├── ProductController.java # Controller Product
│ │ │ ├── ProductRepository.java # Repository Product
│ │ │ └── ProductService.java # Service Product
│ │ └── EcommerceApplication.java # Classe principal da aplicação
│ └── resources
│ ├── application.properties # Configurações da aplicação
│ └── data.sql # Dados de exemplo (se aplicável)
└── test
└── java
└── com.example.ecommerce # Testes unitários e de integração
- Java 17 ☕
- Spring Boot 🌱
- Spring Data JPA 🗄️
- H2 Database (em memória, para testes) 🛢️
- MySQL (ou PostgreSQL, para produção) 🛢️
- Maven ⚙️
Atributos:
id
: Identificador único.name
: Nome do cliente.email
: Email do cliente.
Atributos:
id
: Identificador único.name
: Nome do produto.price
: Preço do produto.
Atributos:
id
: Identificador único.customerId
: Identificador do cliente que fez o pedido.products
: Lista de produtos no pedido.totalValue
: Valor total do pedido, calculado automaticamente.
Request (POST):
/api/products
{
"name": "Notebook",
"price": 2500.0
}
Request (POST):
/api/orders
{
"customerId": 1,
"products": [1, 2]
}
Response (JSON):
{
"id": 1,
"customerId": 1,
"products": [
{
"id": 1,
"name": "Notebook",
"price": 2500.0
},
{
"id": 2,
"name": "Mouse",
"price": 150.0
}
],
"totalValue": 2650.0
}
- Testes unitários para os métodos de cada Service.
- Testes de integração para os endpoints dos Controllers.
- Clone o repositório:
git clone https://github.com/seuusuario/ecommerce-api.git cd ecommerce-api
- Configure o banco de dados em
application.properties
. - Execute o projeto:
mvn spring-boot:run
- Acesse a API em:
http://localhost:8080