Como escrever uma API REST em TypeScript em 30 minutos: na prática

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Introdução: por que TypeScript para REST API?

O desenvolvimento web moderno é impensável sem APIs claras e escaláveis. TypeScript, sendo uma extensão estritamente tipada sobre JavaScript, permite criar REST APIs confiáveis com um número mínimo de erros em tempo de execução. Neste artigo, na prática, passo a passo, criaremos uma REST API completa em TypeScript usando o popular framework Express. Todo o processo levará no máximo 30 minutos, e o resultado estará pronto para uso em projetos reais.

Abordaremos: inicialização do projeto, configuração do TypeScript, criação de rotas, trabalho com middleware, tratamento de erros e teste de endpoints. Todos os exemplos de código podem ser executados imediatamente e adaptados às suas necessidades.



Passo 1: Inicialização do projeto e instalação de dependências

Primeiro, criaremos um novo diretório para o projeto e o inicializaremos. Abra o terminal e execute:

mkdir my-ts-apicd my-ts-apinpm init -y

Agora instalaremos os pacotes necessários:

npm install expressnpm install -D typescript @types/node @types/express ts-node nodemon

Criaremos o arquivo de configuração do TypeScript:

npx tsc --init

Edite o tsconfig.json, incluindo as seguintes opções:

{  "compilerOptions": {    "target": "ES2020",    "module": "commonjs",    "outDir": "./dist",    "rootDir": "./src",    "strict": true,    "esModuleInterop": true,    "skipLibCheck": true  }}

Adicione os scripts no package.json:

"scripts": {  "build": "tsc",  "start": "node dist/index.js",  "dev": "nodemon --exec ts-node src/index.ts"}


Passo 2: Criação da estrutura básica e do primeiro endpoint

Crie a pasta src e dentro dela o arquivo index.ts. Vamos começar com um servidor simples que responderá a requisições GET:

import express, { Request, Response } from 'express';

const app = express();const PORT = process.env.PORT || 3000;

// Middleware para parsing de JSONapp.use(express.json());

// Rota básicaapp.get('/', (req: Request, res: Response) => { res.send('REST API em TypeScript está funcionando!');});

app.listen(PORT, () => { console.log(`Servidor rodando em http://localhost:${PORT}`);});

Execute o servidor com o comando npm run dev e abra http://localhost:3000. Você verá a mensagem de boas-vindas.



Criação do modelo de dados

Para uma API completa, precisamos de uma entidade. Vamos criar um modelo simples de usuário:

// src/models/user.tsexport interface User {  id: number;  name: string;  email: string;  age: number;}

export type CreateUserDto = Omit;


Passo 3: Implementação das operações CRUD

Agora criaremos um controller e rotas para trabalhar com usuários. Crie o arquivo src/routes/users.ts:

import { Router, Request, Response } from 'express';import { User, CreateUserDto } from '../models/user';

const router = Router();let users: User[] = [ { id: 1, name: 'Ivan', email: 'ivan@example.com', age: 28 }, { id: 2, name: 'Maria', email: 'maria@example.com', age: 32 }];let nextId = 3;

// GET /users - obter todos os usuáriosrouter.get('/', (req: Request, res: Response) => { res.json(users);});

// GET /users/:id - obter usuário por IDrouter.get('/:id', (req: Request, res: Response) => { const id = parseInt(req.params.id); const user = users.find(u => u.id === id); if (!user) { return res.status(404).json({ message: 'Usuário não encontrado' }); } res.json(user);});

// POST /users - criar novo usuáriorouter.post('/', (req: Request, res: Response) => { const { name, email, age }: CreateUserDto = req.body; if (!name || !email || !age) { return res.status(400).js

Blogs

Book Recommendations