/todo-list-api

Api to To Do list

Primary LanguageJava

Projeto To Do List

Este é um projeto simples de To Do List utilizando Java e Spring Boot. A aplicação oferece funcionalidades para criar, listar, editar e excluir tarefas, com persistência de dados usando H2 Database para desenvolvimento e PostgreSQL para produção. Conta com suporte básico a CORS para integração com frontends. A segurança é gerenciada com Spring Security, e a autenticação é feita por OAuth2. Consulte o arquivo README no link abaixo para mais informações e instruções de execução.

Requerimentos

  • JDK 21
  • Spring Boot 3.4.1
  • Maven 3.8+

Estrutura do projeto

  1. config: Responsável pela configuração de autenticação e autorização.

  2. controllers: Controladores responsáveis pelo gerenciamento de requisições HTTP e retorno de respostas.

  3. entities: Entidades que representam os objetos persistidos no banco de dados.

  4. projections: Projeções usadas para transferir dados de forma eficiente para operações específicas.

  5. repositories: Repositórios que gerenciam a persistência dos dados no banco.

  6. services: Contém a lógica de negócios e coordena a interação entre controladores, repositórios e outras camadas.

Setup do projeto

  1. Clone the repository:

    git clone https://github.com/seu-usuario/todo-list.git
    cd todo-list
  2. Importe o projeto para sua IDE:

    • Para IntelliJ IDEA: File -> Open -> Select the project folder.
    • Para Eclipse: File -> Import -> Existing Maven Projects -> Select the project folder.
  3. Inicie o projeto:

    • Execute o projeto a partir de sua IDE.

Endpoints da API

  1. Auth

    • [ Post ] Login: /oauth2/token
  2. User

    • [ Post ] New user: /users/register
  3. Task

    • [ Get ] All tasks by user: /tasks
    • [ Get ] Task by id: /tasks/{id}
    • [ Post ] New task: /tasks
    • [ Put ] Switch task status: /tasks
    • [ Del ] Task by id: /tasks

Postman Setup

Fork collection in Postman:

Run In Postman

Autor

Ruderson Florentino

https://ruderson.com.br

https://www.linkedin.com/in/rudersonvf

Licence

NPM