Parte 1 – Crie uma API REST em NodeJS + TypeScript

novembro de 2021

Autora: Jakeliny Gracielly 

Nesse tutorial vamos criar uma API RESTful em NodeJS utilizando typescript, vamos usar o exemplo de gerenciar clientes ao concluir vamos conseguir inserir, editar, deletar e listar os clientes. Vamos lá então! 

O que vamos usar? 

  • NodeJS 
  • NPM 
  • TypeScript 
  • MongoDB 
  • Postman 

Dentro do terminal do NodeJS vamos iniciar nosso projeto criando uma pasta com o nome: clients e vamos entrar nessa pasta com o comando cd 

mkdir clients && cd clients 

Vamos iniciar o projeto com o commando: npm init 

Irão aparecer algumas perguntas: 

name: (clients) 

version: (1.0.0) 

description:  

entry point: (index.js) server.ts 

test command:  

git repository: 

keywords:  

author: Jakeliny Gracielly 

license: (ISC) 

  1. Os valores que aparecem entre parênteses são os valores default, se nada for digitado o valor entre parênteses será preenchido 
  1. Na pergunta entry point, vamos colocar server.ts será nosso arquivo de partida 
  1. Em author vamos colocar nosso nome 

Vamos instalar os pacotes necessários para nossa API funcionar: 

npm install body-parser express mongoose 

Esse comando vai instalar as dependências do projeto e gravar no package.json, não é necessário colocar -S ou –save, a partir da versão 5.0.0 do NodeJS os módulos são gravados automaticamente 
 
Express é o framework que vamos usar, body-parser é o módulo que vai transformar as entradas e saídas em Json e mongoose faz a conexão com o MongoDB 

Vamos instalar os pacotes necessários para desenvolvimento, são eles: typescript e o módulo typescript dos pacotes instalados no passo anterior: 

npm install @types/body-parser @types/express @types/mongoose @types/node ts-node typescript -D 

O -D no final do comando é igual a –only=dev, que salva os pacotes no package.json como dependência para desenvolvimento 

Abra sua IDE favorita e abra o arquivo que foi criado package.json observe que os dados inseridos nas perguntas e os pacotes instalados estão todos referenciados. 

Agora vamos configurar o compilador do typescript, crie um arquivo na raiz da pasta do nosso projeto com o nome tsconfig.json e adicione o conteúdo: 

“compilerOptions”:{ 

“target”: “es5”, 

“module”: “commonjs”, 

“outDir”: “build”, 

“typeRoots”: [ 

“../node_modules/@types” 

], 

“types”: [ 

“node” 

}, 

“include”: [ 

“server/**/*.ts”, 

“server/*.ts” 

], 

“exclude”: [ 

“node_modules” 

], 

“compileOnSave”: true, 

“buildOnSave”: true 

Nesse arquivo estamos: 

  • Colocando as opções de compilação do Type Script, queremos que ele transcreva todo o conteúdo para ES5 usando o módulo commonjs e passe tudo para a pasta build. 
  • Incluímos os arquivos da nossa futura pasta server e os arquivos de suas subpastas 
  • Deixamos de fora da compilação os arquivos da node_modules 
  •  Por último dizemos que quando salvarmos algum arquivo .ts o typescript ja compila e “builda” esses arquivos 

Vamos criar a pasta server: 

mkdir server 

Vamos criar os arquivos app.ts e server.ts dentro da pasta server: 

touch server/{app,server}.ts 

Vamos abrir o arquivo app.ts em nossa IDE e colocar o conteúdo: 

import * as express from ‘express’; 
 

class App{ 

public app: express.Application; 
 

constructor(){ 

 this.app = express(); 

 this.routes(); 

routes(){ 

 this.app.route(‘/’).get((req, res) => res.status(200).json({ ‘message’: ‘Hello world!’ })); 

export default new App(); 

Agora no arquivo server.ts e configurar para nossa aplicação rodar na porta 5000 

import App from ‘./app’; 

App.app.listen(5000, () => console.log(‘servidor rodando, porta: 5000’)); 

Agora nosso servidor está pronto, vamos fazer uma pequena configuração no package.json, vamos localizar a linha onde está o comando script: {…} e adicionamos dentro da chave comando “start” 

“scripts”: { 

“test”: “echo \”Error: no test specified\” && exit 1″, 

“start”: “NODE_ENV=development ./node_modules/.bin/ts-node ./server/server.ts” 

}, 

Agora no terminal do Node dentro da pasta do projeto vamos rodar o comando: 

npm start 

Se não der nenhum erro, abra o endereço http://localhost: 5000 no seu navegador preferido, você deve conseguir ver o resultado a seguir: 

Nosso server está respondendo e funcionando sem erros, no próximo artigo vamos começar a desenvolver nossas funções? 

Aguarde o post da segunda parte. 


Compartilhe nas redes sociais Compartilhe nas redes.