Back-End

13 fev, 2019

Restify e Sequelize com Node.js – Parte 01

Publicidade

Nesta série de artigos irei compartilhar alguns conhecimentos, que vão da criação de uma aplicação Node.js utilizando comunicação de API RESTful, até um pequeno “CRUD” voltado a banco de dados relacional.

As tecnologias que utilizaremos para esta série serão as seguintes: Node.js(Server), restify (pacote para comunicações de API RESTful utilizada pela Netflix, Pinterest, Napster, entre outras empresas) e também o Framework Sequelize, para montar a comunicação entre aplicação e banco de dados relacional.

Primeiramente, você deve ter o Node.js instalado em sua máquina. Caso não tenha, faça o download na página oficial:

Após a instalação do Node.js, para ver se ocorreu tudo certo, acesse o terminal e digite “node -v”- este comando retornará a versão que está sendo utilizada, ou seja, quer dizer que está tudo OK.

Agora chega de tanto texto e bora codar!

Crie seu projeto node em um diretório de sua preferência utilizando: “npm init Contatos -y”. Desta forma você pula as etapas, de questionamento padrão do node para seu projeto:

O node irá criar na pasta do projeto um arquivo chamado “package.json”, com as configurações padrões dele.

Para programar eu irei utilizar o VSCode, mas você pode optar por um editor de sua preferência.

Criaremos um arquivo chamado “index.js” na raíz do projeto, ou seja, na mesma estrutura do “package.json”, gerado pelo node. Por que “index.js”? Dentro do arquivo “package.json” existe uma propriedade chamada “main:index.js”, ou seja, o ponto inicial do nosso projeto. Você pode alterar essa configuração e dar o nome que achar melhor.

Para ver se tudo está ok, iremos executar apenas uma mensagem e rodar nosso projeto a partir do comando “node index.js”:

Beleza, tudo ok. Agora partiremos para o restify!

Bom, para quem ainda não teve contato, o restify é um framework voltado para aplicações que trabalham especificamente com API RESTful, onde a ideia é facilitar e acelerar nosso trabalho para a criação de serviços voltados a mensagens do tipo json, rotas, retornos e serviços.

Você pode trabalhar com páginas html, mas o ideal, neste caso, seria utilizar o framework express, que seria o “concorrente”, por assim dizer, do restify. Para mais informações e documentação é possível explorar no link do pacote.

Para instalar o restify basta entrar na pasta do projeto e executar o comando: “npm install restify — save”:

Após a instalação do pacote, podemos conferir que este foi incluído também no nosso arquivo do projeto, “package.json”.

Criaremos uma nova pasta na raiz do nosso projeto chamada “config” e dentro desta, um arquivo chamado “server.js”. Dentro dele inicializaremos os serviços do restify:

Comentando o código acima:

const restify = require(‘restify’); //Requisitando a utilização do pacote restify
const port = 3000; //Porta na qual o nosso servidor irá executar
const server = restify.createServer(); //Cria a interface do nosso servidor/*
 Adicionamos o plugin do bodyparser, para trabalhar com json automaticamente
 na entrada e saída e também para que o restify já faça o map dos parâmetros de entradas
*/
server.use(restify.plugins.bodyParser({
 mapParams:true,
 mapFiles:false,
 overrideParams: false
}));
/*
 Criação de uma rota de entrada para nossa API,
 aqui poderia ser uma rota do tipo post(insert), put(update),del(delete),
 como apenas iremos retornar um objeto, utilizaremos get(busca/retorno).
 — Request, serve para obter algum parâmetro ou cabeçalho(header) da requisição;
 — Response, retorna uma resposta/status da nossa api;
 — next, este método serve para parar a execução do código em um determinado momento e pular
 para o próximo método/função, caso existir.
*/
server.get(‘/’, (request, response, next) => {
 //estaremos retornando para teste o status 200(O navegador interpreta que a requisição retornou com sucesso), dizendo que a resposta está ok e um objeto json com uma mensagem.
 const retorno = {retorno:’restify ok’};
 response.send(200, retorno);
 next();
});
//Iremos executar nosso servidor com as configurações e rotas adicionadas anteriormente
server.listen(port, () => {
 console.log(`restify executando na porta:${port}`);
});
//Exportamos nossa variável server, para que a mesma se torne “pública” e seja executada pelo index.js
module.exports = server;

Para utilizar o nosso arquivo “server.js”, no arquivo “index.js” adicione a chamada “const server = require(‘./config/server’);”.

No terminal, execute “node index.js”, e no seu navegador abra o endereço “http://localhost:3000/” e pronto, teremos nosso objeto retornado com sucesso:

Agora iremos alterar nossa rota para retornar um objeto um pouco mais complexo do tipo array, simulando, como exemplo, os contatos de uma pessoa:

Abrindo no navegador o endereço “http://localhost:3000/contatos”, podemos ver que o objeto foi retornado com sucesso:

Ficamos por aqui! Daremos continuidade na segunda parte com o Sequelize, e é claro, exploraremos um pouco mais do restify conforme formos evoluindo. Até lá!

O código completo até aqui pode ser encontrado em meu GitHub.

Fiquem ligados. Em breve publicaremos a segunda parte!