Skip to content

Uma API REST construída com Node.js, Express e Mongoose. Este projeto serve como back-end para um sistema de livraria.

Notifications You must be signed in to change notification settings

caiolucasbittencourt/bookstore-api-express

Repository files navigation

Bookstore API Express

NodeJS Express.js MongoDB Docker Jest

Uma API REST construída com Node.js, Express e Mongoose. Este projeto serve como back-end para um sistema de livraria, permitindo o gerenciamento de livros e autores.

Tecnologias

  • Node.js 22 (Ambiente de execução JavaScript)
  • Express (Framework para construção de APIs)
  • Mongoose (ODM para modelagem de dados com o MongoDB)
  • MongoDB (Banco de dados NoSQL)
  • Docker (Containerização)
  • Jest (Framework de testes)
  • ESLint (Linting de código)
  • Prettier (Formatação de código)

Funcionalidades

  • CRUD de Livros: Criação, leitura, atualização e remoção de livros.
  • CRUD de Autores: Gerenciamento de autores.
  • Busca: Localização de livros e autores por ID.
  • Relacionamentos: Associação de dados entre livros e autores.

Pré-requisitos

  • Node.js 22+ (ou use o arquivo .nvmrc)
  • MongoDB (local ou Atlas)
  • Docker (opcional)

Instalação

git clone https://github.com/caiolucasbittencourt/bookstore-api-express.git
cd bookstore-api-express
npm install

Configuração

Crie um arquivo .env na raiz do projeto baseado no .env.example:

cp .env.example .env

Configure a variável DB_CONNECTION_STRING com sua string de conexão do MongoDB.

Executando

Desenvolvimento (local)

npm run dev

Produção

npm start

Docker

npm run docker:up      # Inicia os containers
npm run docker:down    # Para os containers
npm run docker:logs    # Visualiza logs da API
npm run docker:build   # Rebuild da imagem

Scripts

Script Descrição
npm run dev Inicia o servidor com hot-reload (nodemon)
npm start Inicia o servidor em produção
npm test Executa os testes
npm run test:watch Executa testes em modo watch
npm run test:coverage Executa testes com relatório de cobertura
npm run lint Executa o ESLint
npm run lint:fix Corrige erros do ESLint automaticamente
npm run format Formata o código com Prettier
npm run format:check Verifica formatação sem alterar
npm run docker:up Sobe os containers Docker
npm run docker:down Para os containers Docker

Rotas

Base

Método Rota Descrição
GET / Retorna informações da API

Exemplo de resposta:

{
  "name": "Bookstore API",
  "version": "1.0.0",
  "description": "API REST para gerenciamento de livros e autores",
  "endpoints": {
    "livros": "/livros",
    "autores": "/autores"
  },
  "documentation": "https://github.com/caiolucasbittencourt/bookstore-api-express"
}

Livros

Método Rota Descrição
GET /livros Lista todos os livros
GET /livros/:id Busca um livro por ID
POST /livros Cadastra um novo livro
PUT /livros/:id Atualiza um livro existente
DELETE /livros/:id Remove um livro

Autores

Método Rota Descrição
GET /autores Lista todos os autores
GET /autores/:id Busca um autor por ID
POST /autores Cadastra um novo autor
PUT /autores/:id Atualiza um autor existente
DELETE /autores/:id Remove um autor

About

Uma API REST construída com Node.js, Express e Mongoose. Este projeto serve como back-end para um sistema de livraria.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors