Tutorial Node.js: REST API (calculadora simples)

8 Comentários

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.

Tutorial Node.js: REST API (calculadora simples)


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

Tutorial Node.js: REST API (calculadora simples)

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.

Leia também…

Sabe o que é uma API (Application Programming Interface)?

Comentários

8

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de jedi
    jedi

    É um bom tutorial com alternativa a express -> Hapi mas gosto mais de Koa js (do mesmo autor de express),que tem uma sintaxe moderna.
    Contudo colocar num servicço de hosting, na vida real mais complicado pelo preço, a não ser que se seja dono de uma vps ou realmete pretenda pagar caso queira free hosting, boa sorte em encontrar.
    Por isso sugeria um tuorial de uma API com PHP com ou sem framework.
    Caso queira usar uma Framework PHP para API sugiro Symfony 5 , já que consegue encontrar mais facilmente free hosting com PHP + MYSQL, etc.

  2. Avatar de Eduardo Jacob
    Eduardo Jacob

    Francamente… Logo pelo 1º parágrafo é de ficar pasmado: é que o node.js não é nenhuma linguagem de programação. É um Runtime Environment, mais própriamente: Um “Javascript Runtime Environment”. Após este erro grosseiro, perdi a vontade de ler o resto do artigo.

    1. Avatar de Miguel
      Miguel

      E qual é o problema? Não mostrou que é possível fazer uma calculadora na mesma?

      1. Avatar de Teclassoltas
    2. Avatar de jedi
      jedi

      E já não é primeira vez. que tem esse erro, que ja nem leio a introduções.
      Se pesquisar por tutoriais semelhantes, vá ver nos comentários.

    3. Avatar de Bruno Monteiro
      Bruno Monteiro

      Eduardo, se ficou pasmado (e tem todo o direito a ficar pasmado) não tinha necessidade de vir mostrar a sua imensa sabedoria. O trabalho que o jedi teve não foi pouco, e acredito que muitos apreciarão o tutorial (nem todos tem necessidade de saber a diferença entre linguagem de programação e Runtime Environment). Teria sido uma oportunidade de ouro se o Eduardo tivesse apresentado um tutorial de pyton por exemplo, Assim já teria todo o direito de poder criticar da forma grosseira como fez, o trabalho dos outros.

      1. Avatar de Rui
        Rui

        Concordo plenamente Bruno.

        Existem sempre os “mais espertos” que os outros, que precisam destes tutoriais para mostrar que sabem mais que o básico.

        A intenção deste tutorial está muito bem conseguida, e deviamos era agradecer que alguém oferece gratuitamente estes tutoriais aos mais novos.

      2. Avatar de Teclassoltas
        Teclassoltas

        Espera lá, então alguém que publica algo não está sujeito a critica? São palavras sagradas é?
        Mas não é esse o principal modo de separar aquilo que tem interesse daquilo que não tem qualidade?
        O artigo está muito fraco, com erros muito grosseiros, e começam desda a primeira linha, ja nem falando de erros muito grosseiros na implementação não admitidos para… enfim fica para o autor trabalhar muito mais estes assuntos antes de os publicar.
        Agora, se o autor nao queria ter estas criticas, ou não escrevia, ou dada a sua formação base, tinha muito mais cuidado como escreve sobre assuntos das quais é até formado, segundo julgo saber.
        Bruno Monteiro, quem anda à chuva, ou se previne ou acaba molhado.