O Node.js é uma das linguagens de programação mais versáteis da atualidade. Com a possibilidade de adicionar pacotes (packages), facilmente construímos aplicações e serviços poderosos.
Hoje vamos aprender como criar uma API com funções básicas de calculadora.
Além das características que já revelamos, é importante destacar ainda que o Node.js é orientado a eventos de I/O uma vez que tem disponíveis vários módulos que permitem trabalhar com recursos de I/O no servidor.
O Node.js tem também suporte para vários protocolos como, por exemplo, HTTP, HTTPS, DNS, WebSockets, etc e segue o modelo não bloqueante, ou seja, os pedidos serão feitos e entregues quando estiverem prontos. …
O que significa CRUD?
CRUD são as siglas para Create, Read, Update e Delete. Estas são as quatro operações básicas utilizadas em bases de dados relacionais (RDBMS).
A abreviação CRUD mapeada para o padrão ISO/SQL:
- Create — INSERT
- Read — SELECT
- Update — UPDATE
- Delete — DELETE
Arquitetura REST
REST — REpresentational State Transfer é um modelo de arquitetura que usa o protocolo HTTP para comunicação para GET, POST, PUT e DELETE. Existem várias representações para apresentar um recurso como, por exemplo, XML, JSON, sendo que este último é o mais usado. Saber mais aqui.
Vamos começar a programar uma API
Passo 1) Instalar o Node.js no Ubuntu e derivados
sudo apt-get update
sudo apt-get install nodejs
Passo 2) Criar diretório para projeto
mkdir calculadora
cd calculadora
Passo 3) Iniciar o projeto
npm init
No final será criado o ficheiro package.json. Este ficheiro guarda informações sobre o projeto e também sobre as dependências (pacotes) do mesmo.
Passo 4) Instalação de pacotes necessários
- hapi — framework para criação de apps web.
npm install — save hapi
Passo 5) Criar servidor (com Node.js)
Para começar vamos criar o ficheiro index.js (indicado no package.json)
touch index.js
Dentro do nosso ficheiro, associamos as dependências instaladas anteriormente (hapi) e inicializamos aapp.
//Framework hapi.js
const Hapi = require('hapi');
// Máquina e Porto Lógico
const host = 'localhost';
const port = 3000;
// Criação do Servidor
const server = Hapi.Server({
host: host,
port: port
});
// Iniciar servidor
const init = async () => {
await server.start();
console.log("Server up no porto: " + port);
}
//Inicialização da App
init();
Para iniciar a app devem executar o comando:
node index.js
Vamos agora criar um about da app. Para tal adicionem o seguinte código a seguir ao init
server.route({
method: 'GET',
path: '/calculadora/about',
handler: function (request, h) {
var data = {
msg: 'API Calculadora'
};
return data;
}
});
Façam o teste via POSTMAN.
Organização da Aplicação (MVC)
A nossa aplicação deverá seguir o “design” MCV. M de Model (código para o nosso modelo de base de dados), V de View (layout) e C de controllers (parte lógica da app (Como a app lida com as solicitações recebidas e as respostas enviadas). Existem também as Routes que indicam ao cliente (browser ou app mobile) qual o controller a usar, de acordo com o url/path solicitado.
Criar Routes
$ mkdir routes
$ cd routes
$ touch routes.js
No ficheiro index.js, antes do init(), devem invocar o ficheiro de routes.
const Hapi = require('hapi');
const host = 'localhost';
const port = 3000;
const server = Hapi.Server({
host: host,
port: port
});
const init = async () => {
await server.start();
console.log("Server UP no porto: " + port);
}
//Definir routes
require('./routes/routes')(server);
init();
Ficheiro routes completo com as operações básicas da calculadora.
Depois de criada a app e colocada em execução, podemos facilmente testar todas as operações via browser ou POSTMAN.
E está feito! Agora basta que haja ideias para desenvolver APIs com outros propósitos. Como viram a programação nem é assim tão difícil e com a vantagem do código poder ser usada em qualquer app para qualquer dispositivo.