Skip to content

luizzzabiassi/projeto-modulo4

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PUB - Petiscos:

🚀 Dependências do projeto:

  1. Node.JS
  • Para inicializar o projeto precisamos do Node.JS instalado na máquina, entre nesse link e baixe a versão LTS referente ao seu sistema operacional.
  • Quando terminar a instalação, confirme se ocorreu tudo bem abrindo o shell/interpretador do seu computador e digite o comando abaixo, se aparecer a versão que você instalou, então ele já está pronto para ser usado:
node -v

  • As seguintes dependências são pacotes npm, então precisamos inicilizá-los antes de instalar. Para isso, abra o terminal dentro da pasta do projeto e execute o seguinte:
npm init
  • Ao executar o comando acima, um formulário JSON no terminal será iniciado e você deverá preenche-lo, mas você pode dar enter em campos que você não souber responder ou executar o comando anterior com -y para ele ser respondido automaticamente.
npm init -y

  1. Nodemon
  • Com o Node.JS instalado e o npm iniciado, você já pode instalar os pacotes necessários. Primeiro o Nodemon, que é uma ferramenta que reinicia o aplicativo automaticamente quando detecta uma nova mudança nos arquivos do mesmo. Ele será instalado como uma dependência de desenvolvedor:
npm install --save-dev nodemon

  1. Express
  • O Express é um framework que foi desenvolvido para otimizar a construção de aplicações web e API's. O comando para instalá-lo é o seguinte:
npm install express

  1. SQLite
  • O SQLite é a biblioteca que será usada para implementar o banco de dados do nosso projeto na linguagem SQL. Seguindo o mesmo padrão de instalação dos pacotes npm, você utiliza este comando no terminal, com o número 3 no final para expecificar a versão:
npm install sqlite3

  1. SuperTest
  • O SuperTest é basicamente um módulo para forjar requisições com o intuito de testar webservers e verificando o retorno para automatizar os teste de web API's por exemplo. Ele também será instalado como uma dependência de desenvolvedor, então comando será:
npm install --save-dev supertest

  1. Jest
  • O Jest é um framework para testes unitários de códigos com foco em suporte para grandes aplicativos da web. Será outra dependência de desenvolvedor:
npm install --save-dev jest

  1. Cors
  • O Cors (Cross-Origin Resource Sharing) é um sistema que consiste de HTTP headers, determinando se os navegadores irão impedir o código de acessar as respostas das requisições que serão feitas. A instalação é feita da seguinte forma, no terminal do projeto:
npm install cors

👩🏻‍💻 Execução do projeto:

  • Depois de instalar todas as dependências, você já pode executá-lo e assim o servidor do app já estará rodando:
npm start
node ./src/server.js

  • Porém, aproveitando que o Nodemon foi instalado, dentro do arquivo package.json existem alguns scripts para executar o servidor, um deles é o dev, ao executar o projeto com ele, a cada nova mudança no arquivo ele vai reiniciar o servidor automaticamente, sem precisar desligar e ligar ele a cada nova alteração:
npm run dev

  • Outro script que tem no mesmo arquivo é o populate, com a função de popular automaticamente o seu banco de dados a partir do arquivo create-and-insert.js:
npm run populate
  • Se você optar por rodar este comando, um arquivo db-pub.db será criado fora da src/infra, recomendo passar esse arquivo para dentro dela. Pode ser que no seu Visual Studio Code você tenha problemas ao tentar abrir o novo arquivo por ser do tipo .db, então para facilitar a visualização da tabela recomendo a instalação do DB Browser.

  • Caso queira experimentar os testes unitários, primeiramente verifique se no arquivo package.json existe o script test e se o seu atributo é jest:
"scripts": {
    "test": "jest"
}
  • Se houver esse script, você já pode utilizá-lo no terminal do projeto:
npm run test

🚄 Rotas do projeto:

  • Nesse projeto foi utilizado o padrão de API Rest e as rotas consistem em duas partes: um método HTTP e um caminho para um recurso que será usado. Para esse projeto usei os métodos HTTP baseados no acrônimo CRUD, que consiste em:
  1. C - Create
  2. R - Read
  3. U - Update
  4. D - Delete

Create - POST:

  • O método POST foi projetado para solicitar que o servidor web aceite os dados anexados no corpo da mensagem de requisição para armazenamento.
  • A partir de uma ferramenta para consulta de requisições (Postman e Insomnia são as mais conhecidas), você pode consultar a API por esse e outros métodos. Nesse caso, a requisição será feita escolhendo o método POST e informando a URL localhost:port/petiscos.
  • Verifique antes se o seu servidor está rodando, se não, não será possível testar esse e outros métodos. Depois de especificar a requisição, abra o body da mesma e escolha a opção JSON para inserir os dados que você quiser a partir das colunas existentes no banco. Após isso, clique em Send para mandar essa requisição: post

Read - GET:

  • O método GET cria uma sequência de consulta e acrescenta à URL do script no servidor que manipula a solicitação. Esse método é o padrão de todas as URL's e basicamente é para a leitura dos mesmos. Nesse projeto foi criado dois tipo de requisições com GET:
  1. GET/path
  • Com o servidor rodando e sua ferramenta escolhida aberta, você seleciona o método GET e ao lado a URL para a requisição, sendo ela: localhost:port/petiscos. Ao clicar no botão Send ele retornará todos os dados da API: get
  1. GET/path/id
  • Não muito diferente da requisição acima, o método também será o GET porém depois do caminho será aplicado o ID de um registro, para o caso de precisar verificar algum registro específico. Com o método GET selecionado e a URL digitada, após ela você adiciona /2 por exemplo, para consultar o registro de ID 2: getid

Update - PUT:

  • O método PUT cria um novo recurso ou subsititui uma representação do recurso de destino com os novos dados, atualizando o mesmo com as novas informações passadas.
  • Este não é o único método existente para atualização de dados, além do PUT existe também o PATCH. A diferença dos dois é que o PUT é usado para alteração completa de um dado, já o PATCH é para uma mudança parcial, de algum campo específico
  • Nesta API foi utilizada somente requisições PUT para atualizações. Não muito diferente da requisição em POST, a única diferença é que ao lado da URL você precisará informar também um ID, para servir de referência a qual dado será modificado: put

Delete - DELETE:

  • Como o nome já entrega, o método DELETE tem a função de remover algum recurso que foi especificado, no caso das nossa requisições ele irá deletar o ID informado após a URL passada: delete

👩🏻‍🏫 Considerações finais:

  1. Após a utilização de alguns métodos, se você quer confirmar se a ação deu realmente certo, faça uma requisição GET e veja se o dado foi adcionado, alterado ou deletado.
  2. Confirme se todos os scripts estão aplicados e se as dependências foram instaladas corretamente para uma utilização melhor da API.
  3. Feito por Luiza Biassi 💕

About

Projeto do Módulo 4 - Resilia: Consultas com métodos HTTP para uma tabela de Petiscos de um PUB.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors