DEV Community

Cover image for Cómo Mockear una API en Apidog sin Escribir Código
Roobia
Roobia

Posted on • Originally published at apidog.com

Cómo Mockear una API en Apidog sin Escribir Código

Su equipo de frontend está bloqueado: el backend de GET /users y GET /orders aún no está listo, pero la interfaz necesita datos realistas para renderizar listas, paginar y manejar estados vacíos. En lugar de mantener archivos JSON manuales que se desincronizan de la API real, puede generar respuestas simuladas directamente desde la especificación.

Prueba Apidog hoy

Si ya tiene una especificación de API, Apidog puede crear una simulación funcional desde el esquema del endpoint, sin configuración adicional ni código. Smart Mock interpreta los nombres y tipos de los campos para producir datos plausibles: name genera nombres, email genera correos electrónicos y createdAt genera fechas.

En esta guía aprenderá a:

  • Simular GET /users y GET /orders.
  • Localizar y llamar a una URL de mock.
  • Entender qué respuesta tiene prioridad.
  • Corregir resultados cuando Smart Mock no infiere el valor esperado.

Para una introducción al concepto, consulte qué es el mocking de API y cómo funciona. También puede revisar JSON Schema para entender las restricciones que Smart Mock respeta.

Qué hace Smart Mock y por qué ahorra tiempo

El motor de simulación de Apidog puede devolver varios tipos de respuesta:

  1. Smart Mock: datos generados automáticamente desde la especificación.
  2. Ejemplo de respuesta: un ejemplo definido en el endpoint.
  3. Respuesta personalizada: un cuerpo configurado manualmente.
  4. Simulación condicional: respuestas según parámetros de la solicitud.
  5. Scripts de simulación: respuestas cuyos valores dependen de la solicitud.

Opciones de simulación en Apidog

Smart Mock es la opción sin configuración. Está integrado en Apidog junto con las herramientas de diseño, depuración y pruebas.

Cuando un endpoint tiene un esquema de respuesta:

  • No necesita escribir un cuerpo de ejemplo.
  • No necesita crear reglas manuales.
  • Cada campo se completa según su tipo, nombre y restricciones.
  • Si el esquema cambia, la simulación cambia con él.

Esto permite que frontend y backend trabajen sobre la misma fuente de verdad.

Antes de empezar: el único requisito

Smart Mock necesita un esquema de respuesta en el endpoint.

Si diseñó la API en Apidog, agregue el esquema en la definición de respuesta. Si importó un archivo OpenAPI, normalmente los esquemas ya estarán incluidos.

Sin una respuesta definida, Smart Mock no tiene información para generar datos útiles.

Para utilizar Local Mock, necesitará el cliente de escritorio, ya que esta opción no está disponible en Apidog Web. Puede descargar Apidog para seguir los ejemplos.

Paso a paso: simular GET /users y GET /orders

Vamos a crear una simulación para una API de comercio electrónico con dos endpoints.

Paso 1: definir los endpoints y sus esquemas de respuesta

Cree GET /users con un cuerpo de respuesta como este:

{
  "id": 1024,
  "name": "Amara Osei",
  "email": "amara.osei@example.com",
  "phone": "+1-415-555-0148",
  "createdAt": "2026-03-11T09:24:00Z",
  "isActive": true
}
Enter fullscreen mode Exit fullscreen mode

Después, cree GET /orders con una lista de pedidos:

[
  {
    "orderId": "ORD-58210",
    "userId": 1024,
    "total": 84.50,
    "currency": "USD",
    "status": "shipped",
    "createdAt": "2026-05-02T14:03:00Z"
  }
]
Enter fullscreen mode Exit fullscreen mode

Asegúrese de que cada propiedad tenga un tipo en el esquema. Smart Mock utiliza los tipos y nombres de los campos para elegir valores adecuados.

Paso 2: copiar la URL de simulación

Cada endpoint recibe una URL de mock automáticamente.

Puede encontrarla en:

  • Modo DESIGN: pestaña API, debajo del endpoint.
  • Modo DEBUG: pestaña Mock.

Haga clic en Clic para copiar.

La acción solo copia la URL. Si el endpoint no usa GET o requiere un cuerpo de solicitud, deberá incluir el método HTTP y el body al realizar la llamada.

En modo de ruta, una URL de Local Mock tiene esta estructura:

