Skip to content

Mock-json es una herramienta que te permite mockear servicios mediante sencillos ficheros JSON

License

Notifications You must be signed in to change notification settings

bancolombia/mock-json

{ mock: json }

mock-json es una herramienta que te permite mockear servicios mediante sencillos ficheros JSON

Requisitos

  • Debes tener nodejs y npm instalados en tu ordenador.

  • Debes tener instalado el packete pm2 de manera global en tu ordenador. Esto se logra, ejecutando el comando npm install pm2 -g desde la terminal. Este paquete ayuda a ejecutar procesos en segundo plano.

  • Por último, debes clonar este repositorio en tu ordenador.

Para los siguientes pasos, debes posicionarte dentro de la carpeta llamada servicio. Esta carpeta se encuentra en la raiz del repositorio.

Configuración y arranque del servicio

  • Dentro de esta carpeta existe un fichero llamado .env en donde puedes definir el puerto en el que va a ejecutarse la utilidad. Esta variable tiene 3005 como valor por defecto.

  • El siguente paso es instalar las dependencias de la herramienta ejecutando el comando npm install desde la terminal.

  • Por último, para arrancar el servicio debes ejecutar el comando npm run start desde la terminal.

"Cabe mencionar, que el comando de ejecutar el servicio, solo es necesario ejecutarlo una sola vez, ya que mediante la utilidad pm2 el servicio quedará ejecutandose en segundo plano, incluso si se reinicia el ordenador."

Creación de mocks

Para crear un mock, debes crear un fichero JSON en la carpeta files. Dicho archivo debe tener la siguiente estructura:

{
    "status": 201,
    "delay": 2000,
    "response": [
        {
            "id": 1,
            "name": "AMARILO"
        },
        {
            "id": 2,
            "name": "ARQUITECTURA Y CONCRETO"
        }
    ]
}

El fichero contiene tres claves: status, delay y response

  • La clave status corresponde al (código de respuesta) que se desea recibir cuando se consuma el servicio.
  • la clave delay corresponde a un valor en milisegundos que podrá usarse para simular que el servidor está tardando en procesar una tarea.
  • la clave response corresponde al body de la respuesta que se quiere simular.

Consumo estandar

Luego de la creación del mock en la carpeta files, por ejemplo getBuilders.json, se encontrará disponible el consumo de ese mock en localhost:{puerto}/nombreDelFicheroJSONSinExtension, por ejemplo: localhost:3005/getBuilders. Cabe agregar, que el consumo de mocks debe realizarse con el metodo GET haciendo uso de cualquier cliente http como: postman, navegador, etc...

Workflow en una aplicación Angular

Una manera de consumir el servicio de mocks en tu aplicación desarrollada con Angular, podría hacerse de la siguiente manera:

  • Ejecutando en la raiz de tu aplicación Angular el comando npm install mock-json-bancolombia desde la terminal.
  • Usando el patrón decorador, en la carpeta app cree un fichero como el siguiente:
import { MockJsonSettings, MockJsonDecorator } from 'mock-json-bancolombia';

export const MockJson = (mockName: string) => {
    const settings: MockJsonSettings = {
        servicePort: 3005, //puerto donde este corriendo el servicio
        active: true //preferiblemente por (environment)
    }
    return MockJsonDecorator(settings, mockName);
}

La clave active enciende o apaga el funcionamiento de la librería.

Por último, el decorador debe ubicarse encima del metodo que se quiere mockear, de la siguiente manera

@Injectable({
  providedIn: 'root'
})
export class BuildersService {

  constructor(private http: HttpClient) { }

  @MockJson('getBuildersMock') // este parametro corresponde al nombre del mock, ejemplo getBuildersMock.json
  getBuildersByUser(): Observable<any> {
    return this.http.get(`${environment.endpoint}/constructorasUsuario/consultaConstructoras`);
  }

}

¿Como contribuir?

  • Realizar fork
  • Realizar el respectivo Pull Request
  • Finalmente se validará el respectivo cambio y se aprobará.

About

Mock-json es una herramienta que te permite mockear servicios mediante sencillos ficheros JSON

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published