Skip to content

Sistema de gerenciamento de bibliotecas feito com Node.js e Express.

License

Notifications You must be signed in to change notification settings

Fransuelton/book-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BookAPI

GitHub repo size Npm version GitHub language count GitHub license GitHub last commit

Esta API Rest utiliza tecnologias como Node.js e Express junto com pacotes como o UUID para criar números de indentificação únicos aos usuários é também o Nodemon que é usado na hora de fazer alterações no projeto, reiniciando o projeto automaticamente.

Incluindo também um Middleware de verificação de usuário que está nas rotas que exigem autenticação de usuário, garantindo que apenas usuários autenticados possam acessar esses endpoints e realizar as operações que envolvem dados específicos.

Funcionalidade

  • Esse sistema permite aos usuários cadastrados adicionar novos livros com informações como nome, autor, editora e descrição. É também listar livros e deletar.

Tecnologias utilizadas

My Skills

Requisitos Funcionais

  • Cadastro de usuário
  • Cadastro de livro
  • Listagem de livros do usuário
  • Atualizar usuário
  • Deletar livro
  • Deletar usuário

Regras de negócio

  • Não é possível cadastrar um usuário com email já existente
  • Não é possível cadastrar mesmo livro
  • Não é possível deletar uma conta inexistente
  • Não é possível deletar um livro inexistente

Instalação

  1. Clone o repositório:

    git clone https://github.com/Fransuelton/book-api.git
    
  2. Instale as dependências:

    npm install
    
  3. Inicie o servidor utilizando o nodemon:

    npm run dev
    

Endpoints

Endpoints com Middleware de Verificação de Usuário

Os seguintes endpoints requerem autenticação de usuário e utilizam o middleware de verificação de usuário:

  • POST /books: Adicionar um novo livro associado a um usuário autenticado.
  • PUT /users/:id: Atualizar os dados de um usuário autenticado.
  • DELETE /users/:id: Excluir a conta de um usuário autenticado.

Criar Usuário


URL: /users

Método: POST

Corpo da Requisição:

{
  "name": "Nome do Usuário",
  "email": "email@example.com"
}

Obter Todos os Usuários


URL: /getUsers

Método: GET

Adicionar Livro


URL: /books

Método: POST

Corpo da Requisição:

{
  "name": "Nome do Livro",
  "author": "Autor do Livro",
  "company": "Editora do Livro",
  "description": "Descrição do Livro",
  "user_id": "ID do Usuário"
}

Atualizar Dados do Usuário


URL: /users/:id

Método: PUT

Parâmetros da URL: id (ID do Usuário)

Corpo da Requisição:

{
  "name": "Novo Nome do Usuário"
}

Obter Livros de um Usuário


URL: /books/:id

Método: GET

Parâmetros da URL: id (ID do Usuário)

Excluir Usuário


URL: /users/:id

Método: DELETE

Parâmetros da URL: id (ID do Usuário)

Excluir Livro


URL: /books/:id

Método: DELETE

Parâmetros da URL: id (ID do Livro)

Contribuição

Contribuições são bem-vindas! Se você encontrou um bug, tem uma ideia para uma nova funcionalidade ou quer melhorar a documentação, sinta-se à vontade para abrir uma issue ou enviar um pull request.