1.5.6 • Published 5 years ago

mim-json-proxy v1.5.6

Weekly downloads
26
License
Apache-2.0
Repository
github
Last release
5 years ago

MIM JSON proxy

NPM Version

A tool which can be used as ‘man in the middle’ proxy. It can be used to sit between two JSON webservices endpoints (e.g. Facebook/Twitter and your application) to intercept the webservices traffic between them and modify it.

Features

  • Possibility to mock entire response and/or request
  • Possibility to mock only part of response and/or request
  • Possibility to mock response status code
  • Simulate delays on service calls
  • Easy way to change endpoints on the fly (i.e. developer / staging)
  • JSON based configuration with JS defined rules for flexibility
  • JSON based configuration is backed up by JSON schema

Getting started (API)

  1. Install the proxy
    npm i mim-json-proxy
  2. In the code
    const JsonProxy = require('mim-json-proxy');
    const proxy = new JsonProxy(options);
    proxy.start();

Getting started (command line)

  1. Install the proxy
    npm install -g mim-json-proxy
  2. Usage:
    mim-json-proxy {OPTIONS}

Examples

Examples can be found in the examples directory.

Options

Options are for API usage and the command line:

  • port: port to open the server on (default 3005)
  • configsDirectory: defines proxy configurations directory (default ./configs)
  • defaultConfigName: defines default configuration name (default proxy-config.json)
  • configUI.enabled: whether to enable the UI for easier proxy config adjustments (default true)
  • configUI.endpoint: path for the config UI (default /config)
  • bodyParserLimit: limit for express bodyParser (default 5mb)
  • cors: cors configuration to pass to express (default {credentials: true})
  • https: whether to start server using https or not (default false)
  • certificates.key: HTTPS certificate key path (default ./certificates/server.key)
  • certificates.cert: HTTPS certificate CRT path (default ./certificates/server.crt)

API

  • start(options): starts the server with provided options
  • addController(path, controller): possibility to define custom controller on the server (i.e. replacing /config)
  • addDynamicRule(endpointName, func): add dynamic rule, the func takes following as argument: { requestBody, responseStatusCode, responseBody, isResponse, isRequest, reqURL, reqMethod }

Developer notes

  • You can use npm start to run the proxy locally
  • Proxy runs on port 3005 by default to relay the communication to webservice. The /config endpoint can be used to adjust the configuration in simple UI
  • configs/proxy-config.json defines rules and endpoints
  • proxy-config.schema.json defines how the above file should look like
1.5.6

5 years ago

1.5.5

5 years ago

1.5.4

5 years ago

1.5.3

6 years ago

1.5.2

6 years ago

1.5.1

6 years ago

1.5.0

6 years ago

1.4.11

6 years ago

1.4.10

6 years ago

1.4.9

6 years ago

1.4.8

6 years ago

1.4.7

6 years ago

1.4.6

6 years ago

1.4.5

6 years ago

1.4.4

6 years ago

1.4.3

6 years ago

1.4.2

6 years ago

1.4.1

6 years ago

1.4.0

6 years ago

0.3.2

6 years ago

0.3.1

6 years ago

0.3.0

6 years ago

0.2.3

6 years ago

0.2.2

6 years ago

0.2.0

6 years ago