Projeto educacional de finalização do Módulo IV do curso de Web Dev Full Stack da Resilia Educação.
Projeto realizado utilizando o Node.js com framework Express. Como banco de dados, foi utilizado o SQLite.
- Pré-requisitos
- Packages
- Instalação
- Inicializando banco de dados
- Testes
- Rotas
- Hospedagem no Heroku
- Desenvolvido por
- Node.js v.16.15.1
- NPM v.8.11.0
Abra o terminal/Powershell e rode os comandos abaixo:
Clonando o repositório:
git clone https://github.com/lelaranja/APIRest_Pub.git
Entrando na pasta:
cd APIRest_Pub
Instalando apenas pacotes necessários para funcionamento da API:
npm i --production
Instalando todos os pacotes:
npm install
Rodando o projeto:
npm start
Para iniciar um banco de dados novo com os dados padrão, delete o arquivo database.db
e rode o comando abaixo:
npm run db
Necessária a instalação de todas as dependências para o funcionamento.
npm test
-
Rota GET
Não é necessária autenticação
-
Rotas POST/PUT
É necessário uma autenticação de key = user, podendo ser o value = 'sub' ou value = 'admin'
-
Rota DELETE
É necessário uma autenticação de key = user e value = 'admin'
-
GET /client
Esquema da resposta
{ "msg": "Aqui estão seus dados", "dados": [ { "id": 1, "nome": "Gilson", "telefone": "2198744523", "email": "[email protected]" }
-
GET /client/nome/:nome
Esquema da resposta
{ "msg": "Aqui estão seus dados", "dados": { "id": 2, "nome": "Josélia", "telefone": "2196654721", "email": "[email protected]" } }
-
POST /client
Esquema da requisição
{ "nome": "Sabrina", "telefone": "1196454756", "email": "[email protected]" }
Esquema da resposta
{ "msg": "dados inseridos com sucesso", "dados": { "nome": "Sabrina", "telefone": "1196454756", "email": "[email protected]" } }
-
PUT /client/nome/:nome
Esquema da requisição
{ "nome": "Letícia", "telefone": "1198762345", "email": "[email protected]" }
Esquema da resposta
{ "msg": "Dados atualizados com sucesso" }
-
DELETE /client/nome/:nome
Esquema da resposta
{ "msg": "Dados deletados com sucesso onde nome = Letícia" }
-
GET /staff
Esquema da resposta
{ "msg": "Aqui estão seus dados", "dados": [ { "id": 1, "nome": "Leovegildo Moura", "cpf": "23912345014", "datadenascimento": "10/04/2000" },
-
GET /staff/nome/:nome
Esquema da resposta
{ "msg": "Aqui estão seus dados", "dados": { "id": 1, "nome": "Leovegildo Moura", "cpf": "23912345014", "datadenascimento": "10/04/2000" } }
-
POST /staff
Esquema da requisição
{ "nome": "Rodrigo Erik", "cpf": "34576890234", "datadenascimento": "20/05/1998" }
Esquema da resposta
{ "msg": "dados inseridos com sucesso", "dados": { "nome": "Rodrigo Erik", "cpf": "34576890234", "datadenascimento": "20/05/1998" } }
-
PUT /staff/nome/:nome
Esquema da requisição
{ "nome": "Willian Igor", "cpf": "40567890234", "datadenascimento": "10/02/1995" }
Esquema da resposta
{ "msg": "Dados atualizados com sucesso" }
-
DELETE /staff/nome/:nome
Esquema da resposta
{ "msg": "Dados deletados com sucesso onde nome = Willian Igor" }
-
GET /menu
Esquema da resposta
{ "msg": "Aqui estão seus dados", "dados": [ { "id": 1, "produto": "Calabresa acebolada", "valor": 25, "descricao": "Uma porçao de 400 gramas de calabresa com cebola frita" },
-
GET /menu/produto/:produto
Esquema da resposta
{ "msg": "Aqui estão seus dados", "dados": { "id": 2, "produto": "Calabresa acebolada", "valor": 25, "descricao": "Uma porçao de 400 gramas de calabresa com cebola frita" } }
-
POST /menu
Esquema da requisição
{ "produto": "Mojito", "valor": 25, "descricao": "coquetel à base de rum branco originário de Cuba" }
Esquema da resposta
{ "msg": "dados inseridos com sucesso", "dados": { "produto": "Mojito", "valor": 25, "descricao": "coquetel à base de rum branco originário de Cuba" } }
-
PUT /menu/produto/:produto
Esquema da requisição
{ "produto": "Tequila", "valor": 15, "descricao": "Dose de 10 ml da Tequila José Cuervo" }
Esquema da resposta
{ "msg": "Dados atualizados com sucesso" }
-
DELETE /menu/produto/:produto
Esquema da resposta
{ "msg": "Dados deletados com sucesso onde produto = Tequila" }
-
GET /storage
Esquema da resposta
{ "msg": "Aqui estão seus dados", "dados": [ { "id": 1, "fabricante": "Ambev", "qtdProdutos": 150, "nomeProduto": "Antarctica" }
-
GET /storage/nomeProduto/:nomeProduto
Esquema da resposta
{ "msg": "Aqui estão seus dados", "dados": { "id": 2, "fabricante": "GrupoPetropolis", "qtdProdutos": 2, "nomeProduto": "Itaipava" } }
-
POST /storage
Esquema da requisição
{ "fabricante": "Seara", "qtdProdutos": 90, "nomeProduto": "Calabresa" }
Esquema da resposta
{ "msg": "dados inseridos com sucesso", "dados": { "fabricante": "Seara", "qtdProdutos": 90, "nomeProduto": "Calabresa" } }
-
PUT /storage/nomeProduto/:nomeProduto
Esquema da requisição
{ "fabricante": "Sadia", "qtdProdutos": 80, "nomeProduto": "Calabresa" }
Esquema da resposta
{ "msg": "Dados atualizados com sucesso" }
-
DELETE /storage/nomeProduto/:nomeProduto
Esquema da resposta
{ "msg": "Dados deletados com sucesso onde produto = Calabresa" }
-
GET /suppliers
Esquema da resposta
{ "msg": "Aqui estão seus dados", "dados": [ { "id": 1, "nome": "Friboi", "telefone": "1145236984", "cnpj": "12345678956111", "produto": "carne" },
-
GET /suppliers/cnpj/:cnpj
Esquema da resposta
{ "msg": "Aqui estão seus dados", "dados": { "id": 1, "nome": "Friboi", "telefone": "1145236984", "cnpj": "12345678956111", "produto": "carne" } }
-
POST /suppliers
Esquema da requisição
{ "nome": "Quitanda Fukushima", "telefone": "11458781116", "cnpj": "32678912341518", "produto": "vegetais,legumes" }
Esquema da resposta
{ "msg": "dados inseridos com sucesso", "dados": { "nome": "Quitanda Fukushima", "telefone": "1145878156", "cnpj": "326789123458", "produto": "vegetais,legumes" } }
-
PUT /suppliers/cnpj/:cnpj
Esquema da requisição
{ "nome": "Quitanda Fukushima", "telefone": "11458781116", "cnpj": "32678912341518", "produto": "carne" }
Esquema da resposta
{ "msg": "Dados atualizados com sucesso" }
-
DELETE /suppliers/cnpj/:cnpj
Esquema da resposta
{ "msg": "Dados deletados com sucesso onde CNPJ = 32678912341518" }
-
GET /transactions
Esquema da resposta
{ "msg": "Aqui estão seus dados", "dados": [ { "id": 1, "funcionario": "Anakin Skywalker", "valorCompra": 70, "produtos": "Cerveja 600ml, porção de calabresa", "data": "Fri Aug 05 2022 17:55:53 GMT-0300 (Horário Padrão de Brasília)" }
-
GET /transactions/id/:id
Esquema da resposta
{ "msg": "Aqui estão seus dados", "dados": { "id": 1, "funcionario": "Kleberr Knob", "valorCompra": 50, "produtos": "Drink de fogo, Caninha da serra, Batata gourmet", "data": "Thu Aug 04 2022 00:40:18 GMT-0300 (Horário Padrão de Brasília)" } }
-
POST /transactions
Esquema da requisição
{ "funcionario": "Anakin Skywalker", "produtos": "Cerveja 600ml, porção de calabresa, amendoim 60g", "valorCompra": 80 }
Esquema da resposta
{ "msg": "dados inseridos com sucesso", "dados": { "funcionario": "Anakin Skywalker", "produtos": "Cerveja 600ml, porção de calabresa, amendoim 60g", "valorCompra": 80, "data": "Fri Aug 05 2022 17:55:21 GMT-0300 (Horário Padrão de Brasília)" } }
-
PUT /transactions/id/:id
Esquema da requisição
{ "funcionario": "Anakin Skywalker", "produtos": "Cerveja 600ml, porção de calabresa", "valorCompra": 70 }
Esquema da resposta
{ "msg": "Dados atualizados com sucesso" }
-
DELETE /transactions/id/:id
Esquema da resposta
{ "msg": "Dados deletados com sucesso onde ID = 4" }
Esquema da resposta
- Busca por dado não cadastrado
{
"msg": "Dados não encontrados"
}
- Post com dados faltantes
{
"msg": "Parece que faltam alguns dados em sua requisição"
}
- Post/Put com dados incorretos
{
"msg": "Alguns dados estão preenchidos incorretamente"
}
- Post/Put com user diferente de "admin" ou "sub"
{
"msg": "Usuario não autenticado"
}
- Delete com user diferente de "admin"
{
"msg": "Usuario não autenticado"
}
Letícia Laranja 🥤 |
Rodrigo Assunção 🍹 |
Igor Santos 🍺 |
Sabrina Guimarães 🍸 |
Erik Souza 🍷 |
Willian Carvalho 🧉 |