Projeto base para curso de Microserviços com Java Spring Boot e MySQL.
API de usuários construída com Spring Boot, conectada a um banco MySQL, pronta para ser usada como microserviço em uma arquitetura maior. Inclui seed de dados, endpoints REST e estrutura recomendada para projetos reais.
- Java 17+
- Spring Boot
- Spring Data JPA
- MySQL (via Docker)
- Maven
- Java 17 ou superior
- Maven
- Docker (para rodar o MySQL)
Execute no terminal:
docker run --name meu-mysql -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=userservicedb -p 3306:3306 -d mysql:8.0O arquivo src/main/resources/application.properties já está configurado para conectar ao banco MySQL rodando em localhost:3306:
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/userservicedb?createDatabaseIfNotExist=true
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.initialization-mode=always- Clone o repositório
- Suba o MySQL (veja acima)
- Execute:
./mvnw spring-boot:run
O arquivo src/main/resources/data.sql insere usuários automaticamente ao iniciar o app:
INSERT INTO user (name, email) VALUES ('Martins', 'martins@email.com');
INSERT INTO user (name, email) VALUES ('Ana', 'ana@email.com');
INSERT INTO user (name, email) VALUES ('Carlos', 'carlos@email.com');src/main/java/com/java/microservicos/UserServiceAPI/
controllers/
models/
repositories/
services/
src/main/resources/
application.properties
data.sql
GET /users— Lista todos os usuáriosGET /users/{id}— Busca usuário por IDGET /users/by-ids?ids=1,2,3— Busca múltiplos usuários por IDsPOST /users— Cria um novo usuário (ou retorna existente se email já cadastrado)- Body:
{ "name": "Danilo", "email": "danilo@teste.com" }
- Body:
- O endpoint de criação valida nome, formato do email e unicidade do email.
- Se o email já existir, retorna o usuário existente.
- Respostas de erro seguem o padrão JSON com mensagem.
