Setup a mock server easily.
Why use this module?
- Build a bridge between Frontend and Backend
- This allows for parallel development
To use mocer, you has two choices: Cli or Middleware.
$ npm install -g mocer
After create a server, you can add some md file to mocks dir, for example:
my-project
├── app.js
├── mocks
│ ├── users
│ │ ├── 1.GET.md
│ │ ├── 2.GET.md
│ │ └── 3.GET.md
│ ├── users.GET.md
│ ├── users.POST.md
│ └── users.PUT.md
└── package.json
$ cd my-project/mocks
$ mocer --baseDir .
And boom!! You will see something in you browser.
if browser-sync
var mocer = require('mocer');
var gulp = require('gulp');
var browserSync = require('browser-sync').create();
// Static server
gulp.task('browser-sync', function() {
browserSync.init({
server: {
baseDir: './',
middleware: [
mocer(__dirname + '/mocks')
]}
});
});
if express
var express = require('express');
var mocer = require('mocer');
var app = express();
app.use(mocer(__dirname + '/mocks'));
app.listen(3000);
if webpack-dev-server
var mocer = require('mocer');
module.exports = {
devServer: {
before: function(app) {
app.get(/^\/(apis|_apis)\/*/, mocer(path.resolve(__dirname, '../mocks'))) //apis为匹配接口路径,_apis匹配接口生成的文档页面路径
},
contentBase: path.join(__dirname, "../src"),
host: '0.0.0.0'
}
}
if connect
var connect = require('connect');
var mocer = require('mocer');
var app = connect();
app.use(mocer(__dirname + '/mocks'));
app.listen(3000);
After create a server, you can add some md file to mocks dir, for example:
my-project
├── app.js
├── mocks
│ ├── users
│ │ ├── 1.GET.md
│ │ └── 2.GET.md
│ ├── users.GET.md
│ ├── users.POST.md
│ └── users.PUT.md
└── package.json
After start your server, you can use it.
For example 1 :
curl -i http://localhost:12306/users?_status=200
will get response:
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Date: Mon, 27 Jul 2015 16:23:34 GMT
Connection: keep-alive
Transfer-Encoding: chunked
[{
"id": 1,
"name": "foo",
"email": "[email protected]",
}, {
"id": 2,
"name": "bar",
"email": "[email protected]",
}]
_status=200
mean that you get a response with http status code 200. By default, _status
equal to 200
. so, curl http://localhost:12306/users
will get a collect response too.
For example 2 :
curl -X POST http://localhost:12306/users?_status=422
will get response:
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json;charset=UTF-8
Date: Mon, 27 Jul 2015 16:22:45 GMT
Connection: keep-alive
Transfer-Encoding: chunked
{
"code" : 1234,
"description" : "bad email format"
}
You can see the Complete Example: