A plugin for JSON API mock
string - the location of mock files
object - default config of mock file return
defaultMockFileCfg.delay: number - response delay time in milliseconds
defaultMockFileCfg.delayOffset: number - the maximum delay time offset in milliseconds
defaultMockFileCfg.headers: object - the extra response headers
function - change the mockFileKey for the request in order to use other mock file for response
({
// original: POST /api/users?_method=GET => /api/users/post.js
// formatted: POST /api/users?_method=GET => /api/users/get.js
mockFileKeyFormatter: ({ headers, pathname, method, search, originalMockKey }) => {
if (search._method) {
return {
method: search._method,
pathname,
};
}
return originalMockKey;
},
});
Create mock file in the configed directory (filepath format like ${pathanme}/${method}.js
), mock plugin will reading these files and make response, for examples:
api/login/post.js
// should be active
exports.enable = true;
exports.mock = ({ request, params, query, body, method, headers }) => ({
// response data
data: {},
// the response will be delayed in 90~110 ms
delay: 100,
delayOffset: 10,
// extra headers
headers: {
'custom-header': 'value',
},
// response status code
statusCode: 200,
});
Also, dynamic params in route is supported, for examples, api/users/{id}.js
will make response to /api/users/1
or /api/users/2
. And you will get params { id: 1 / 2 }
in mockFile's mock function.
Any request can not find specify mock file or mock file is inactive, it will be skipped to next plugin.