Giter VIP home page Giter VIP logo

dymock's Introduction

Dymock ๐Ÿ‘ฝ ๐Ÿ’ฅ

NPM version

A CLI to simplify the way you create mocks, dynamic REST APIs mocks. ๐Ÿ’ฅ

Dymock allows you to build a mock server in a simple way, without programing, focusing on configuration files.

It gives you the power to dynamically define witch response send back, based on params match.

Proposal

Create a tool that help us to unblock the mobile or frontend, API integration process. Making possible work in teams without API dependences at the development time.

So, Dymock should be a way to organize and define APIs contracts together (front/mobile | backend) and enable a simulation of the real API.

Summary

Basically, we allows you to build and run a server, just with config files, that can send back different responses based on the params received in the request.

Installation

We recommend install dymock globally using npm:

npm install -g dymock

Usage

By default dymock will try to find a .config file in a dir based on the request url.

e.g.

GET /user/login
DIR ./url/user/login/(.config.js OR .config.json)

The config file need to be named as .config and is responsible to define two things:

  • options: a list (array) of:

    • params: the params that we can match in. You don't need to set all the request, just params that you wanna match.
    • response: the object we'll return if match the params.
  • default: a default response if nothing match.

This config file can be a json or a js file, we recommend js to simplify the organization using require to import the response file.

e.g.

// JSON File

{
  "options": [
    {
      "params": {
        "cpf": 12345
      },
      "response": {
        "message": "client"
      }
    },
    {
      "params": {
        "cpf": 43210
      },
      "response": {
        "message": "not client"
      }
    },
    {
      "params": {}, // GET
      "response": {
        "message": "Login page"
      }
    }
  ],
  "default": {
    "error": {
      "message": "Invalid params"
    }
  }
}
// JS File

module.exports = {
  options: [
    {
      params: {
        cpf: 12345
      },
      response: require('./client.json'),
    },
    {
      params: {
        cpf: 43210
      },
      response: require('./not-client.json'),
    },
    {
      params: {}, // GET
      response: {
        message: 'Login page'
      }
    }
  ],
  default: {
    error: {
      message: 'Invalid params'
    }
  }
};

To run the server defining the port you can do:

The default port is: 3000

dymock -p 5000

You can get help running:

dymock -h

and the version:

dymock -v

Configuration

If you want to change the dir structure, you can define were each path will look for the config file.

To do that you need to create a .url-config.json file in your project root.

e.g.

[
  {
    "url": "user/login/password/forget",
    "path": "./remember-password"
  },
  {
    "url": "post/create/new",
    "path": "./post"
  }
]

Remember: If you create this config file, the default mechanism will be disabled.

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.