API Playground
Así habla tu app con su servidor: pide, crea y cambia datos, y cada respuesta llega clara.
En vivo. Usa la API de AIM.
Como lo ve tu cliente
Un ejemplo de la vida real: Imagina la app de tareas de tu equipo. Alguien crea «Llamar al proveedor», otra persona la marca como hecha y todos ven el cambio, porque cada acción viaja al servidor y vuelve con su respuesta.
Por dentro
Qué hace, en términos técnicos
Una consola para probar una API REST real hecha con NestJS. Lista, crea, edita y borra tareas en tu propio sandbox, y mira el código de estado, los tiempos, las cabeceras y el JSON de cada respuesta.
- Tecnologías
- NestJS
- Zod
- Swagger
- Vitest
- Supertest
- Docker
Arquitectura
1.La consola, en tu navegador
Arma la petición, la envía con CORS a otro dominio y muestra el estado, los tiempos, las cabeceras y el JSON. También escribe el curl y el fetch equivalentes.
2.API REST en NestJS (Render)
Controlador, servicio y repositorio. Cada visitante trabaja en su propio sandbox en memoria, con la cabecera X-Sandbox-Id.
3.Validación y límites
Esquemas de Zod, errores con la misma forma en español o en inglés según Accept-Language, y 429 con Retry-After al pasar el límite.
4.Documentación y pruebas
OpenAPI en Swagger, y pruebas de extremo a extremo con Vitest y Supertest para cada endpoint.
En cifras
- peticiones por minuto por conexión
- 60
- tareas como máximo en cada sandbox
- 50
- sin uso y el sandbox se borra
- 30 min
El código
Decisiones
- DEC-014: API híbrida, con NestJS en Render para esta demo (se abre en otra pestaña)
- DEC-019: Content Security Policy estricta, con la API de Render en connect-src (se abre en otra pestaña)
Registradas en docs/DECISIONES.md, con su contexto y las alternativas descartadas.
La app de tareas del equipo
Tu celular
Tareas del equipo
Pidiendo las tareas al servidor…
El servidor
Cada acción viaja hasta aquí y vuelve con su respuesta.
El celular de tu compañera
Tareas del equipo
Pidiendo las tareas al servidor…
El mismo espacio de pruebas que tu celular, visto desde otro dispositivo.
Tu sandbox
Cada petición lleva este id en la cabecera X-Sandbox-Id. Es tu espacio privado en la API: empieza con 3 tareas de ejemplo, admite hasta 50 y se borra tras 30 minutos sin uso.
Preparando tu sandbox…
Petición
Respuesta
Elige un ejemplo y envía la petición. Aquí verás el código de estado, los tiempos, las cabeceras y el JSON de la respuesta.
Código equivalente
La misma petición, con tu sandbox, para tu terminal (bash, zsh o Git Bash) o tu código.
curl -i 'https://aimweb-api.onrender.com/api/v1/tasks?sort=createdAt:desc&limit=10' \
-H 'X-Sandbox-Id: tu-sandbox-id' \
-H 'Accept-Language: es'Historial
Tus últimas 10 peticiones en esta pestaña. Elige una para ver otra vez su respuesta.
Todavía no has enviado ninguna petición.
¿Lo quieres para tu negocio?
Esto es parte de lo que construyo en el servicio de aplicativos web. Mira qué incluye o calcula un presupuesto de referencia para tu caso.
¿Te interesa cómo está hecho? Míralo por dentro
Cómo funciona
La API de ejemplo Tareas corre en Render, en otro dominio, y el navegador la llama con CORS. Cada visitante trabaja en su propio sandbox en memoria: la consola crea un id, lo envía en la cabecera X-Sandbox-Id y la API te da 3 tareas de ejemplo. Admite hasta 50, y el sandbox se borra tras 30 minutos sin uso.
Los datos se validan con esquemas de Zod y todos los errores llegan con la misma forma: un código, un mensaje en español o en inglés, según lo pida la cabecera Accept-Language (la consola pide el idioma de esta página), y, si aplica, los problemas campo por campo. La lista filtra por estado y prioridad, busca sin importar tildes, ordena por fecha y pagina con cursor. Hay un límite de 60 peticiones por minuto por conexión (responde 429 con Retry-After), cada respuesta trae su tiempo en el servidor (X-Response-Time) y todo está documentado con OpenAPI en Swagger.
Los datos pasan por un repositorio: hoy se guardan en memoria y pueden pasar a Postgres sin tocar el controlador ni las reglas. Las pruebas de extremo a extremo, con Vitest y Supertest, cubren cada endpoint, la validación, el sandbox, CORS y el límite de tasa.
La API usa el plan gratuito de Render: si nadie la usa en unos 15 minutos se duerme, y la primera petición tarda cerca de un minuto mientras despierta. La consola te avisa cuando eso pasa.