Introducción
yRest es un servidor REST API mock sin configuración para desarrolladores frontend. Lee un archivo db.yml y expone automáticamente una API REST CRUD completa — incluyendo relaciones, parámetros de consulta, paginación, flujos SSE y rutas estáticas personalizadas — sin necesidad de backend.
npx @yrest/cli serve db.yml# → REST API en http://localhost:3070Cuándo usarlo
Sección titulada «Cuándo usarlo»- Estás construyendo un frontend y necesitas una API realista antes de que el backend esté listo.
- Necesitas un mock predecible para tests de integración (Vitest, Playwright, Cypress).
- Quieres hacer una demo de un flujo de UI sin mantener un servidor real.
- Necesitas SSE o un comportamiento de endpoint personalizado que
json-serverno puede manejar.
Comparativa
Sección titulada «Comparativa»Tanto yRest como json-server comparten la misma filosofía sin configuración — apúntalos a un archivo de datos y obtén una API REST al instante. La diferencia está en hasta dónde llega cada uno. yRest extiende el modelo con un sistema de relaciones más rico, operadores de consulta tipados, flujos SSE, escenarios de mock condicionales y una API programática completa. Si json-server cubre tus necesidades, sigue usándolo. Si has llegado a sus límites, yRest es el siguiente paso.
| Característica | yRest | json-server |
|---|---|---|
| Base de datos YAML | ||
| Sin configuración | ||
| CRUD completo | ||
Operadores de campo (_gte, _like, _regex…) | ||
| Relaciones: many2one, one2one, many2many | ||
Auto-embedding (_nested: true) | ||
Proyección de campos (_fields) | ||
| Modo paginable (respuesta envelope) | ||
Rutas personalizadas (_routes) | ||
Variables de plantilla ({{}params.id}}) | ||
| Escenarios condicionales | ||
| Funciones handler | ||
Rutas SSE (_method: SSE) | ||
| Endpoints de snapshot | ||
| Exportación OpenAPI 3.0 | ||
| API programática para frameworks de test | ||
| Tipos TypeScript |
Instalación
Sección titulada «Instalación»Añade yRest a tu proyecto como dependencia de desarrollo:
npm install -D @yrest/cliO ejecútalo directamente sin instalar — útil para una prueba rápida:
npx @yrest/cli serve db.ymlUna vez instalado, crea los archivos de inicio y arranca el servidor:
npx @yrest/cli init # crea db.yml + yrest.config.yml en el directorio actualnpx @yrest/cli serve db.yml # → REST API en http://localhost:3070El servidor observa los cambios en db.yml y se recarga automáticamente. Consulta Inicio rápido para un tutorial paso a paso con un ejemplo real.