Esta é uma API para gerenciar tarefas (CRUD) desenvolvida com Spring Boot, Spring MVC, Spring Data JPA e MySQL. O projeto foi criado como parte de um desafio para desenvolvedores backend júnior, com foco em boas práticas de programação e uso de tecnologias modernas.
- Spring Boot
- Spring MVC
- Spring Data JPA
- SpringDoc OpenAPI 3
- MySQL
O objetivo deste projeto é implementar uma API RESTful para gerenciar tarefas, permitindo operações CRUD (Criar, Ler, Atualizar e Deletar). A API foi desenvolvida com foco em boas práticas como SOLID, DRY, YAGNI e KISS, além de utilizar Spring Data JPA para consultas ao banco de dados e SpringDoc OpenAPI 3 para documentação automática das rotas.
- POST /todos: Cria uma nova tarefa.
- GET /todos: Lista todas as tarefas.
- PUT /todos/{id}: Atualiza uma tarefa existente.
- DELETE /todos/{id}: Remove uma tarefa.
Antes de rodar a aplicação, certifique-se de ter os seguintes itens instalados:
git clone https://github.com/seu-usuario/todo-list-api.git
cd todo-list-api- Crie um banco de dados MySQL chamado todo_list.
- Configure as credenciais do banco de dados no arquivo application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/todo_list
spring.datasource.username=seu_usuario
spring.datasource.password=sua_senha
spring.jpa.hibernate.ddl-auto=update- Execute o seguinte comando para construir o projeto:
./mvnw clean packagejava -jar target/todolist-0.0.1-SNAPSHOT.jarA API estará disponível em http://localhost:8080.
- Para explorar e testar as rotas da API, acesse o Swagger em:
[java -jar target/todolist-0.0.1-SNAPSHOT.jar](http://localhost:8080/swagger-ui.html)todo-list-api/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── exemplo/
│ │ │ ├── controller/
│ │ │ │ └── TodoController.java
│ │ │ ├── model/
│ │ │ │ └── Todo.java
│ │ │ ├── repository/
│ │ │ │ └── TodoRepository.java
│ │ │ ├── service/
│ │ │ │ └── TodoService.java
│ │ │ └── DesafioTodoListApplication.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── data.sql
│ └── test/
├── target/
├── pom.xml
├── README.md
└── .gitignore
http POST :8080/todos nome="Todo 1" descricao="Desc Todo 1" prioridade=1http GET :8080/todoshttp PUT :8080/todos/1 nome="Todo 1 Up" descricao="Desc Todo 1 Up" prioridade=2http DELETE :8080/todos/1- Copie o trecho acima.
- Cole no seu arquivo
README.mdno GitHub. - Pronto! O Markdown já está formatado corretamente, e os blocos de código serão exibidos como esperado. 😊
Este projeto foi desenvolvido como parte de um desafio para desenvolvedores backend júnior, com base em um vídeo do YouTube. O objetivo principal foi praticar o uso de Spring Boot, Spring Data JPA e MySQL em uma API RESTful.
Caso deseje contribuir, fique à vontade! Para sugestões e melhorias, você pode fazer um fork do repositório, criar uma branch com suas mudanças e enviar um pull request.
Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para mais detalhes.
Este projeto foi desenvolvido por Laura Trigo com base no vídeo Desafio Vagas: API de tarefas com Spring Boot!.