http://127.0.0.1:4523/m1/{projectID}-{versionNo}-{serverNo}/users
Enter fullscreen mode Exit fullscreen mode

Local Mock se inicia automáticamente mientras el cliente de Apidog está abierto.

También puede usar el modo ID para apuntar a un endpoint concreto:

http://127.0.0.1:4523/m2/{projectID}-{versionNo}-{serverNo}/{endpointId}
Enter fullscreen mode Exit fullscreen mode

Paso 3: llamar a la simulación

Llame a GET /users con curl:

curl http://127.0.0.1:4523/m1/1234567-0-0/users
Enter fullscreen mode Exit fullscreen mode

Smart Mock puede devolver una respuesta como esta:

{
  "id": 3187,
  "name": "Diego Marchetti",
  "email": "diego.marchetti@example.net",
  "phone": "+1-628-555-0113",
  "createdAt": "2026-01-27T18:41:22Z",
  "isActive": true
}
Enter fullscreen mode Exit fullscreen mode

Los valores no son ruido aleatorio. Smart Mock usa coincidencia por nombre de propiedad:

  • name se interpreta como un nombre.
  • email se interpreta como un correo electrónico.
  • createdAt se interpreta como una fecha.
  • isActive se interpreta como un booleano.

Al repetir la solicitud, los valores dinámicos se regeneran. Esto resulta útil para probar listas, estados vacíos y variaciones de contenido en la interfaz.

Llame a GET /orders de la misma forma:

curl http://127.0.0.1:4523/m1/1234567-0-0/orders
Enter fullscreen mode Exit fullscreen mode

Obtendrá un array de pedidos con totales, estados y marcas de tiempo generados a partir del esquema.

Cómo Smart Mock decide cada valor

Smart Mock aplica una prioridad de generación de datos de tres niveles.

  1. Campo de simulación (Mock Field) Si configura un valor o expresión personalizada en una propiedad, ese valor tiene prioridad.

Puede usar:

  • Un valor fijo para devolver siempre el mismo valor.
  • Una declaración Faker para generar valores dinámicos.

Por ejemplo, puede configurar status para devolver valores como shipped, pending o delivered.

  1. Coincidencia por nombre de propiedad (Property Name Matching) Si no existe un campo de simulación configurado, Smart Mock compara el nombre de la propiedad con reglas integradas basadas en patrones o expresiones regulares.

Por eso campos como email o createdAt generan valores apropiados automáticamente.

  1. JSON Schema Si el nombre no coincide con ninguna regla, Smart Mock usa el tipo y las restricciones del esquema para generar un valor predeterminado.

Prioridad de generación de datos de Smart Mock

Los datos generados respetan las restricciones del esquema JSON, incluidas:

  • Longitud de cadenas.
  • Valores enum.
  • Rangos numéricos.
  • Longitud de arrays.

Por ejemplo:

{
  "type": "string",
  "enum": ["pending", "shipped", "delivered"]
}
Enter fullscreen mode Exit fullscreen mode

Con ese esquema, Smart Mock solo devolverá uno de esos tres valores.

También puede definir restricciones para un total:

{
  "type": "number",
  "minimum": 1,
  "maximum": 1000
}
Enter fullscreen mode Exit fullscreen mode

O exigir una cantidad mínima de elementos en un array:

{
  "type": "array",
  "minItems": 3
}
Enter fullscreen mode Exit fullscreen mode

Apidog también admite localizaciones de simulación para generar datos en diferentes idiomas y formatos regionales.

Cuando Smart Mock no genera el valor esperado

Smart Mock realiza inferencias y, en algunos casos, necesitará guiarlo.

Por ejemplo:

  • sku puede terminar como una cadena genérica.
  • total puede ser un número válido, pero no tener el rango esperado.
  • Un campo de estado puede necesitar valores limitados.

Aplique estas soluciones en orden, desde la menos específica hasta la más controlada.

1. Ajuste el esquema

Antes de crear reglas personalizadas, añada restricciones al esquema.

Para un SKU:

{
  "type": "string",
  "pattern": "^[A-Z]{3}-[0-9]{5}$"
}
Enter fullscreen mode Exit fullscreen mode

Para un estado:

{
  "type": "string",
  "enum": ["pending", "shipped", "delivered"]
}
Enter fullscreen mode Exit fullscreen mode

Para un importe:

{
  "type": "number",
  "minimum": 0.01,
  "maximum": 9999.99
}
Enter fullscreen mode Exit fullscreen mode

