Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 

Repository files navigation

📝 To-do List API

API RESTful para gerenciamento de tarefas, desenvolvida com Java e Spring Boot.

🚀 Tecnologias

  • Java 21
  • Spring Boot 3.4
  • Spring Data JPA
  • Spring Validation
  • PostgreSQL
  • Springdoc OpenAPI (Swagger)
  • JUnit 5 + Mockito
  • Maven

📋 Funcionalidades

  • ✅ Criar tarefas
  • ✅ Listar todas as tarefas
  • ✅ Buscar tarefa por ID
  • ✅ Atualizar tarefa
  • ✅ Deletar tarefa
  • ✅ Validação de dados de entrada
  • ✅ Tratamento global de erros

🏗️ Arquitetura

O projeto segue uma arquitetura em camadas:

Controller  →  recebe e responde requisições HTTP
Service     →  contém as regras de negócio
Repository  →  comunicação com o banco de dados
src/
├── controller/
│   └── TarefaController.java
├── service/
│   └── TarefaService.java
├── repository/
│   └── TarefaRepository.java
├── model/
│   └── Tarefa.java
├── dto/
│   ├── TarefaRequestDTO.java
│   ├── TarefaResponseDTO.java
│   └── ErroResponseDTO.java
└── exception/
    ├── TarefaNaoEncontradaException.java
    └── GlobalExceptionHandler.java

⚙️ Pré-requisitos

  • Java 21+
  • Maven 3.8+
  • PostgreSQL 15+

🔧 Configuração e execução

1. Clone o repositório

git clone https://github.com/Baister/todolist.git
cd todolist

2. Configure o banco de dados

Crie um banco de dados PostgreSQL chamado todolist:

CREATE DATABASE todolist;

3. Configure as variáveis de ambiente

Edite o arquivo src/main/resources/application.properties com suas credenciais:

spring.datasource.url=jdbc:postgresql://localhost:5432/todolist
spring.datasource.username=postgres
spring.datasource.password=SUA_SENHA

4. Execute o projeto

mvn spring-boot:run

A API estará disponível em http://localhost:8080.


📖 Documentação

Com a aplicação rodando, acesse a documentação interativa pelo Swagger:

http://localhost:8080/swagger-ui/index.html

🔗 Endpoints

Método Endpoint Descrição
GET /tarefas Lista todas as tarefas
GET /tarefas/{id} Busca uma tarefa pelo ID
POST /tarefas Cria uma nova tarefa
PUT /tarefas/{id} Atualiza uma tarefa
DELETE /tarefas/{id} Remove uma tarefa

Exemplo de requisição — POST /tarefas

Request:

{
  "titulo": "Estudar Spring Boot",
  "descricao": "Aula sobre DTOs e validações"
}

Response — 201 Created:

{
  "id": 1,
  "titulo": "Estudar Spring Boot",
  "descricao": "Aula sobre DTOs e validações",
  "concluida": false
}

Exemplo de resposta de erro — GET /tarefas/999

Response — 404 Not Found:

{
  "status": 404,
  "mensagem": "Tarefa não encontrada com id: 999"
}

✅ Testes

Para executar os testes automatizados:

mvn test

👨‍💻 Autor

Desenvolvido por Gustavo Baister

GitHub

About

toDoList mais um projeto focado em prática de API, com a linguagem de programação JAVA.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages