Introducción: ¿Por qué TypeScript para REST API?
El desarrollo web moderno es impensable sin crear APIs eficientes y seguras. TypeScript, como superconjunto de JavaScript, ofrece tipado estático, lo que reduce significativamente la cantidad de errores en tiempo de ejecución y mejora la legibilidad del código. En esta guía, mostraremos cómo escribir una REST API completa en TypeScript en solo 30 minutos. Aprenderás a configurar el proyecto, crear endpoints básicos y manejar errores. Este tutorial es ideal para desarrolladores principiantes que quieren dominar rápidamente la creación de aplicaciones de servidor.
Configuración del entorno e instalación de dependencias
Primero, es necesario crear un nuevo proyecto e instalar todos los paquetes necesarios. Asegúrate de tener instalados Node.js (versión 18 o superior) y npm.
Paso 1: Inicialización del proyecto
Abre la terminal y ejecuta los siguientes comandos:
mkdir my-rest-api
cd my-rest-api
npm init -y
Paso 2: Instalación de TypeScript y dependencias
Instala TypeScript, Express y los tipos necesarios:
npm install express
npm install -D typescript @types/node @types/express ts-node nodemon
- express — framework para crear el servidor.
- typescript — compilador de TypeScript.
- @types/express — tipos para Express.
- ts-node — para ejecutar TypeScript directamente.
- nodemon — reinicio automático del servidor ante cambios.
Paso 3: Configuración de tsconfig.json
Crea el archivo tsconfig.json en la raíz del proyecto:
{
"compilerOptions": {
"target": "ES2020",
"module": "commonjs",
"outDir": "./dist",
"rootDir": "./src",
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true
},
"include": ["src/**/*"],
"exclude": ["node_modules"]
}
Creación del servidor básico en TypeScript
Ahora crearemos la estructura de carpetas y el archivo principal del servidor.
Paso 4: Estructura del proyecto
Crea la carpeta src y el archivo src/index.ts:
mkdir src
touch src/index.ts
Paso 5: Escritura del servidor
Abre src/index.ts y agrega el siguiente código:
import express, { Request, Response } from 'express';
const app = express();
const PORT = process.env.PORT || 3000;
// Middleware para parsear JSON
app.use(express.json());
// Ruta básica
app.get('/', (req: Request, res: Response) => {
res.send('¡REST API en TypeScript funcionando!');
});
// Inicio del servidor
app.listen(PORT, () => {
console.log(`Servidor iniciado en el puerto ${PORT}`);
});
Paso 6: Agregar scripts en package.json
Actualiza package.json agregando scripts para desarrollo y compilación:
"scripts": {
"dev": "nodemon --exec ts-node src/index.ts",
"build": "tsc",
"start": "node dist/index.js"
}
Ahora inicia el servidor con el comando npm run dev. Deberías ver el mensaje "Servidor iniciado en el puerto 3000".
Implementación de endpoints CRUD
Crearemos un modelo de datos simple e implementaremos las operaciones de crear, leer, actualizar y eliminar (CRUD). Como ejemplo, tomaremos la entidad "Tarea" (Task).
Paso 7: Creación del modelo y almacenamiento
Crea el archivo src/models/Task.ts:
export interface Task {
id: number;
title: string;
completed: boolean;
}
// Almacenamiento temporal en memoria
export const tasks: Task[] = [
{ id: 1, title: 'Aprender TypeScript', completed: false },
{ id: 2, title: 'Escribir REST API', completed: false },
];
Paso 8: Creación de rutas
Crea el archivo src/routes/tasks.ts:
import { Router, Request, Response } from 'express';
```