UNPKG

mock-json-response

Version:
86 lines (64 loc) 2.42 kB
# mock-json-response A flexible RESTful API provider for front end developers to mock server response. The basic idea of this project is to provide ready to use tool to mock a given response. ## Installation Use the package manager [npm](https://nodejs.org/en/download/) to install mock-json-response. ```bash npm install mock-json-response ``` ## Usage ```js const logicDirectory = __dirname + '/logic'; const dataDirectory = __dirname + '/data'; require('mock-json-response')(logicDirectory, dataDirectory) ``` Directory address of both logic and data should be passed to mock-json-response. On successful start mock-json-response will be listening to 3000 port (by default). ## functions directory This contains JS files that would have 3 sections: 1. logic: A function that would get the data and request object, ani kind of data manipulation can be performed. 2. request: This object defines "method": type of request (GET, POST, PATCH, DELETE) and "urlPath": Path of the request as fields. 3. response: This object defines response status and response data. ## data directory This contains JSON files with raw response. ## Request Possible fields of the request object ```js { method: "GET", //type of request urlPath: "/mock/test", //path of the request headers: { "x-mock": { //header keys contains: "error", //matchers to match the incoming header value to passed value }, "x-purchase": { equalTo: "mock" } }, } ``` ## Response Possible fields of the response object. If both inlineData and bodyFileName is present inlineData will take precedence. ```js { status: 200, //status to be returned headers: { //headers in response "Content-Type": "application/json", }, inlineData: { //a way to pass raw data inline test: 'inline data' }, bodyFileName: "data.json" //name of the file with raw json data } ``` ## logic ```js logic: function ({ headers, params }, { data }) { //data manipulation logic goes here } ``` ## Contributing Pull requests are welcome. For major changes or features, please open an issue first to discuss what you would like to change. ## Why MJR? 1. Request Matching 2. Response Manipulating ## Git book For more information and detailed explanation. Please visit: [gitbook](https://akhilgangula.gitbook.io/mock-json-response)