Skip to content

Latest commit

 

History

17 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📚 API de Biblioteca

Esta API foi desenvolvida para simular o gerenciamento de livros e empréstimos em uma biblioteca. O foco principal é demonstrar proficiência em back-end, segurança e arquitetura escalável utilizando Node.js.


💡 Arquitetura e Boas Práticas

O projeto segue a Arquitetura em Camadas (MVC), garantindo a separação de responsabilidades para facilitar a manutenção e escalabilidade:

  • Models: Lógica da aplicação.

  • Controllers: Faz o controle entre a requisição HTTP e os models.

  • Routes: Define os endpoints e mapeia as requisições HTTP.

  • Middleware: Funções intermediárias essenciais para segurança (JWT, Validação) e tratamento de erros.


🚀 Tecnologias

  • Express: Framework para roteamento HTTP e estrutura de middlewares.

  • Autenticação Segura (JWT): Utilizei JSON Web Tokens (JWT) para gerenciar a autenticação e autorização de usuários. O JWT é validado por um middleware em cada requisição a rotas protegidas, garantindo que apenas usuários autorizados possam manipular livros e empréstimos.

  • Criptografia (Bcrypt): Todas as senhas de usuários são hasheadas usando a biblioteca Bcrypt antes de serem armazenadas. Isso impede o armazenamento de dados sensíveis em texto puro, mitigando riscos em caso de vazamento de dados.

  • Identificadores (UUID): Para garantir a unicidade e prevenir a previsibilidade ou colisão de identificadores, utilizei UUIDs na criação de recursos.

    Arthur-Js Arthur-Express Arthur-Node

📖 Rotas Disponíveis

  • POST Register
  • POST Login
  • GET Books
  • GET Book/:id
  • POST CreateBook
  • PUT UpdateBook/:id
  • DELETE DeleteBook/:id
  • GET Loans
  • GET Loan/:id
  • POST CreateLoan
  • PUT ReturnLoan/:id
  • GET UsersLoan/:id

👉 Você pode testar todas as rotas diretamente no Postman através da collection abaixo:
Collection do Postman


📂 Estrutura de Arquivos

src/
├── controller/
│   ├── booksController.js
│   ├── loansController.js
│   └── usersController.js
│
├── error/
│   └── HttpError.js
│
├── middleware/
│   ├── authMiddleware.js
│   └── errorMiddleware.js
│
├── models/
│   ├── booksModel.js
│   ├── loansModel.js
│   └── usersModel.js
│
├── routes/
│   ├── apiRouter.js
│   └── authRouter.js
│
└── server.js

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages