Giter Site home page Giter Site logo

davideduma / mock-json Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bancolombia/mock-json

0.0 0.0 0.0 888 KB

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

License: Apache License 2.0

Shell 1.07% JavaScript 98.93%

mock-json's Introduction

{ 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á.

mock-json's People

Contributors

davideduma avatar david-marquez-v avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.