Simulaciones portables
Una simulación portable es la forma empaquetada de un mock: la simulación entera, specs, endpoints estáticos, configuración y contextos, como archivos planos. Portable quiere decir que el paquete viaja: los mismos archivos sirven en tu laptop, en Docker, dentro de CI y alojados en la plataforma, y nada impide que corran en todos esos lugares a la vez.
Un comando
Con la CLI instalada, cualquier spec OpenAPI se convierte en un mock corriendo:
mockzilla petstore.ymlEl servidor arranca en el puerto 2200 con el explorador de API en su raíz, la misma interfaz navegable que sirve una simulación alojada.
Acepta más que un archivo:
mockzilla https://petstore3.swagger.io/api/v3/openapi.json # una spec por URL
mockzilla ./ # una carpeta de specs o de servicios
mockzilla petstore.mockz # una simulación empaquetadaConsulta Instalar la CLI para tener mockzilla en tu máquina, y Correr una simulación en local para la vía del .mockz: cada simulación desplegada te entrega ahí su paquete, así que la alojada y la local siguen siendo el mismo mock.
La carpeta es la simulación
Apuntar el motor a un directorio lee una de tres formas, de lo desechable al proyecto completo:
- Un montón de specs: suelta archivos de spec en una carpeta y cada uno se vuelve un servicio con el nombre de su archivo. No hace falta nada más.
- Una carpeta de servicio: una spec más
config.ymlopcional (latencia, errores, upstream, montaje),context.yml(valores para los datos generados) y archivos de endpoints estáticos. - Un árbol
services/: una carpeta por servicio, todas con la misma estructura, que es la forma que despliega la GitHub Action y la que trae la plantilla.
Los endpoints estáticos siguen la convención de la app: los segmentos de la ruta como carpetas, el método como última carpeta, index.<ext> como cuerpo.
Consulta Endpoints y respuestas estáticas.
Edita y míralo cambiar
El servidor vigila tus archivos. Guarda una spec, una configuración, un contexto o un endpoint estático y el servicio afectado se cambia en caliente, sin reinicio: edita el YAML a la izquierda de tu pantalla, haz curl del nuevo comportamiento a la derecha.
Los mismos ajustes, como archivos
Todo lo que una simulación alojada configura en la app, una portable lo configura en config.yml por servicio: inyección de latencia y de errores, un upstream con caída al mock, caché, historial, replay. Las opciones y su significado coinciden una a una con la página Ajustes del servicio.
La referencia completa de flags y configuración vive junto al motor: documentación del modo portable.
Un paquete, muchos lugares
La gracia del paquete es correrlo en todos lados a la vez, desde un solo conjunto de archivos:
- En tu máquina mientras desarrollas, con recarga en caliente incluida.
- En CI: un paso del pipeline levanta su propia copia, los tests corren contra ella, y muere con el job.
- Alojado: la misma carpeta se despliega con la GitHub Action, así que la URL compartida del equipo sirve exactamente lo que tiene el repo.
- Sin conexión o en una red aislada cuando toca: una vez que el binario y los archivos están ahí, no hace falta nada más.
Como cada copia lee los mismos archivos, el repositorio es la única fuente de verdad. Cada copia toma un merge a su propio ritmo: la URL alojada en el push que le sigue, un pipeline en su próxima corrida, una laptop en el próximo pull.