Saltar al contenido
Framework Ecosystems LabsUn contrato, muchos ecosistemas, la misma prueba.

Parte 1 — Responder: lo primero que hace cualquier framework#

⬅️ Parte 0 · 🎓 Todas las clases · 📖 Glosario · Parte 2 ➡️

De levantar un proceso que escucha en un puerto a servir una respuesta correcta. El terreno común de todos los frameworks de servidor.

Clases 11 a 25 · 15 en total · 15 construidas · 11 tecnologías en juego.

🧭 De qué va esta parte#

Lo primero que hace cualquier framework de servidor es recibir una petición y devolver una respuesta. Quince clases sobre esa frase, porque dentro de ella caben casi todas las decisiones que un framework toma por ti.

El recorrido va de lo más simple —levantar un proceso que responde hola— a lo que ya no lo es: negociar el formato, transmitir sin conocer el tamaño total, comprimir, y decidir quién puede leer tu respuesta desde otro origen.

Todo lo de aquí está definido en un estándar público, así que cuando diez frameworks de seis ecosistemas coinciden no es casualidad ni gusto de nadie: lo dicta la especificación. Y cuando difieren, la diferencia es un valor por omisión — que es precisamente lo que interesa comparar.

🎒 Qué da por sabido#

🎯 Qué sabrás hacer al terminarla#

🧵 Por qué en este orden#

Las cinco primeras clases son el núcleo mínimo: arrancar, enrutar, leer parámetros, elegir el verbo y elegir el código. Con eso ya se puede escribir una API entera, mal.

Las siete siguientes son lo que la separa de estar bien: cabeceras, cuerpo, negociación, redirecciones, estáticos, subidas y flujo.

Las tres últimas miran hacia abajo y hacia fuera: la compresión y CORS son decisiones de transporte, y la 025 abre el capó para ver qué hay entre el socket y tu función.

📚 Las clases#

# Clase Qué resuelve Nivel Estado
011 Levantar un servidor y responder Arrancar un proceso que escucha y devuelve una respuesta. 🟢 introductorio ✅ Construida
012 Rutas y parámetros de ruta Extraer del camino la parte variable. 🟢 introductorio ✅ Construida
013 Parámetros de consulta Leer la cadena de consulta y aplicar valores por omisión. 🟢 introductorio ✅ Construida
014 Verbos HTTP y su semántica Elegir el método correcto y respetar lo que promete. 🟢 introductorio ✅ Construida
015 Códigos de estado Devolver el código que describe lo ocurrido, no siempre 200. 🟢 introductorio ✅ Construida
016 Cabeceras: leer y escribir Usar las cabeceras como parte del contrato, no como decoración. 🟢 introductorio ✅ Construida
017 Cuerpo JSON: recibir y devolver Deserializar la entrada y serializar la salida sin sorpresas. 🟢 introductorio ✅ Construida
018 Negociación de contenido Servir la representación que el cliente pide. 🟡 intermedio ✅ Construida
019 Redirecciones Distinguir permanente de temporal y saber cuándo cambia el método. 🟢 introductorio ✅ Construida
020 Servir archivos estáticos Entregar un archivo del disco con el tipo y la caché correctos. 🟢 introductorio ✅ Construida
021 Subida de archivos Recibir multipart sin cargarlo entero en memoria. 🟡 intermedio ✅ Construida
022 Respuesta en flujo Enviar la respuesta a trozos, sin construirla entera antes. 🟡 intermedio ✅ Construida
023 Compresión Comprimir cuando compensa, y no cuando no. 🟡 intermedio ✅ Construida
024 CORS Entender la comprobación previa antes de configurarla. 🟡 intermedio ✅ Construida
025 Qué hace tu framework con el socket Ver la capa que hay debajo del framework: servidor, adaptador y protocolo. 🔴 avanzado ✅ Construida

🎬 Las tecnologías que aparecen#

Entre paréntesis, en cuántas clases de esta parte interviene cada una. Estar aquí no es una recomendación: es que el problema de esa clase existe de verdad para esa tecnología.

Ecosistema Tecnologías
Python FastAPI (15), Django (7), Flask (7)
Node.js Express (15), Fastify (7)
JVM Spring Boot (15)
.NET ASP.NET Core (14)
Go Gin (8)
PHP Laravel (7)
Ruby Ruby on Rails (7)
JavaScript Node.js (1)

📖 Las palabras que esta parte define#

Método HTTP · Código de estado · Cabecera · Negociación de contenido · Redirección · Respuesta en flujo · Codificación troceada · Bucle de eventos · Un hilo por petición · CORS · Origen · Comprobación previa

Todas, con su definición, en el glosario.

✅ Cómo se ejecuta una clase de esta parte#

node scripts/run-class.mjs 011

El verificador arranca cada implementación, la somete a su contrato.json y declara cuáles omitió por no encontrar su cadena de herramientas. Si te faltan cadenas, node scripts/doctor.mjs dice cuáles y cómo se instalan.

➡️ Y después#

La parte 2 se mete entre la petición y tu manejador: todo lo que ocurre antes de que tu código se ejecute, y por qué eso es donde vive casi toda la seguridad.