Uma API RESTful desenvolvida em Java com Spring Boot para gerenciamento de tarefas, seguindo boas práticas de arquitetura, uso de DTOs, tratamento de exceções e organização em camadas.
Projeto ideal para estudo e portfólio, focado na transição de MVC tradicional para API REST profissional.
- Criar tarefas
- Listar todas as tarefas
- Buscar tarefa por ID
- Atualizar tarefas
- Excluir tarefas
- Filtrar tarefas por status (ex: CONCLUÍDA)
- Arquitetura em camadas (Controller, Service, Repository)
- API RESTful
- DTOs para entrada e saída de dados
- Mapeamento de entidades com JPA / Hibernate
- Validações com Bean Validation
- Tratamento global de exceções
- Boas práticas de versionamento e organização de código
- Java 17+
- Spring Boot
- Spring Data JPA
- MySQL
- Hibernate
- Maven
- OpenApi docs Spring (testes da API)
- railway (Para deploy da API)
com.example.taskapi
│
├── controller
│ └── TaskController.java
│
├── service
│ ├── TaskService.java
│ └── impl
│ └── TaskServiceImpl.java
│
├── repository
│ └── TaskRepository.java
│
├── dto
│ ├── TaskCreateDTO.java
│ ├── TaskUpdateDTO.java
│ ├── TaskResponseDTO.java
│ └── TaskListDTO.java
│
├── model
│ └── Task.java
│
├── exception
│ └── GlobalExceptionHandler.java
│
└── TaskApiApplication.java
- id
- title
- description
- status (PENDENTE, CONCLUIDA)
- createdAt
- updatedAt
| Método | Endpoint | Descrição |
|---|---|---|
| POST | /tasks |
Criar nova tarefa |
| GET | /tasks |
Listar todas as tarefas |
| GET | /tasks/{id} |
Buscar tarefa por ID |
| PUT | /tasks/{id} |
Atualizar tarefa |
| DELETE | /tasks/{id} |
Remover tarefa |
| GET | /tasks/status/concluida |
Listar tarefas concluídas |
{
"title": "Estudar Spring Boot",
"description": "Criar uma API REST completa",
"status": "PENDENTE"
}{
"id": 1,
"title": "Estudar Spring Boot",
"description": "Criar uma API REST completa",
"status": "PENDENTE",
"createdAt": "2025-12-23T20:10:00"
}- Clone o repositório
git clone https://github.com/seu-usuario/task-api.git-
Configure o banco de dados no
application.ymlouapplication.properties -
Execute o projeto
mvn spring-boot:runou Entre nesse link para teste -> https://managementtask-production.up.railway.app/swagger-ui/index.html se tiver problema o railway deve ter fechado. 4. Teste os endpoints via Postman ou Insomnia
Este projeto foi desenvolvido com foco em:
- Fixar conceitos de API REST com Spring Boot
- Entender a diferença entre MVC e REST
- Praticar DTOs, Services e Repositories
- Criar um projeto organizado e apresentável para portfólio
- Autenticação com JWT
- Paginação e ordenação
- Testes unitários
- Documentação com Swagger
- Integração com front-end (React)
Samuel Duarte Alves Estudante de Engenharia de Software | Java | Spring Boot | API REST
Se este projeto te ajudou, deixe uma estrela no repositório!