Este é um projeto de backend para um aplicativo de lista de tarefas (To-Do List). A aplicação foi desenvolvida como parte de um estudo prático sobre o ecossistema Spring, focando na construção de uma API RESTful completa com arquitetura em camadas e persistência de dados.
O objetivo é aplicar o entendimento dos conceitos fundamentais do Spring Boot, como:
- Injeção de Dependências (DI) e Inversão de Controle (IoC)
- Arquitetura em Camadas (Controller, Service, Repository)
- Criação de endpoints REST (
@RestController) - Persistência de dados com Spring Data JPA (
@Entity,JpaRepository) - Empacotamento da aplicação com Docker.
- Criar novas tarefas.
- Listar todas as tarefas cadastradas.
- Buscar uma tarefa específica por seu ID.
- Atualizar o status ou informações de uma tarefa.
- Deletar uma tarefa.
Este projeto foi construído com as seguintes tecnologias:
- Java 21
- Spring Boot
- Spring Web: Para a criação da API REST.
- Spring Data JPA: Para persistência de dados.
- H2 Database: Banco de dados relacional em memória.
- Docker: Para containerização da aplicação.
- Maven: Gerenciador de dependências e build.
Você pode executar a aplicação localmente usando o Maven ou via Docker.
- Java JDK 17 (ou superior) instalado.
- Maven instalado (ou use o wrapper
mvnw). - Docker Desktop instalado.
-
Clonar o repositório:
git clone [https://github.com/SEU-USUARIO/SEU-REPOSITORIO.git](https://github.com/SEU-USUARIO/SEU-REPOSITORIO.git) cd SEU-REPOSITORIO -
Execute o projeto:
./mvnw spring-boot:run
-
A aplicação estará disponível em
http://localhost:8080.
A URL base da API é http://localhost:8080/api/tarefas
| Método HTTP | Endpoint | Descrição | Exemplo de Body (JSON) |
|---|---|---|---|
GET |
/ |
Lista todas as tarefas cadastradas. | N/A |
GET |
/{id} |
Busca uma tarefa específica pelo ID. | N/A |
POST |
/ |
Cria uma nova tarefa. | {"titulo": "Estudar Docker", "descricao": "Fazer o curso da DIO", "concluida": false} |
PUT |
/{id} |
Atualiza uma tarefa existente. | {"titulo": "Estudar Docker", "descricao": "Curso concluído!", "concluida": true} |
DELETE |
/{id} |
Deleta uma tarefa pelo ID. | N/A |
Importante: O H2 é um banco em memória. Quando você executa via Docker, o banco de dados "vive" e "morre" dentro do container. Você ainda pode acessá-lo se a aplicação estiver rodando.
- URL: http://localhost:8080/h2-console
- Configurações de Login:
- JDBC URL:
jdbc:h2:mem:testdb - User Name:
sa - Password: (deixe em branco)
- JDBC URL: