Cómo escribir una API REST en TypeScript en 30 minutos: para principiantes

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Introducción

El desarrollo web moderno es impensable sin una API REST. Es la base sobre la que se construyen aplicaciones móviles, frontends SPA y microservicios. Si eres principiante y quieres aprender rápidamente a crear un backend, la combinación TypeScript + Express es el inicio ideal. TypeScript añade tipado estricto a JavaScript, lo que hace que el código sea más fiable y comprensible, especialmente al trabajar en equipo.

En esta guía, crearemos en 30 minutos una API REST completa para gestionar una lista de tareas (Todo list). Aprenderás a configurar el proyecto, describir modelos de datos, crear rutas y conectar una base de datos. Sin teoría innecesaria: solo práctica y código listo para ejecutar.

Se asume que ya tienes instalados Node.js (versión 18+) y npm. Si no es así, descárgalos desde el sitio oficial.



1. Preparación del proyecto e instalación de dependencias

Empezamos inicializando un nuevo proyecto TypeScript. Abre la terminal y ejecuta los comandos:

mkdir my-todo-apicd my-todo-apinpm init -y

Ahora instalamos los paquetes necesarios:

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

Creemos el archivo de configuración de TypeScript:

npx tsc --init

En el archivo tsconfig.json, asegúrate de que las siguientes líneas estén descomentadas y configuradas:

{  "compilerOptions": {    "target": "ES2020",    "module": "commonjs",    "outDir": "./dist",    "rootDir": "./src",    "strict": true,    "esModuleInterop": true,    "skipLibCheck": true,    "forceConsistentCasingInFileNames": true  },  "include": ["src/**/*"],  "exclude": ["node_modules", "dist"]}

Crea la carpeta src y el archivo src/index.ts — este será el punto de entrada de nuestra aplicación.

Añadimos scripts en package.json para una ejecución cómoda:

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


2. Creación del servidor básico con Express

Ahora escribimos un servidor mínimo con Express que escuchará en el puerto 3000. Abre src/index.ts y añade el siguiente código:

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

const app = express();const PORT = 3000;

// Middleware para parsear JSONapp.use(express.json());

// Ruta básica para verificarapp.get('/', (req: Request, res: Response) => { res.send('¡La API Todo está funcionando!');});

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

Ejecuta el servidor con el comando npm run dev y abre el navegador en http://localhost:3000. Deberías ver el mensaje "¡La API Todo está funcionando!".



3. Definición del modelo de datos y almacenamiento en memoria

Para simplificar, no conectaremos una base de datos de inmediato, sino que usaremos un almacenamiento temporal en memoria RAM. Crea el archivo src/models/todo.ts:

export interface Todo {  id: number;  title: string;  completed: boolean;  createdAt: Date;}

export let todos: Todo[] = [ { id: 1, title: 'Aprender TypeScript', completed: false, createdAt: new Date() }, { id: 2, title: 'Escribir una API REST', completed: false, createdAt: new Date() },];

Observa el uso de la interfaz Todo — esto garantiza que todos los objetos en el array tengan la misma estructura.



4. Implementación de rutas CRUD

Creemos el archivo src/routes/todos.ts con rutas completas para las operaciones Create, Read, Update y Delete.

import { Router, Request, Response } from 'express';import { Todo, todos } from '../models/todo';

const router = Router();

// GET /api/todos — obtener todas las tareasrouter.get('/', (req: Request, res: Response) => { res.

Blogs

Book Recommendations