Documentação da API no Postman
O Store Manager API é uma solução completa de gerenciamento de vendas por drop shipping. Esta API oferece operações de CRUD (Create, Read, Update, Delete) para facilitar o gerenciamento de vendas. Desenvolvida com foco na qualidade e seguindo a metodologia TDD (Test-Driven Development), a API adota uma arquitetura em camadas consistente com Model, Service e Controller (MSC).
Ferramentas Utilizadas
-
Tecnologias Principais:
- Node.js
- Express.js
- MySQL Server
-
Testes:
- Mocha
- Chai
- Sinon
-
Documentação:
- Swagger
- Postman
Utilize o Docker:
-
Clonar o Repositório
Primeiro, copie ou clone este repositório para o seu sistema local usando o Git:
git clone git@github.com:lionelsu/store-manager-api.git && cd store-manager-api
-
Iniciar o Contêiner Docker
Utilize o Docker Compose para iniciar o contêiner do Store Manager:
docker compose up -d
-
Acesse a documentação da API no navegador:
http://127.0.0.1:3001/v1/docs/
Para interagir com o Store Manager, você pode usar os seguintes comandos:
Visualização de Logs
docker logs -n 10 -f store_manager
Linha de Comando Interativa, usada para testar a aplicação
docker exec -it store_manager bash
Resetar o Banco de Dados (deve ser executado dentro da linha de comando interativa)
npm run db:reset
Produtos:
POST /products
: Cadastra um novo produto.GET /products
: Retorna todos os produtos cadastrados.GET /products/:id
: Retorna um produto específico pelo ID.GET /products/search
: Retorna produtos com base na consulta de nome.PUT /products/:id
: Atualiza um produto pelo ID.DELETE /products/:id
: Exclui um produto pelo ID.
Vendas:
POST /sales
: Cadastra uma nova venda.GET /sales
: Retorna todas as vendas cadastradas.GET /sales/:id
: Retorna uma venda específica pelo ID.PUT /sales/:saleId/products/:productId/quantity
: Atualiza a quantidade de um produto em uma venda.DELETE /sales/:id
: Exclui uma venda pelo ID.
Configuração
Variáveis de ambiente dentro do container:
MYSQL_USER: root
MYSQL_PASSWORD: password
MYSQL_HOSTNAME: db
MYSQL_PORT: 3306
PORT: 3001
-
Dentro da linha de comando interativa, você pode executar os seguintes testes:
- Testes Unitários:
npm run test:mocha
- Cobertura de Testes:
npm run test:coverage
- Testes de Mutação:
npm run test:mutation
Usei o Node.js
com o Express.js
como base da minha aplicação, permitindo criar facilmente endpoints HTTP
para atender às necessidades do sistema.
O banco de dados MySQL Server
foi escolhido para armazenar dados relacionados a produtos, vendas e outros elementos cruciais do sistema.
A qualidade do código foi garantida por meio de testes rigorosos usando Mocha
, Chai
e Sinon
. Esses testes avaliaram minuciosamente os endpoints, serviços e funções para garantir que tudo funcionasse corretamente.
Para documentar a API
, utilizei o Swagger
, que inclui informações sobre rotas, parâmetros e exemplos práticos.
Também disponibilizei uma coleção no Postman
para facilitar testes e interações com a API
.
Com essas etapas concluídas, estou confiante na entrega de uma API
sólida e funcional, pronta para atender às necessidades dos usuários.