API REST para gerenciamento de tarefas com autenticação JWT e controle de acesso por usuário.
- Visão geral
- Stack técnica
- Arquitetura
- Endpoints da API
- Como rodar localmente
- Segurança
- Conceitos aplicados
- Licença
- Autor
Aplicação backend desenvolvida com Spring Boot que permite aos usuários gerenciar suas próprias tarefas com segurança. Cada usuário só acessa suas próprias tarefas após autenticação via JWT.
Funcionalidades principais:
- Autenticação e registro de usuários com JWT
- CRUD completo de tarefas
- Tarefas vinculadas ao usuário autenticado
- Status e prioridade de tarefas
- Tratamento de exceções centralizado
- Documentação interativa com Swagger/OpenAPI
| Tecnologia | Versão |
|---|---|
| Java | 21+ |
| Spring Boot | 4.0.3 |
| Spring Security | 7.x |
| Spring Data JPA | - |
| PostgreSQL | 18 |
| JWT (jjwt) | 0.12.6 |
| Swagger/OpenAPI | 2.8.6 |
| Maven | - |
src/main/java/
└── com/endriw/taskflow/
├── controller/ # Controllers REST
├── service/ # Regras de negócio
├── repository/ # Interfaces JPA Repository
├── model/ # Entidades JPA e Enums
├── dto/ # Data Transfer Objects
├── security/ # JWT, Filtros e configuração de segurança
└── exception/ # Handler global de exceções
| Método | Rota | Descrição |
|---|---|---|
POST |
/auth/register |
Registra novo usuário |
POST |
/auth/login |
Realiza login e retorna token JWT |
| Método | Rota | Descrição |
|---|---|---|
GET |
/tasks |
Lista tarefas do usuário autenticado |
GET |
/tasks/{id} |
Busca tarefa por ID |
POST |
/tasks |
Cria nova tarefa |
PUT |
/tasks/{id} |
Atualiza tarefa |
DELETE |
/tasks/{id} |
Remove tarefa |
- JDK 21+
- PostgreSQL rodando localmente na porta 5432
git clone https://github.com/EndriwEngSoft/taskflow-api.git
cd taskflow-api
psql -U postgres -c "CREATE DATABASE taskflow_db;"
cp src/main/resources/application.properties.example src/main/resources/application.properties
# ajuste as credenciais do banco e o segredo do JWT no arquivo copiado
./mvnw spring-boot:runAcesse a documentação: http://localhost:8080/swagger-ui/index.html
Todas as rotas /tasks requerem token JWT no header:
Authorization: Bearer {token}
O token é retornado ao registrar ou fazer login.
- Autenticação stateless com Spring Security e JWT
- Filtro de requisições com
OncePerRequestFilter - Associação de entidades com
@ManyToOnee@JoinColumn - Arquitetura em camadas (Controller → Service → Repository)
- Tratamento de exceções com
@RestControllerAdvice - Documentação automática com SpringDoc OpenAPI
Distribuído sob a licença MIT. Veja LICENSE para o texto completo.