Smart Mock respetará estas restricciones.

2. Configure un Mock Field

Use un Mock Field cuando el esquema no pueda expresar completamente el resultado que necesita.

Ejemplos:

  • Use un valor fijo para currency si siempre debe ser USD.
  • Use una declaración Faker si necesita valores dinámicos controlados.

La capa Faker de Apidog se basa en conceptos similares a Mock.js. Consulte la guía sobre cómo usar Faker en Apidog para conocer la sintaxis de las expresiones.

3. Añada una regla de coincidencia por nombre

Si el mismo campo aparece en muchos endpoints, cree una regla global para ese nombre.

Por ejemplo, si sku aparece en productos, inventario y pedidos, puede definir una regla para generar siempre el formato correcto.

En Apidog, vaya a:

  1. Settings
  2. General Settings
  3. Feature Settings
  4. Mock Settings
  5. New

Defina la condición que debe cumplir el nombre del campo y asígnele una expresión de simulación. A partir de ese momento, cada campo sku del proyecto usará la regla configurada.

Prioridad de respuestas: qué prevalece realmente

Un endpoint puede tener varias fuentes posibles de respuesta. Apidog decide cuál devolver mediante el ajuste Default mock method, disponible en:

Project Settings > Mock Settings
Enter fullscreen mode Exit fullscreen mode

Hay dos opciones.

Smart Mock Primero

Es la opción predeterminada:

Mock Expectation → Smart Mock
Enter fullscreen mode Exit fullscreen mode

Apidog primero busca una Expectativa de Simulación coincidente. Si no encuentra una, Smart Mock genera la respuesta.

Ejemplo de respuesta primero

Esta opción cambia el orden:

Mock Expectation → Response Example → Smart Mock
Enter fullscreen mode Exit fullscreen mode

Apidog primero evalúa una Expectativa de Simulación. Si no coincide, intenta devolver un Ejemplo de Respuesta. Smart Mock queda como respaldo.

Las Mock Expectations siempre tienen la máxima prioridad cuando sus condiciones coinciden.

Por ejemplo, puede devolver un 404 para un usuario concreto:

Si userId = 9999 → devolver 404
Enter fullscreen mode Exit fullscreen mode

Esta regla se aplicará independientemente del método de simulación predeterminado.

Para crear respuestas basadas en parámetros, consulte cómo simular respuestas API condicionales en Apidog.

Resumen práctico:

Mock Expectation > Response Example o Smart Mock
Enter fullscreen mode Exit fullscreen mode

La prioridad entre Response Example y Smart Mock depende de la configuración del proyecto.

Mock Local, Cloud Mock y Runner Mock

Smart Mock y Custom Mock definen cómo se genera una respuesta. Local Mock, Cloud Mock y Runner Mock definen dónde se ejecuta.

Local Mock

Local Mock se ejecuta en su equipo mediante el cliente de Apidog.

Características:

  • Se inicia automáticamente con el cliente.
  • Solo está disponible mientras el cliente está abierto.
  • Escucha en 127.0.0.1:4523.
  • No está disponible en Apidog Web.
  • Para acceder desde otro dispositivo de la red, debe usar la IP LAN de su equipo.

Úselo para desarrollo local de frontend.

Cloud Mock

Cloud Mock se aloja en los servidores de Apidog.

Características:

  • Es accesible 24/7.
  • Está desactivado por defecto.
  • Debe activarlo desde la gestión de entornos.
  • Usa URLs con https://mock.apidog.com.
  • Mantiene la estructura de rutas m1 y m2.
  • Está pensado para pruebas, no para tráfico de producción.

Úselo cuando otros miembros del equipo o una vista previa desplegada necesiten acceder al mock.

Runner Mock

Runner Mock se autoaloja en la infraestructura de su equipo.

Úselo cuando la simulación deba permanecer dentro de su red o servidores internos.

Para comparar opciones alojadas, consulte la comparación de herramientas de simulación de API en línea. Para configurar mocks alojados, revise la guía de Apidog Cloud Mock.

Reglas de enrutamiento que debe conocer

Hay algunas reglas de routing que pueden afectar a sus pruebas.

Las rutas deben comenzar con /

Esta ruta funciona correctamente:

/orders
Enter fullscreen mode Exit fullscreen mode

