Esta foi uma API RESTful desenvolvida afim de consolidar os conhecimentos adquiridos sobre o padrão de arquitetura de software MSC( Model-Service-Controller).
A API construída é de um sistema de gerenciamento de vendas no formato dropshipping que será possível criar, visualizar, deletar e atualizar produtos e vendas.
Foram desenvolvidos testes unitários para essa API utilizando Mocha, Chai e Sinon.
Para o gerenciamento dos dados foi utlizado o banco de dados relacional MYSQL.
Construção de uma API RESTful aplicando o padrão de arquitetura de software MSC (Model-Service-Controller) e desenvolvimento de testes unitários.
Clone o projeto
git clone git@github.com:saulomagalhaes/Store-Manager.git
Entre no diretório do projeto
cd Store-Manager
Instale as dependências
npm install
Suba o container Docker
docker-compose up -d
Execute o container
docker exec -it store_manager bash
Inicie o servidor dentro do container
npm start
Ao subir o container docker acesse o link e tenha acesso a documentação de forma mais detalhada.
GET /products
GET /products/{id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
Obrigatório. O ID do produto que você quer buscar |
GET /products/search?q=NomeDoProduto
Parâmetro | Tipo | Descrição |
---|---|---|
q |
string |
Opcional. O Nome do produto para a busca |
Observação: Se não passar nenhum nome retorna todos os produtos.
POST /products
Body | Tipo | Descrição |
---|---|---|
name |
string |
Obrigatório. O Nome do produto a ser adicionado |
Exemplo:
{
"name": "Martelo de Thor"
}
PUT /products/{id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
Obrigatório. O ID do produto que você quer atualizar |
Body | Tipo | Descrição |
---|---|---|
name |
string |
Obrigatório. O Nome do produto a ser atualizado |
Exemplo:
{
"name": "Luva de Pedreiro"
}
DELETE /products/{id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
Obrigatório. O ID do produto que você quer deletar |
GET /sales
GET /sales/{id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
Obrigatório. O ID da venda que você quer buscar |
POST /sales
Body | Tipo | Descrição |
---|---|---|
productId |
string |
Obrigatório. O id da produto |
quantity |
number |
Obrigatório. A quantidade |
Exemplo:
[
{
"productId": 1,
"quantity":1
},
{
"productId":5 ,
"quantity":5
}
]
PUT /sales/{id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
Obrigatório. O ID da venda que você quer atualizar |
Body | Tipo | Descrição |
---|---|---|
productId |
string |
Obrigatório. O id do produto |
quantity |
number |
Obrigatório. A quantidade |
Exemplo:
[
{
"productId": 1,
"quantity":20
},
{
"productId": 2,
"quantity":30
}
]
DELETE /sales/{id}
Parâmetro | Tipo | Descrição |
---|---|---|
id |
string |
Obrigatório. O ID da venda que você quer deletar |
Para rodar os testes, execute o seguinte comando:
npm run test:mocha