Hoje em dia, criar uma API eficiente e escalável com Node.js e TypeScript é mais simples e poderoso do que nunca. No CodeInit, gostamos de abordar tutoriais de maneira prática e direta, ajudando você a construir soluções profissionais que o mercado realmente pede. Neste artigo, vou te mostrar, passo a passo, como configurar uma API moderna utilizando as melhores práticas para 2025.
Se você é iniciante ou mesmo um desenvolvedor experiente buscando acelerar seu workflow, este guia é para você. Vamos juntos nessa jornada!
Por que usar Node.js e TypeScript?
Node.js continua sendo uma das tecnologias mais populares para backend, e quando combinado com TypeScript, você tem o melhor dos dois mundos: velocidade e segurança. TypeScript adiciona tipagem estática, o que torna seu código mais fácil de manter e reduz erros comuns.
Em 2025, é fundamental dominar ferramentas que trazem produtividade e que estão alinhadas com o mercado.
O que você precisa antes de começar
Antes de iniciar, você precisa garantir que o ambiente está preparado. Aqui estão os pré-requisitos:
- Node.js 20 ou superior
- Editor de texto - Recomendo o Visual Studio Code
- Conhecimento básico de JavaScript e terminal
- npm ou yarn instalado no sistema
Dica: Use o terminal integrado do VS Code para seguir este tutorial mais facilmente.
Passo 1: Configurando o ambiente
Primeiro, certifique-se de que o Node.js está instalado:
node -v
Se tudo estiver certo, você deve ver a versão do Node.js. Caso contrário, instale a versão mais recente pelo site oficial.
Agora, vamos criar a estrutura do projeto:
mkdir minha-api && cd minha-api
npm init -y
Esse comando cria o arquivo package.json, que gerencia as dependências do projeto.
Passo 2: Instalando o TypeScript
TypeScript é essencial para quem busca manutenção e organização em projetos maiores. Vamos instalá-lo:
npm install typescript tsx @types/node --save-dev
Agora, configure o TypeScript criando um arquivo tsconfig.json:
tsc --init
Edite o arquivo para refletir as melhores práticas de 2025:
{
"compilerOptions": {
"target": "ES2022",
"module": "CommonJS",
"strict": true,
"outDir": "dist",
"rootDir": "src"
}
}
Crie o diretório src onde vamos organizar nosso código:
mkdir src
Passo 3: Adicionando ESLint e Prettier
Manter um código limpo é crucial. Vamos adicionar o ESLint e Prettier para garantir qualidade e padronização.
Instale as dependências:
npm install eslint prettier eslint-config-prettier eslint-plugin-prettier --save-dev
Agora crie o arquivo .eslintrc.json:
{
"env": {
"node": true,
"es2022": true
},
"extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended", "prettier"],
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"]
}
E configure o Prettier criando o arquivo .prettierrc:
{
"semi": true,
"singleQuote": true
}
Passo 4: Construindo a API
Criando a rota de saúde
Agora é hora de colocar a mão na massa e criar nossa API. Vamos usar o Express, um framework minimalista para Node.js.
Instale o Express e seus tipos:
npm install express @types/express
Crie o arquivo src/index.ts e adicione o seguinte código:
import express, { Request, Response } from 'express'
const app = express()
app.use(express.json())
// Rota de saúde com tipos definidos
app.get('/health', (req: Request, res: Response) => {
res.status(200).json({ status: 'API rodando com sucesso!' });
})
app.listen(3000, () => {
console.log('Servidor rodando na porta 3000');
})
Para rodar o servidor, adicione o seguinte script ao package.json:
"scripts": {
"start": "tsx watch src/index.ts"
}
E execute: npm start
Você deve ver a mensagem: "Servidor rodando na porta 3000". Teste acessando: http://localhost:3000/health para verificar a saúde da API.
Adicionando a rota de Pokémons
Agora vamos expandir a API com uma rota que retorna uma lista de Pokémons.
Atualize o arquivo src/index.ts adicionando o seguinte código:
// Interface para definir o tipo de um Pokémon
interface Pokemon {
id: number;
name: string;
type: string;
}
// Dados de exemplo
const pokemons: Pokemon[] = [
{ id: 1, name: 'Pikachu', type: 'Electric' },
{ id: 2, name: 'Charmander', type: 'Fire' },
{ id: 3, name: 'Bulbasaur', type: 'Grass/Poison' }
]
// Rota que retorna a lista de Pokémons
app.get('/pokemons', (req: Request, res: Response<Pokemon[]>) => {
res.status(200).json(pokemons)
})
Agora teste acessando: http://localhost:3000/pokemons para obter a lista de Pokémons.
Conclusão
Neste guia, você aprendeu como configurar uma API moderna com Node.js e TypeScript, começando com uma rota simples e expandindo para incluir dados tipados. Este é apenas o começo! Com essa base, você pode implementar autenticação, conexão com bancos de dados e muito mais.
Se este artigo foi útil, compartilhe com outros desenvolvedores e inscreva-se na nossa newsletter para não perder as próximas dicas. Vamos juntos dominar o mundo do desenvolvimento!
Top comments (0)