Una URL completa que no comienza con / no utiliza el entorno de simulación. Una ruta sin barra inicial solo funciona en modo ID.

Endpoints con el mismo método y ruta

Si dos APIs comparten el mismo método HTTP y ruta, el modo de ruta no puede diferenciarlas.

Añada este parámetro de consulta para seleccionar el endpoint exacto:

?apidogApiId={endpointId}
Enter fullscreen mode Exit fullscreen mode

Los valores se regeneran al actualizar

Los datos dinámicos se regeneran cuando actualiza la solicitud.

Si ve exactamente la misma respuesta varias veces, compruebe si está viendo una respuesta almacenada en caché en lugar de ejecutar una nueva solicitud.

Automatice el flujo de trabajo con la CLI de Apidog

La CLI de Apidog no inicia ni aloja un servidor de simulación desde la terminal. Local Mock, Cloud Mock y Runner Mock son los componentes que sirven las respuestas.

La CLI ayuda a mantener el esquema que alimenta sus mocks actualizado a medida que evoluciona el proyecto.

Como Smart Mock genera datos a partir del esquema del endpoint, la calidad de la simulación depende de la especificación. La CLI de Apidog y herramientas de codificación asistida por IA, como Cursor, Claude Code, Trae y Codex, pueden ayudar a crear o actualizar endpoints y esquemas en el proyecto.

Cuando el frontend ya está desbloqueado, puede ejecutar escenarios de prueba contra el backend real desde CI:

apidog run -t <scenario_id> -e <env_id> -r html,cli
Enter fullscreen mode Exit fullscreen mode

Instale la CLI:

npm install -g apidog-cli
Enter fullscreen mode Exit fullscreen mode

Autentíquese con un token:

apidog login --with-token <your-token>
Enter fullscreen mode Exit fullscreen mode

Necesita Node.js v16 o posterior. Para integrarla en su pipeline, consulte cómo ejecutar Apidog en un pipeline CI/CD.

El mock mantiene al frontend avanzando. La CLI ayuda a verificar que el backend siga cumpliendo el mismo contrato.

Preguntas frecuentes

¿Tengo que escribir código para usar Smart Mock?

No. Si el endpoint tiene un esquema de respuesta, Smart Mock genera datos automáticamente.

Solo necesitará un valor fijo, una declaración Faker o un script de simulación si desea anular un comportamiento específico. Consulte la descripción general de la API de simulación para revisar los conceptos.

¿Por qué mi URL de simulación no devuelve datos?

Revise estos puntos:

  1. El endpoint tiene una definición de respuesta.
  2. La ruta comienza con /.
  3. El cliente de Apidog está abierto si utiliza Local Mock.
  4. Está usando el método HTTP correcto.
  5. Ha incluido un body si el endpoint lo requiere.

¿Cómo devuelvo un valor específico en vez de uno aleatorio?

Configure el Mock Field de la propiedad.

  • Un Fixed value devuelve siempre el mismo valor.
  • Una Faker statement devuelve valores dinámicos controlados.

El Mock Field tiene prioridad sobre la coincidencia por nombre y sobre los valores predeterminados del esquema.

¿Puede mi equipo acceder a un mock que se ejecuta en mi portátil?

Local Mock solo está disponible mientras el cliente está abierto y escucha en 127.0.0.1:4523.

Para que el mock esté disponible de forma continua, active Cloud Mock en https://mock.apidog.com.

¿Qué ocurre si tengo un ejemplo de respuesta y Smart Mock?

Depende de Default mock method:

  • Con Smart Mock Primero, Smart Mock genera el cuerpo cuando no existe una Mock Expectation coincidente.
  • Con Ejemplo de respuesta primero, Apidog intenta devolver primero el Response Example.
  • Una Mock Expectation coincidente siempre anula ambas opciones.

Conclusión

Smart Mock convierte un esquema de API en una simulación funcional sin código ni configuración adicional.

El flujo práctico es simple:

  1. Defina el esquema de respuesta.
  2. Copie la URL de mock desde la pestaña API o Mock.
  3. Llame al endpoint desde su frontend o con curl.
  4. Ajuste el esquema, el Mock Field o las reglas de coincidencia si necesita controlar los datos.
  5. Use Mock Expectations para respuestas condicionales o casos específicos.

Cuando frontend y backend comparten el mismo contrato, puede seguir desarrollando la interfaz aunque el backend todavía no esté disponible.

Top comments (0)