Instructora
Santiago Rojas es Consultor de automatización e IA con base en Santiago, Chile. Su trabajo se enfoca en transformar temas complejos en rutas de aprendizaje claras, prácticas y fáciles de seguir.
Ha acompañado a estudiantes, profesionales y equipos de empresas en procesos de formación online, combinando teoría útil con ejercicios aplicables desde la primera clase.
En Cursalo diseña experiencias de aprendizaje con ejemplos reales, lenguaje directo y una estructura pensada para avanzar paso a paso sin perder contexto.
Este curso incluye 4 modulos, 12 lecciones y 3:19 horas de materiales.
Node: el runtime, el event loop y cómo pensar el rendimiento Node.js es un entorno de ejecución de JavaScript construido sobre el motor V8 de Chrome. Su superpoder no es la velocidad bruta de cálculo, sino su modelo de concurrencia: un único hilo principal que nunca se queda esperando una operación de entrada/salida (leer un archivo, consultar una base de datos, llamar a otra API). En lugar de bloquearse, delega esas operaciones y sigue atendiendo otras peticiones. Por eso Node brilla en APIs co
Estructura de proyecto, variables de entorno y configuración Una API que funciona en tu máquina pero falla en producción casi siempre tiene un problema de configuración. La regla de oro del enfoque Twelve-Factor es separar la configuración del código: lo que cambia entre tu portátil, el servidor de pruebas y producción (puertos, URLs de base de datos, claves) vive en el entorno, nunca dentro de los archivos versionados en Git. Una estructura sencilla y escalable mi-api/ src/ config.js # lee y va
Async/await: patrones seguros y errores comunes Las promesas y async/await son la forma moderna de escribir código asíncrono en Node. La sintaxis parece síncrona y eso la hace legible, pero esconde trampas que provocan fugas de memoria, peticiones que nunca responden y errores que se pierden en silencio. Dominar tres patrones te evita el 90% de los problemas. 1. Paralelizar cuando las operaciones son independientes Si dos consultas no dependen una de la otra, esperarlas en secuencia desperdicia
Routing: endpoints claros y consistentes El diseño de tus rutas es la primera impresión que tu API da a quien la consume. Unas rutas REST consistentes hacen que un desarrollador pueda adivinar el siguiente endpoint sin leer la documentación. La idea central de REST es modelar recursos (sustantivos en plural) y usar los métodos HTTP como verbos sobre ellos. El patrón de recursos Método y rutaAcciónStatus de éxito GET /coursesListar todos200 GET /courses/:idObtener uno200 POST /coursesCrear201 PAT
Middleware Middleware te permite aplicar logica transversal (auth/logs) sin duplicar en cada endpoint. Conceptos clave req/res/next Orden importa Error middleware Ejemplo app.use((req, _res, next) => { console.log(req.method, req.url); next(); }); app.use((err, _req, res, _next) => { res.status(500).json({ ok: false, error: 'internal' }); }); Ejercicio Crea un middleware que requiera un header X-Api-Key. Agrega un middleware de error al final. Checklist de mastery Uso middleware para no du
Validacion y errores Tu API debe fallar de forma predecible. Valida inputs y devuelve errores consistentes. Conceptos clave Validar body/query Errores: code + message No filtrar stack traces al cliente Ejemplo Formato recomendado: { ok: false, error: { code, message } } Ejercicio Define 3 codigos de error: VALIDATION, UNAUTHORIZED, NOT_FOUND. Implementa respuestas consistentes en 2 endpoints. Checklist de mastery No hay endpoint sin validacion. Errores consistentes para UI.
Postgres en APIs Conectar a DB es facil. Hacerlo seguro y estable es el trabajo. Aprende buenas practicas basicas. Conceptos clave Pool de conexiones Queries parametrizadas Timeouts y retries (idea) Ejemplo Regla: nunca concatenes strings para queries. Usa parametros. Ejercicio Implementa un SELECT parametrizado por id. Define un timeout por request. Checklist de mastery Evito SQL injection. Entiendo pool vs conexion unica.
Auth basica No reinventes auth. Aprende el flujo base: password hash, sesiones/tokens y autorizacion por recurso. Conceptos clave Hash de passwords (bcrypt) Sesion vs token Authorization: ownership checks Ejemplo Authorization rule: un usuario solo puede leer/modificar sus recursos. Ejercicio Define un middleware requireAuth() que verifique userId. Agrega ownership check a GET /users/:id. Checklist de mastery No guardo passwords en texto plano. Hago checks de ownership en API.
Paginacion Listas largas necesitan paginacion. Aprende un enfoque simple y estable para APIs. Conceptos clave limit + cursor orden estable por created_at + id evitar OFFSET en tablas grandes Ejemplo Cursor tipico: created_at + id para no perder ni duplicar items. Ejercicio Implementa GET /items?limit=20&cursor=... Asegura orden estable y repetible. Checklist de mastery Puedo paginar sin OFFSET. Mi API no duplica items entre paginas.
Logging Logs utiles responden: que paso, a quien, cuando y por que fallo. Sin eso, debug es adivinanza. Conceptos clave request id niveles (info/warn/error) no loguear secretos Ejemplo Log minimo: method, path, status, duration_ms, user_id (si aplica). Ejercicio Agrega duration_ms a tus logs. Enmascara tokens/keys si aparecen. Checklist de mastery Mis logs son accionables. No exfiltrado secretos en logs.
Rate limiting Un limite simple te salva de abuso y picos. Es parte del producto, no solo seguridad. Conceptos clave limitar por IP o user ventanas de tiempo responder 429 Ejemplo Regla simple: 60 requests/min por IP para endpoints publicos. Ejercicio Define limites para endpoints publicos vs privados. Devuelve 429 con mensaje claro. Checklist de mastery Tengo limites razonables por endpoint. Manejo 429 en cliente.
Documentacion Una API sin docs es soporte infinito. Documenta endpoints, inputs, outputs y errores. Conceptos clave OpenAPI (idea) Ejemplos reales de request/response Errores documentados Ejemplo Documenta al menos: POST /signup, GET /me, GET /items. Ejercicio Escribe docs de 1 endpoint con ejemplos. Incluye 2 casos de error. Checklist de mastery Mis endpoints tienen ejemplos. Los errores estan documentados.
Data Analyst at Microsoft
Responder al comentario