































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Introduz os conceitos do que é Node.js e sua aplicação em APIs Rest.
Tipologia: Trabalhos
1 / 39
Esta página não é visível na pré-visualização
Não perca as partes importantes!
































Amaury Luiz Chaves Junior Giovanni José Gome Cavalcante João Clayton Gomes Silva José Ytalo Ramon de A. Gonçalves Leonardo Amaral de A. Araújo Lucas de Assis Pereira Chaves
Arapiraca - Alagoas 2019 Amaury Luiz Chaves Junior Giovanni José Gome Cavalcante João Clayton Gomes Silva José Ytalo Ramon de A. Gonçalves Leonardo Amaral de A. Araújo Lucas de Assis Pereira Chaves
Apostila para auxílio de minicurso, apresentado na Universidade Federal de Alagoas - UFAL, como parte das exigências para a obtenção da nota da disciplina de ACE. Professor: Elthon Allex da Silva Oliveira
Na maioria das linguagens de programação sempre que é feita uma chamada de função ela vai para um “call stack” - pilha de chamada, as pilhas são do tipo LIFO (last-in, first-out), o último a entrar é o primeiro a sair. Node.js é orientado a evento, ou seja, assíncrono. Basicamente existe um “loop infinito” que a todo momento verifica se há algo novo na fila de eventos, se existir, uma determinada tarefa será executada. O responsável por essa tarefa é o chamado Event-Loop. Figura 1 – Modelo de execução do Node.js Fonte: gitconnected
Preparação do ambiente
De modo geral a instalação do Node é bem simples independente do sistema operacional utilizado e, pode ser feita tanto via download direto do site oficial da plataforma quanto via repositório de distribuições Linux. Página oficial: https://nodejs.org/pt-br/. Após acessar o site, clique em um dos botões verdes: na versão do Node que deseja utilizar. É recomendado baixar a versão “LTS”, pois apresenta a base mais estável. Para quem é usuário de Windows a instalação é simples: next, next…, finish. Para usuários do “Pinguim” segue o guia de instalação, link: https://nodejs.org/en/download/package-manager/. Seguido todo o processo, agora verificaremos se a instalação foi efetuada com sucesso utilizando os comandos: “node - v” e “npm - v”; por enquanto não devemos nos preocupar em saber o que é esse segundo comando. Figura 2 – Homepage do site nodejs.org Fonte: Print screen Figura 3 – Saída esperada dos comandos Fonte: Print screen
Também precisaremos de o banco de dados para criarmos CRUDs, operações básicas de criação, deleção e atualização de dados. Para essa tarefa usaremos o software de gerenciamento de banco de dados (SGBD) orientado a documentos MongoDB. Link para o tutorial de instalação: https://docs.mongodb.com/manual/tutorial/.
O que são APIs API é um acrônimo para Interface de Programação de Aplicativos, no inglês Application Programming Interface. Entretanto, as palavras têm um sentido muito abstrato e, o único entendimento provido por elas é que se trata de uma abstração que ajuda a construir aplicações. Popularmente a sigla tornou-se significado de qualquer especificação que facilite a codificação de softwares. Afinal, quem nunca ouviu falar em GoogleMaps API, Facebook API, API REST/RESTful. Entretanto, o conceito vai além disso - “Todo serviço da Web são APIs, mas nem toda API é um serviço Web”. Vamos imaginar um cenário….
Protocolo HTTP Para que possamos fazer a comunicação entre dispositivos distintos é necessário mecanismos para tal, diante dessa necessidade surgiu os protocolos de redes, como: FTP, HTTP, SMTP, SSH, entre outros. Nossos estudos se situarão no Hypertext Transfer Protocol (HTTP), que é um protocolo que trabalha na camada de aplicação e que foi desenvolvido para transmitir dados em formato de hipermídia – texto. Seguindo o modelo cliente-servidor, o que significar que o cliente é quem inicia a conexão, foi desenvolvido inicialmente para comunicação entre navegadores e servidores Web, porém pode ser utilizado para outros fins.
Quando um cliente necessita obter dados ou uma página Web ele precisa saber onde encontrar esse recurso, para isso o protocolo HTTP utiliza uma URL (localizadora de recurso Uniforme), que é uma especificação para localização de informações na internet. Uma URL é constituída de quatro partes:
As mensagens HTTP consistem em solicitação do cliente para o servidor e, a resposta do servidor para o cliente, para isso as mensagens utilizam um formato genérico na transferência dos dados. Nosso estudo se concentrará em duas partes: Headers (cabeçalhos) e Body (Corpo). Fonte: Comunicação de Dados e Redes de Computadores (FOROUZAN, 2007) Figura 8 – Ciclo de uma transação HTTP Figura 9 - Formato de uma requisição HTTP Fonte: Comunicação de Dados e Redes de Computadores (FOROUZAN, 2007) Ff :
Eles permitem que tanto o cliente quanto servidor possa adicionar mais informações na solicitação ou na resposta HTTP. São suportados inúmeros cabeçalhos para os mais variados fins, inclusive é suportado cabeçalho proprietário: personalizados. Cabeçalhos mais comuns:
Podendo ou não está presente na solicitação ou na resposta, o body normalmente contém os dados a serem transmitidos.
Sistema de modulo com NPM
É um acrônimo para Node Package Manager, ou seja, é um gerenciador de pacotes para Node.js. Foi criado em 2009 como um projeto de código aberto com intuito de ajudar desenvolvedores JavaScript a compartilhar facilmente módulos de códigos empacotados: basicamente são libs que ajudam os desenvolvedores a na construção de seus APPs. O NPM tornou- se tão popular no mundo node que da versão 0.6.x em diante ele já vem incorporado ao instalador oficial da plataforma. Figura 11 – Logo do NPM Fonte: NPM Figura 12 – Exemplo de busca de um módulo no site do NPM Fonte: Print screen
Construindo nossa API
Quando criamos qualquer projeto é necessário efetuar diversas configurações, sejam de segurança, de dependências, configurações de projetos, dentre outros. Essa tarefa torna-se bastante estressante, principalmente quando se trata de novas tecnologias, devido a problemas como esse surgem diversos framework com o intuito de facilitar a vida dos programadores, no mundo Node.js o Express é o mais reconhecido por essa tarefa, não falei o melhor, falei o mais famoso. O Express é um framework minimalista e flexível criado pela fundação Node.js que fornece funcionalidade bem robustas de recurso para tratamentos de requisições, por isso utilizaremos em nosso projeto. Recurso apresentados:
Partiu criar um “projetinho”? Para nossa primeira API criaremos algo bem simples. O nosso projeto terá o nome de “ minicurso-nodejs ” e a nossa tarefa é criar uma API para que um usuário possa postar uma foto e outros usuários possam comenta-la. As seguintes funções estarão no nosso sistema:
$ npm init – inicializar o projeto, vai ser apresentado um questionário onde será informado os dados. Próximo passo, instalar as dependências através dos comandos: $ npm install express --save $ npm install body-parser --save $ npm install mongodb --save Fonte: Print screen Figura 14 – Configurando o arquivo package.json via ferramenta Figura 15 – package.json do nosso projeto Fonte: Imagem gerada utilizando a ferramenta carbon.sh