API RESTful utilizando a arquitetura em camadas
Aplicação que consiste em um sistema de gerenciamento de vendas de produtos, no qual é possível visualizar, pesquisar, cadastrar, editar e excluir informações. O projeto desenvolveu uma API de um CRUD (Create, Read, Update e Delete) de produtos e vendas, e construiu endpoints que irão ler e modificar o banco de dados MySQL usado na gestão de dados. Também foram elaborados testes para garantir as funcionalidade das implementações.
- Com o Doker:
- Instale as dependências:
npm install
- Inicie os containers:
docker-compose up -d
- Veja os logs da aplicação:
docker logs -n 10 -f store_manager
- Sem Docker:
- Instale as dependências:
npm install
- Inicie apenas o serviço db:
docker-compose up -d db
- Inicie a aplicação:
npm run dev:local
- Rodando os testes:
npm run test:mocha
: roda os testes do mochanpm run test:coverage
: mostra a cobertura geral dos testesnpm run test:mutation
: mostra a cobertura de mutações (framework Stryker)
Endpoints Criadas:
GET /products
eGET /products/:id
GET /sales
eGET /sales/:id
POST /products
POST /sales
PUT /products/:id
(endpoint para atualizar o nome de um produto)DELETE /products/:id
DELETE /sales/:id
PUT /sales/:saleId/products/:productId/quantity
(endpoint para atualizar a quantidade de um produto em uma venda)GET /products/search
(com o parâmetro de consulta q=searchTerm)
Feito a partir dos conhecimentos de Docker, API REST com Express, CRUD, MySQL, Mocha, Chai, Sinon, Chai-http, Arquitetura em Camadas (Camadas Routes, Middlewares, Controller, Service e Model).