Este projeto é um CRUD (Create, Read, Update, Delete) de clientes usando Spring Boot e armazenamento em memória.
Ele é ideal para estudo de REST APIs, Spring Boot e arquitetura simples em camadas.
📦 com.pratica2.clientecrud
┣ 📂 model
┃ ┗ 📜 Cliente.java
┃ ↳ Define a estrutura do cliente (atributos: cpf, nome, email).
┣ 📂 repository
┃ ┗ 📜 ClienteRepository.java
┃ ↳ Simula o "banco de dados em memória" (lista de clientes).
┣ 📂 usecase
┃ ┗ 📜 ClienteUseCase.java
┃ ↳ Camada de lógica que conecta o controller ao repositório.
┗ 📂 controller
┗ 📜 ClienteController.java
↳ Recebe as requisições HTTP e chama o usecase para executar as operações.
- Java JDK 17+
- Maven
- IDE (VS Code, IntelliJ, Eclipse, etc.)
- Abra o terminal na pasta raiz do projeto (onde está o
pom.xml
). - Execute:
mvn clean install
mvn spring-boot:run
O Spring boot iniciará na porta 8080:
Tomcat started on port(s): 8080 (http)
Endpoint: POST /clientes
Descrição: Cria um novo cliente no sistema.
- URL:
http://localhost:8080/clientes
- Método:
POST
- Content-Type:
application/json
{
"cpf": "Cpf do cliente",
"nome": "Nome do cliente",
"email": "Email do cliente"
}
Status: 200 OK
{
"cpf": "Cpf do cliente",
"nome": "Nome do cliente",
"email": "Email do cliente"
}
Endpoint: GET /clientes
Descrição: Listar todos os clientes do sistema.
- URL:
http://localhost:8080/clientes
- Método:
GET
Status: 200 OK
[
{
"cpf": "Cpf do cliente1",
"nome": "Nome do cliente1",
"email": "Email do cliente1"
},
{
"cpf": "Cpf do cliente2",
"nome": "Nome do cliente2",
"email": "Email do cliente2"
}
]
Observação: Se não houver clientes cadastrados, retorna uma lista vazia []
Endpoint: GET /clientes/{cpf}
Descrição: Buscar um cliente pelo cpf.
- URL:
http://localhost:8080/clientes{cpf}
- Método:
GET
Status: 200 OK
[
{
"cpf": "Cpf do cliente1",
"nome": "Nome do cliente1",
"email": "Email do cliente1"
},
{
"cpf": "Cpf do cliente2",
"nome": "Nome do cliente2",
"email": "Email do cliente2"
}
]
Status: 404 Not Found
Endpoint: PUT /clientes{cpf}
Descrição: Atualiza um cliente pelo cpf.
- URL:
http://localhost:8080/clientes/{cpf}
- Método:
PUT
- Content-Type:
application/json
{
"cpf": "Cpf do cliente",
"nome": "Nome do cliente",
"email": "Email do cliente"
}
Status: 200 OK
{
"cpf": "Cpf do cliente",
"nome": "Nome do cliente",
"email": "Email do cliente"
}
Status: 404 Not Found
Endpoint: DELETE /clientes/{cpf}
Descrição: Deleta um cliente pelo cpf.
- URL:
http://localhost:8080/clientes{cpf}
- Método:
DELETE
Status: 204 No Content
Status: 404 Not Found
- Todos os dados são armazenados em memória
- Ao reiniciar a aplicação, todos os cliente do sistema serão perdidos.
- Salvar os dados do cliente em um banco de dados
- Criar um front-end para se comunicar com a api