Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

API REST de Livraria

Node.js Express.js MongoDB Mongoose

Esse projeto consiste em uma API REST para o gerenciamento de uma livraria, desenvolvida como parte do curso de APIs com Node.js com Express e MongoDB da Alura. A API permite realizar operações de CRUD (Create, Read, Update, Delete) em livros e autores.


Tecnologias Utilizadas

  • Node.js: Ambiente de execução JavaScript.
  • Express: Framework para Node.js, utilizado para o roteamento e gerenciamento de requisições.
  • MongoDB: Banco de dados NoSQL para o armazenamento dos dados.
  • Mongoose: Biblioteca para modelagem de objetos MongoDB, simplificando as interações com o banco de dados.

Funcionalidades da API

A API oferece os seguintes endpoints para interação:

Livros

  • GET /livros: Lista todos os livros cadastrados.
  • GET /livros/busca: Filtra livros por query parameters como título, editora, autor, e faixas de preço e páginas.
  • GET /livros/:id: Retorna um livro específico pelo seu ID.
  • POST /livros: Adiciona um novo livro ao catálogo.
  • PUT /livros/:id: Atualiza as informações de um livro existente.
  • DELETE /livros/:id: Remove um livro do catálogo.

Autores

  • GET /autores: Lista todos os autores cadastrados.
  • GET /autores/:id: Retorna um autor específico pelo seu ID.
  • POST /autores: Adiciona um novo autor.
  • PUT /autores/:id: Atualiza as informações de um autor existente.
  • DELETE /autores/:id: Remove um autor.

O que eu aprendi com o projeto

Esse projeto me ajudou muito no entendimento e desenvolvimento de APIs REST. Vou listar aqui o que pra mim foram os topicos principais desse projeto:

  • Arquitetura RESTful: Compreensão dos princípios de roteamento, métodos HTTP (GET, POST, PUT, DELETE) e a estrutura de URLs para criação de endpoints para cada metodo.
  • Manejo de Erros: Implementação de um middleware de tratamento de erros para capturar e responder a erros nativos do Node e erros do Mongoose.
  • Modelagem de Dados: Utilização do Mongoose pra criar os schemas e modelos para Livros e Autores da livraria, constrindo tambem a logica da relacao entre esses modelos.
  • Consultas Avançadas: Consultas dinâmicas utilizando query para filtragem (por título, autor, etc.), paginação e ordenação de resultados (essa parte foi muito interessante, tomei a liberdade de criar algumas regras do meu agrado).
  • Middleware: Utilização de middlewares do Express para processar as requisições, tanto na hora de fazer o tratamentode erros como tambem na etapa de paginacao das solicitacoes (tambem uma das partes mais interessantes de configurar).
  • Assincronismo e Promises: Uso de async/await para lidar com operações de banco de dados.

Logo da Alura

Projeto API com Node.js da Alura

👨‍💻 Autor

Vinicius Sousa

Vinicius Sousa
Desenvolvedor & Especialista em Automações

GitHub Email

💼 ViniDevs

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages