Mockoon y Mockaroo

Descripción

Como utilizar Mockoon para mockear un backend y Mockaroo para generar respuestas mockeadas (en formato json).

Mockoon

Descarga

Podemos descargar Mockoon desde su página, si no queremos instalarlo podemos descargar la versión portable: Pagina Mockoon

Configuracion inicial

Por defecto Mockoon escucha en el puerto 3000 si queremos cambiarlo podemos hacerlo desde la pestaña de settings:

Para poner a la escucha el programa hacemos click en el play verde (arriba a la izquierda):

Si hemos hecho algun cambio en las rutas tendremos que reiniciar la escucha, se nos mostrará un icono de una flecha amarilla en ese caso:

Añadir rutas

Mockoon responderá a las rutas que le configuremos, si recibe una request para una ruta que no tiene configurada devolverá un 404 con un mensje de error

Para añadir rutas lo hacemos en la columna de la izquierda, por cada ruta podemos añadir varias respuestas, estas respuetas podemos hacer que sean aleatorias o en base a ciertos parámetros, y en el cuadro inferior introduciremos la respuesta que se enviará:)

Access-Control-Allow-Origin

Si lo necesitamos podemos configurar la cabecera Access-Control-Allow-Origin en una ruta, para ello lo hacemos de la siguiente manera en la pestaña de headers:

Gestionar Query Params

Si una solicitud viene con query params (parámetros en la url despues del "?"), podemos gestionarlos en la respuesta que vayamos a dar, para dar una respuesta de una manera o de otra.

Usaremos sentencias if para modificar la respuesta:

Para hacer una comprobación exacta:

{{#if (eq (queryParam 'page') 1)}}
{{/if}}

Comprueba que "page" sea 1

Para hacer una comprobación parcial (o para strings)

{{#if (includes (queryParam 'apellido') 'si')}}
{{/if}}

Comprueba que "apellido" sea 'si'

Un ejemplo completo es el siguiente:

{{#if (eq (queryParam 'page') 1)}}
{
  "nombre": "pepe",

  {{#if (includes (queryParam 'apellido') 'si')}}
  "apellido": "uno",
  {{/if}}

  "number": 1
}
{{/if}}

{{#if (eq (queryParam 'page') 2)}}
{
  "nombre": "paco",

  {{#if (includes (queryParam 'apellido') 'si')}}
  "apellido": "dos",
  {{/if}}

  "number": 2
}
{{/if}}

En este ejemplo se ve que al pasar los parametros page=2 y apellido=si se muestra la segunda respuesta incluyendo el apellido, tal y como lo habíamos puesto en la respuesta utilizando los if.

Mockaroo

Esta página nos permite generar una serie de datos de manera aleatoria en base a la estructura de un objeto que le indiquemos.

Pagina Mockaroo

Por defecto tenemos unos valores de ejemplo, podemos seleccionar el formato Json y darle a Preview:

Y se nos generará una respuesta como esta, con datos aleatorios:

Anidar objetos

Si queremos que se nos devuelva una respuesta con objetos anidados tendremos que usar la opción Json Array en uno de los campos:

Una vez tenemos el campo añadido le damos al icono de formulas (el que tiene un simbolo de sumatorio), y ahí dentro podremos definir nuestro objeto:

Y ahora las respuestas se generarán con nuestro subobjeto:

Si queremos que los datos que se muestran en el subobjeto sean tambien aleatorios tendremos que definir un campo oculto y usarlo despues dentro de nuestro subobjeto, para definir un campo oculto lo hacemos indicando __ (dos barras bajas seguidas) al principio del nombre del campo:

NOTA: el campo oculto tiene que estar difinido en la lista antes que el campo del subobjeto, si no obtendremos un error.

Una vez tenemos el campo oculto creado lo usamos dentro de nuestro subobjeto:

Ahora las respuestas se generaran con datos aleatorios dentro del subobjeto y el campo oculto que hemos definido no se mostrará como los otros, pero si que se muestra dentro del subobjeto (y sin las __ iniciales):

Tags

Token | Mockoon | Mockaroo