Sua Primeira API NodeJS

Caio Vinicius Halcsik Félix
6 min readFeb 17, 2020

Introdução

Primeiramente, para conseguirmos criar nossa primeira aplicação node, é necessário que configuremos o ambiente do mesmo. Para isso, meu ultimo artigo cai como uma luva, podendo ser acessado ao clicar aqui.

Criando o projeto

Para iniciar, precisamos acessar o diretório aonde criaremos a aplicação através de uma ferramenta de terminal/prompt de comando. Ao acessar o diretório, utilizaremos o comando:

npm init -y

Será criado então o nosso package.json, aonde serão incluídas as futuras dependências, assim como os scripts que iniciaram a nossa aplicação.

Para fins educacionais, criaremos uma aplicação bem simples, sem uma estrutura de projetos bem definida, sendo assim, criaremos o arquivo inicial, o index.js.

Após isso, utilizando o editor de texto de sua preferencia, abra o index.js. No meu caso, utilizarei o VSCode. Com o arquivo aberto, instalaremos algumas dependências para o projeto. A primeira delas, e uma das mais importantes, será o express.

Dependências interessantes…

Tal dependência é a base da nossa aplicação, sendo ela responsável por disponibilizar e transformar nossa aplicação de um arquivo javascript normal em uma aplicação “servidor”.

Para instala-la, basta utilizar o comando:

npm install --save express

Após finalizar a instalação, já iremos aproveitar para instalar o nodemon, essa dependência será responsável por fazer com que nossa aplicação fique executando ininterruptamente , facilitando nosso desenvolvimento, pois ira servir como um hot reload, no caso, sempre recarregando a aplicação após os arquivos do sistema forem modificados. Para instala-lo, execute esse comando:

npm install --save nodemon

Para facilitar a execução do nodemon, iremos fazer uma pequena alteração no nosso package.json.

Ao abri-lo, observe que as dependências previamente instaladas, agora se encontram aqui, e também uma nova pasta surgiu, a node_modules, essa pasta é aonde todas as dependências ficam centralizadas.

Obs: Aconselho que não modifiquem nada que está presente nessa pasta. Obs2: Caso seja necessário mover o projeto para outro local podemos excluir a pasta node_modules para reduzir o tamanho do projeto. Ao fazer isso, será necessário então executar o comando npm install no diretório do projeto.

Com isso, todas as dependências previamente adicionadas no package.json através da diretiva — save serão novamente instaladas, fazendo com que nosso projeto seja novamente utilizável.

De volta ao projeto

Voltando para o projeto, porém ainda falando sobre o arquivo package.json, podemos ver que no mesmo foi criado alguns novos campos:

Como é possível reparar, foi criada uma nova chave no objeto, chamada “dependencies”, no caso, representando todas as dependências adicionadas no projeto atualmente, é através disso que é possível configurar de forma rápida nossa aplicação caso precisemos transferir para outro local.

Agora iremos adicionar um novo atributo ao objeto scripts. A chave desse atributo será dev, e o valor “nodemon run index.js”:

Deixando o arquivo da seguinte forma:

{  "name": "first-application",  "version": "1.0.0",  "description": "",  "main": "index.js",  "scripts": {    "test": "echo \"Error: no test specified\" && exit 1",    "dev": "nodemon index.js"  },  "keywords": [],  "author": "",  "license": "ISC",  "dependencies": {    "express": "^4.17.1",    "nodemon": "^2.0.2"  }}

Através dessa mudança, podemos executar o projeto com o comando

npm run dev 

Porém, antes disso, iremos incrementar alguns pontos. Voltando ao index.js, será necessário importarmos o módulo do express para nossa aplicação da seguinte forma:

const express = require('express');

Com o express instanciado , agora faremos com que ele escute uma porta, utilizando o seguinte código.

const express = require('express');const app = express();app.listen(3333);

Nesse momento, nossa aplicação consegue ser executado através do comando dito anteriormente. Executemos-o no terminal então:

npm run dev

Agora como podemos ver no terminal, nossa aplicação está sendo executada com exito.

Para fins de aprendizado, tente remover quaisquer “;” do código e salve-o. Percebera então que o nodemon recarregara nossa aplicação, com as mudanças realizadas,

Outro ponto positivo disso é que, caso cometermos quaisquer erros, os mesmos serão exibidos aqui no terminal.

Criando nossa API

Iremos implementar um api do tipo GET, aonde obteremos o retorno “Hello World”

Para isso, utilizaremos o método get, obtido módulo express. Esse método, recebe como parâmetro 2 itens, primeiramente qual sera a url que será requisitada, da seguinte forma:

app.get('/', (req, res) => { })

Sobre o primeiro parâmetro

O primeiro parâmetro remete ao conceito de rota, muito utilizado pela aplicação node, porém, não irei abordar profundamente nesse artigo. Em uma rápida explicação, é basicamente a url que nós iremos acessar para obtermos a reposta da nossa requisição.

No caso, no momento em que definimos o primeiro parâmetro como “ / ”, significa que, ao acessar a nossa aplicação em sua URL raiz, será feita uma requisição para esse caminho.

E o segundo parâmetro?

Agora, a função que criaremos aqui recebe 2 parâmetros, req e res. Referenciando, respectivamente, request e response.

O request é basicamente um objeto aonde estará contida todas as informações que o requisitante enviou a nossa aplicação. Como por exemplo os headers, parâmetros, navegador, etc.

Já o response será responsável pelo que será respondido ao usuário, é através dele então que enviaremos a resposta ao usuário.

Voltando para a API

Como padrão, a melhor forma de respondermos através de uma aplicação node é em forma de JSON. Para isso utilizaremos um novo método do express, sendo ele o “use”, responsável por dizer a nossa aplicação quais recursos a mesma poderá usufruir em tempo de execução.

No caso, faremos o seguinte:

app.use(express.json());

Basicamente isso quer dizer que agora nossa aplicação será compatível com retorno de objetos JSON, podendo assim, responder ao usuário com objetos JSON, como veremos a seguir.

Agora editando o que construímos anteriormente, adicionaremos dentro da nossa requisição get o seguinte código.

app.get('/', (req, res) => {  return res.json({ message: 'Hello World' });
})

Basicamente o que estamos fazendo ai é, ao usuário realizar uma requisição a raiz da nossa aplicação, retornaremos a ele um objeto JSON contento uma mensagem Hello World, como podemos ver ao realizar o teste a seguir…

Testando a API

Nisso a implementação foi realizada, agora vamos testar, caso deseje, é possível utilizar softwares como o Insomnia ou o Postman para realizá-lo, porém, por se tratar de um teste em uma requisição GET, podemos testar diretamente do navegador, porém, em um futuro artigo implementaremos também outros métodos http, esses sim serão obrigatoriamente necessária a utilização de um software de requisições, conforme citados a cima. Assegurando que a aplicação esta em execução, acesse a url localhost:<portaDefinida> no caso:

http://localhost:3333

Concluindo…

Como é possível ver, criar uma aplicação backend em node não é um bicho de sete cabeças, claro que o mesmo oferece diversas outras ferramentas muito interessantes, que nos auxiliam em tarefas, como por exemplo abstraindo a utilização do banco de dados, ou até facilitando todo o processo de autenticação com serviços diversos. Abordarei tais assuntos em artigos futuros.

O código final ficou basicamente dessa forma:

const express = require('express');const app = express();
app.use(express.json());app.get('/', (req, res) => { return res.json({ message: 'Hello World' });})app.listen(3333);

Obrigado por lerem meu artigo, quaisquer sugestões, por favor, entrem em contato.

--

--