Uma API completa para cadastro, autenticação e gerenciamento de usuários, com segurança baseada em JWT e migrações de banco gerenciadas pelo Liquibase.
- Linguagem: Java 21
- Framework: Spring Boot 3
- Segurança: Spring Security + JWT (Auth0/java-jwt)
- Persistência: Spring Data JPA + PostgreSQL
- Migrations: Liquibase
- Mapeamento: MapStruct + Lombok
- Validação: Bean Validation (Jakarta)
- Containerização: Docker (multi-stage build) + Docker Compose
- Testes: JUnit 5, Spring Boot Test, Mockito
- Docker
- Docker Compose
-
Clone o repositório:
git clone https://github.com/FabioLutz/API-RESTful.git cd API-RESTful -
Crie uma cópia do
.env.examplenomeando de.env -
Inicie os serviços:
docker compose up --build
-
Aguarde até que todos os serviços estejam disponíveis
-
A API estará rodando em http://localhost:8080
Rotas como PATCH /profile exigem o header Authorization: Bearer <token>.
O token é validado usando a biblioteca java-jwt com secret do .env.
POST /login
Autentica usuário e retorna token JWT
Corpo:Exemplo de resposta bem-sucedida (200 OK):{ "email": "name@email.mail", "password": "Password" }{ "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.xxxxx" }
-
POST /register
Registra novo usuário (verifica duplicidade de e-mail/username)
Corpo:{ "email": "name@email.mail", "username": "nome", "password": "Password" } -
GET /profile/{username}
Retorna dados públicos do usuário. -
PATCH /profile
Altera senha Corpo:{ "email": "name@email.mail", "password": "Password", "newPassword": "NewPassword" } -
DELETE /profile
Deleta conta
Corpo:{ "email": "name@email.mail", "password": "Password" }