API REST para gerenciamento de usuários e tarefas, com autenticação JWT, Spring Security, Spring Data JPA e banco H2 em memória.
- Java 26
- Spring Boot 4.0.5
- Spring Web MVC
- Spring Data JPA
- Spring Security
- JWT (
com.auth0:java-jwt) - H2 Database
- Maven
- Defina uma chave JWT (opcional, existe valor padrão no
application.properties):
$env:JWT_SECRET="sua_chave_forte"- Rode a aplicação:
.\mvnw.cmd spring-boot:run- A API sobe por padrão em:
http://localhost:8080
- Console H2:
http://localhost:8080/h2-console
JDBC URL: jdbc:h2:mem:todoapp
User: sa
Password: (vazio)
- Rotas públicas:
POST /users/registerPOST /users/login
- Demais rotas exigem token JWT no header:
Authorization: Bearer <token>
| Método | Rota | Auth | Descrição |
|---|---|---|---|
| POST | /users/register |
Não | Cadastra usuário |
| POST | /users/login |
Não | Autentica e retorna token |
| GET | /users/read |
Sim | Retorna usuário autenticado |
| PATCH | /users/edit |
Sim | Atualiza name e/ou email do usuário autenticado |
| POST | /tasks |
Sim | Cria tarefa |
{
"name": "Davi",
"email": "davi@email.com",
"password": "senha1234"
}{
"email": "davi@email.com",
"password": "senha1234"
}{
"name": "Davi Silva",
"email": "davi.silva@email.com"
}{
"title": "Estudar Spring Security",
"description": "Revisar autenticação com JWT"
}- Cadastro exige:
nameeemailnão vazios- email válido
- senha com pelo menos 8 caracteres, letras e números
- Edição de usuário exige ao menos um campo (
nameouemail) - E-mail duplicado retorna conflito (
409)