Skip to content

About

API REST de tarefas com autenticação JWT stateless: cada usuário acessa só as próprias tarefas. Tratamento global de exceções e documentação Swagger/OpenAPI. Java, Spring Boot, PostgreSQL.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

13 Commits

Folders and files

Repository files navigation

TaskFlow API

API REST para gerenciamento de tarefas com autenticação JWT e controle de acesso por usuário.

Java Spring Boot PostgreSQL License: MIT


Índice

  1. Visão geral
  2. Stack técnica
  3. Arquitetura
  4. Endpoints da API
  5. Como rodar localmente
  6. Segurança
  7. Conceitos aplicados
  8. Licença
  9. Autor

Visão geral

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

Stack técnica

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 -

Arquitetura

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

Endpoints da API

Auth

Método Rota Descrição
POST /auth/register Registra novo usuário
POST /auth/login Realiza login e retorna token JWT

Task

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

Como rodar localmente

Pré-requisitos

  • JDK 21+
  • PostgreSQL rodando localmente na porta 5432

Passos

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:run

Acesse a documentação: http://localhost:8080/swagger-ui/index.html


Segurança

Todas as rotas /tasks requerem token JWT no header:

Authorization: Bearer {token}

O token é retornado ao registrar ou fazer login.


Conceitos aplicados

  • Autenticação stateless com Spring Security e JWT
  • Filtro de requisições com OncePerRequestFilter
  • Associação de entidades com @ManyToOne e @JoinColumn
  • Arquitetura em camadas (Controller → Service → Repository)
  • Tratamento de exceções com @RestControllerAdvice
  • Documentação automática com SpringDoc OpenAPI

Licença

Distribuído sob a licença MIT. Veja LICENSE para o texto completo.


Autor

Endriw Colvara Bento
LinkedIn Portfólio

About

API REST de tarefas com autenticação JWT stateless: cada usuário acessa só as próprias tarefas. Tratamento global de exceções e documentação Swagger/OpenAPI. Java, Spring Boot, PostgreSQL.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages