Este projeto é uma implementação de uma API RESTful usando a arquitetura MSC (Model-Service-Controller), padrão REST, Docker, MySQL e NodeJS.
- Docker
- Docker Compose
- NodeJS
- MySQL
git clone https://github.com/pedroayresb/StoreManagerAPI
cd StoreManagerAPI
docker-compose up
npm install
A API estará disponível em http://localhost:3000.
Para rodar os testes da API, execute o seguinte comando:
npm run test
Esta API é responsável por gerenciar produtos, que possuem apenas nome e id.
Método HTTP: GET
Rota: /products
Exemplo de resposta:
[
{
"id": 1,
"name": "Martelo de Thor"
},
{
"id": 2,
"name": "Traje de encolhimento"
}, ...
]
Método HTTP: GET
Rota: /products/search?<nome_do_produto>
Exemplo de resposta:
[
{
"id": 1,
"name": "Martelo de Thor"
}
]
Método HTTP: POST
Rota: /products
Exemplo de requisição:
{
"name": "Novo Produto"
}
Exemplo de resposta:
{
"id": 3,
"name": "Novo Produto"
}
Método HTTP: GET
Rota: /products/:id
Exemplo de resposta:
{
"id": 1,
"name": "Martelo de Thor"
}
Método HTTP: PUT
Rota: /products/:id
Exemplo de requisição:
{
"name": "Produto Atualizado"
}
Exemplo de resposta:
{
"id": 1,
"name": "Produto Atualizado"
}
Método HTTP: DELETE
Rota: /products/:id Exemplo de resposta:
{
"message": "Produto deletado com sucesso"
}
Método HTTP: POST
Rota: /sales
Exemplo de requisição:
[
{
"productId": 1,
"quantity": 1
},
{
"productId": 2,
"quantity": 5
}
]
Exemplo de resposta:
{
"id": 3,
"itemsSold": [
{
"productId": 1,
"quantity": 1
},
{
"productId": 2,
"quantity": 5
}
]
}
Método HTTP: GET
Rota: /sales
Exemplo de resposta:
[
{
"saleId": 1,
"date": "2021-09-09T04:54:29.000Z",
"productId": 1,
"quantity": 2
},
{
"saleId": 1,
"date": "2021-09-09T04:54:54.000Z",
"productId": 2,
"quantity": 2
}
/* ... */
]
Método HTTP: GET
Rota: '/sales/:id'
Exemplo de resposta:
[
{
"date": "2021-09-09T04:54:29.000Z",
"productId": 1,
"quantity": 2
},
/* ... */
]
Método HTTP: DELETE
Rota: '/sales/:id'
Retorna um status 204 (No Content).
Método HTTP: PUT
Rota: '/sales/:id'
Esta rota permite atualizar uma venda existente por meio do ID da venda.
Entrada (corpo da requisição):
[
{
"productId": 1,
"quantity": 10
},
{
"productId": 2,
"quantity": 50
}
]
Exemplo de resposta:
{
"saleId": 1,
"itemsUpdated": [
{
"productId": 1,
"quantity":10
},
{
"productId": 2,
"quantity":50
}
]
}
Este projeto é apenas um exemplo de como criar uma API RESTful usando a tecnologia acima mencionada. Sinta-se à vontade para personalizar e melhorar este projeto de acordo com suas necessidades.