Autobots é um microserviço REST desenvolvido em Spring Boot para gerenciamento completo de dados de clientes de uma oficina automotiva. O sistema permite cadastro, consulta, atualização e exclusão de clientes, incluindo seus documentos, endereços e telefones.
- Java 17 - Linguagem de programação
- Spring Boot 2.6.3 - Framework para desenvolvimento de aplicações Java
- Spring Data JPA - Persistência de dados com JPA/Hibernate
- H2 Database - Banco de dados em memória para desenvolvimento
- Lombok 1.18.34 - Redução de código boilerplate
- Springdoc OpenAPI 1.7.0 - Documentação automática da API (Swagger)
- Maven - Gerenciamento de dependências e build
O projeto segue uma arquitetura em camadas:
├── controles/ # Controllers REST (endpoints da API)
├── entidades/ # Entidades JPA (modelo de dados)
├── repositorios/ # Repositories Spring Data JPA
└── modelo/ # Classes auxiliares (Select, Atualizador, Verificadores)
- Cliente: Dados principais do cliente (nome, data de nascimento, data de cadastro)
- Documento: Documentos do cliente (CPF, RG, etc.)
- Endereco: Endereço residencial do cliente
- Telefone: Telefones de contato do cliente
Antes de executar o projeto, certifique-se de ter instalado:
-
Java JDK 17 ou superior
- Verifique a instalação executando no terminal:
java -version
- Verifique a instalação executando no terminal:
-
Maven (Opcional - o projeto inclui Maven Wrapper)
- O projeto possui o Maven Wrapper (
mvnw.cmd), portanto não é necessário instalar o Maven separadamente
- O projeto possui o Maven Wrapper (
git clone <https://github.com/KwMajor/autoBotsATVi>
cd automanagerOu navegue até a pasta do projeto se já tiver baixado:
cd c:\Desktop\Autobots\automanagerExecute o comando abaixo para compilar e verificar se tudo está correto:
.\mvnw.cmd clean compileSaída esperada: BUILD SUCCESS
Opção A - Usando Maven Wrapper (Recomendado):
.\mvnw.cmd spring-boot:runOpção B - Se você tiver Maven instalado globalmente:
mvn spring-boot:runOpção C - Executando o JAR compilado:
# Primeiro, compile e empacote
.\mvnw.cmd clean package
# Depois execute o JAR
java -jar target\automanager-0.0.1-SNAPSHOT.jarQuando a aplicação iniciar com sucesso, você verá mensagens como:
Tomcat started on port(s): 8080 (http) with context path ''
Started AutomanagerApplication in X.XXX seconds
Acesse a interface do Swagger para testar os endpoints:
http://localhost:8080/swagger-ui.html
Ou use o caminho alternativo:
http://localhost:8080/swagger
Para acessar o console do banco de dados H2:
http://localhost:8080/h2-console
Configurações de conexão:
- JDBC URL:
jdbc:h2:mem:autobots - Username:
sa - Password: (deixe em branco)
A API REST possui os seguintes recursos principais:
Clientes:
GET /cliente- Lista todos os clientesGET /cliente/{id}- Busca cliente por IDPOST /cliente- Cria novo clientePUT /cliente/{id}- Atualiza cliente existenteDELETE /cliente/{id}- Remove cliente
Documentos:
GET /documento- Lista todos os documentosGET /documento/{id}- Busca documento por IDPOST /documento- Cria novo documentoPUT /documento/{id}- Atualiza documento existenteDELETE /documento/{id}- Remove documento
Endereços:
GET /endereco- Lista todos os endereçosGET /endereco/{id}- Busca endereço por IDPOST /endereco- Cria novo endereçoPUT /endereco/{id}- Atualiza endereço existenteDELETE /endereco/{id}- Remove endereço
Telefones:
GET /telefone- Lista todos os telefonesGET /telefone/{id}- Busca telefone por IDPOST /telefone- Cria novo telefonePUT /telefone/{id}- Atualiza telefone existenteDELETE /telefone/{id}- Remove telefone
Endpoints de monitoramento da aplicação:
http://localhost:8080/actuator/health
http://localhost:8080/actuator/info
Para parar a aplicação, pressione Ctrl + C no terminal onde ela está executando.
POST http://localhost:8080/cliente
Content-Type: application/json
{
"nome": "João Silva",
"nomeSocial": "João",
"dataNascimento": "1990-05-15T00:00:00",
"dataCadastro": "2025-11-20T00:00:00",
"endereco": {
"rua": "Rua das Flores",
"numero": "123",
"bairro": "Centro",
"cidade": "São Paulo",
"estado": "SP",
"codigoPostal": "01234-567"
},
"documentos": [
{
"tipo": "CPF",
"numero": "123.456.789-00"
}
],
"telefones": [
{
"ddd": "11",
"numero": "98765-4321"
}
]
}GET http://localhost:8080/cliente
GET http://localhost:8080/cliente/1
As configurações da aplicação estão no arquivo src/main/resources/application.properties:
# Configuração do H2
spring.datasource.url=jdbc:h2:mem:autobots
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
# Console H2
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
# JPA/Hibernate
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
# Swagger/OpenAPI
springdoc.swagger-ui.path=/swagger
springdoc.api-docs.path=/v3/api-docsSe a porta 8080 já estiver em uso, você pode:
- Parar o processo que está usando a porta 8080
- Ou alterar a porta no
application.properties:server.port=8081
Configure a variável de ambiente JAVA_HOME:
# No PowerShell (temporário)
$env:JAVA_HOME = "C:\Program Files\Java\jdk-17"
# Ou configure permanentemente nas variáveis de ambiente do sistemaSe houver erro ao executar mvnw.cmd, tente:
# Garanta que está no diretório correto
cd c:\Users\mates\OneDrive\Desktop\Autobots\automanager
# Use Push-Location para garantir o contexto correto
Push-Location "c:\Autobots\automanager"
.\mvnw.cmd spring-boot:runO Hibernate cria automaticamente as seguintes tabelas:
cliente- Dados principais dos clientesdocumento- Documentos dos clientesendereco- Endereços dos clientestelefone- Telefones dos clientescliente_documentos- Relacionamento Cliente-Documento (N:N)cliente_telefones- Relacionamento Cliente-Telefone (N:N)
A aplicação já vem configurada com Spring Boot DevTools, que permite:
- Reinicialização automática ao alterar arquivos
- LiveReload para recarregar páginas automaticamente
automanager/
├── src/
│ ├── main/
│ │ ├── java/com/autobots/automanager/
│ │ │ ├── AutomanagerApplication.java (Classe principal)
│ │ │ ├── controles/ (Controllers REST)
│ │ │ ├── entidades/ (Entidades JPA)
│ │ │ ├── repositorios/ (Repositories)
│ │ │ └── modelo/ (Classes auxiliares)
│ │ └── resources/
│ │ └── application.properties (Configurações)
│ └── test/ (Testes unitários)
├── target/ (Arquivos compilados)
├── mvnw, mvnw.cmd (Maven Wrapper)
├── pom.xml (Configuração Maven)
└── README.md (Este arquivo)
Projeto desenvolvido para fins educacionais.
Desenvolvido com ❤️ usando Spring Boot