Skip to content

alexandrosousadev/entrega2-api

 
 

Repository files navigation

Feito pela LibraryLoops GitHub last commit

Banner do projeto

🚧 Library Loops - API 🚀 em desenvolvimento 🚧

Sobre

Entregas do Projeto

Como executar

Endpoints

Tecnologias

Autores

💻 Sobre o projeto

Esse projeto faz parte da entrega 2 - Desenvolvimento da API da equipe Library Loops do Bootcamp de desenvolvimento Fullstack do Avanti/Atlântico.

Ele servirá como o backend da aplicação para as operações necessárias de gestão de troca de livros e dos usuários.


📑 Entregas do projeto

  • Implementar uma API utilizando Node.js e Express;

  • Configurar Prisma ORM para interagir com o banco de dados PostgreSQL;

  • Desenvolver endpoints para as operações CRUD (Create, Read, Update, Delete) necessárias para a gestão de usuários e livros;

  • Implementar autenticação segura usando JWT (JSON Web Token);


🚀 Como executar o projeto

Pré-requisitos

Antes de começar, você vai precisar ter instalado em sua máquina as seguintes ferramentas:

Git, Node.js.

Além disto é bom ter um editor para trabalhar com o código como VSCode

🎲 Rodando o Backend (API)

  

# Clone este repositório

$  git  clone  git@github.com:LibraryLoops/entrega2-api.git

  

# Acesse a pasta do projeto no terminal/cmd

$  cd  entrega2-api

  

# Instale as dependências

$  npm  install

  

# Crie um arquivo .env de acordo com as variáveis de ambiente que estão no arquivo .env.example

  

# Migração a migração do banco de dados

$  npm run prisma:migrate

  

# Execute a aplicação

$  npm  run  dev

  

# O servidor inciará na porta:3000 - acesse http://localhost:3000

  

Run in Insomnia


📚 Endpoints

A API expõe os seguintes endpoints a partir da base URL localhost:3000:

Endpoints de /auth

  • POST /auth/login - Realiza o login de um usuário.

Endpoints de /usuarios

  • POST /usuarios - Cria um novo usuário.
  • GET /usuarios - Obtém todos os usuários.
  • GET /usuarios/:id - Obtém um usuário por ID.
  • GET /usuarios/:usuarioId/livros - Obtém os livros de um usuário por ID.
  • POST /usuarios/:usuarioId/livros - Cadastra um livro para um usuário.
  • PUT /usuarios/:id - Atualiza um usuário por ID.
  • PUT /usuarios/:usuarioId/livros/:id - Atualiza um livro de um usuário por ID.
  • DELETE /usuarios/:id - Exclui um usuário por ID.
  • DELETE /usuarios/:usuarioId/livros/:id - Exclui um livro de um usuário por ID.

Endpoints de /livros

  • GET /livros - Obtém todos os livros.
  • GET /livros/:id - Obtém um livro por ID.
  • POST /livros - Cria um novo livro.
  • PUT /livros/:id - Atualiza um livro por ID.
  • DELETE /livros/:id - Exclui um livro por ID.

Endpoints de /cargos

  • GET /cargos - Obtém todos os cargos.
  • GET /cargos/:id - Obtém um cargo por ID.
  • POST /cargos - Cria um novo cargo.
  • PUT /cargos/:id - Atualiza um cargo por ID.
  • DELETE /cargos/:id - Exclui um cargo por ID.

Endpoints de /troca-pedidos

  • GET /troca-pedidos - Obtém todos os pedidos de troca.
  • GET /troca-pedidos/:id - Obtém um pedido de troca por ID.
  • POST /troca-pedidos - Cria um novo pedido de troca.
  • PUT /troca-pedidos/:id - Atualiza um pedido de troca por ID.
  • DELETE /troca-pedidos/:id - Exclui um pedido de troca por ID.

Endpoints de /avaliacao-livros

  • GET /avaliacao-livros - Obtém todos as avaliações de livros.
  • GET /avaliacao-livros/:id - Obtém uma avaliação de um livro por ID.
  • POST /avaliacao-livros - Cria uma nova avaliação de um livro.
  • PUT /avaliacao-livros/:id - Atualiza uma avaliação de um livro por ID.
  • DELETE /avaliacao-livros/:id - Exclui uma avaliação de um livro por ID.

Endpoints de /livros-desejados

  • GET /livros-desejados - Obtém todos os livros desejados.
  • GET /livros-desejados/:id - Obtém um livro desejado por ID.
  • POST /livros-desejados - Cria um novo livro desejado.
  • PUT /livros-desejados/:id - Atualiza um livro desejado por ID.
  • DELETE /livros-desejados/:id - Exclui um livro desejado por ID.

Endpoints de /reputacao-usuarios

  • GET /reputacao-usuarios - Obtém todas as reaputações (avaliação entre usuários) de usuário.
  • GET /reputacao-usuarios/:id - Obtém uma avaliação de um usuário por ID.
  • POST /reputacao-usuarios - Cria uma nova avaliação de um usuário.
  • PUT /reputacao-usuarios/:id - Atualiza uma avaliação de um usuário por ID.
  • DELETE /reputacao-usuarios/:id - Exclui uma avaliação de um usuário por ID.

Endpoints de /usuario-cargos

  • GET /usuario-cargos - Obtém todos os cargos ddos usuários.
  • GET /usuario-cargos/:id - Obtém um cargo de um usuário por ID.
  • POST /usuario-cargos - Cria um novo cargo de um usuário.
  • PUT /usuario-cargos/:id - Atualiza um cargo de um usuário por ID.
  • DELETE /usuario-cargos/:id - Exclui um cargo de um usuário por ID.

Paginação - Parâmetros de Query

  • limite (opcional): Número de itens por página. Valor padrão é 5.
  • pagina (opcional): Número da página a ser retornada. Valor padrão é 1.
  • ordenacao (opcional): Campo e ordem de ordenação no formato campo:ordem. Valor padrão é id:asc.

Exemplo de Uso

GET /endpoint?limite=10&pagina=2&ordenacao=nome:desc

🛠 Tecnologias

As seguintes ferramentas foram usadas na construção do projeto:

API (NodeJS )

Utilitários


🦸 Autores


Dirceu dos Santos
🏊

Linkedin Badge Github Badge Gmail Badge


Alexandro Sousa
🚀

Linkedin Badge Github Badge Gmail Badge


Heloisa Cativo
🐭

Linkedin Badge Github Badge Gmail Badge


Thiago Batista
🚀

Linkedin Badge Github Badge Gmail Badge


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%