Lección 10 de 13 · Lectura y práctica
Tipos en APIs: Express + Zod + contratos
APIs tipadas Arma un endpoint real: valida input, tipa output y maneja errores sin duplicar logica. Conceptos clave Request validation (body/query) Response shape estable Separar controller vs service Ejemplo import express from.
Esta es una lección del contenido anterior de Cursalo. Si ya estudiaste o compraste este curso, entra con tu cuenta para guardar tu progreso y abrir el resto de las clases. No necesitas comprar nada de nuevo.
APIs tipadas
Arma un endpoint real: valida input, tipa output y maneja errores sin duplicar logica.
Conceptos clave
- Request validation (body/query)
- Response shape estable
- Separar controller vs service
Ejemplo
import express from 'express';
import { z } from 'zod';
const app = express();
app.use(express.json());
const Body = z.object({ title: z.string().min(3) });
app.post('/courses', (req, res) => {
const parsed = Body.safeParse(req.body);
if (!parsed.success) return res.status(400).json({ ok: false, error: 'invalid' });
return res.status(201).json({ ok: true, data: { id: 'c_1', ...parsed.data } });
});
Ejercicio
- Crea un endpoint GET /health que devuelva ok true.
- Agrega un POST /items con validacion de Zod.
Checklist de mastery
- Valido inputs en todos los endpoints.
- Tengo respuestas consistentes (ok/data/error).