mock-restful-server
v1.0.8
Published
A lightweight library to launch a mock restful server using models.
Downloads
3
Readme
MockRestfulServer
mock-restful-server
A lightweight restful api mock server using models.
Features
- Models management
- CRUD operations
API
Server infos
- Model structure infos GET http://{address}:{port}
CRUD
- Get collection records GET http://{address}:{port}/{collection}
- Get collection record GET http://{address}:{port}/{id}
- Create collection record POST http://{address}:{port}/
- Update collection record PUT http://{address}:{port}/{id}
- Delete collection record DELETE http://{address}:{port}/{collection}/{id}
Authentication
- Signup POST http://{address}:{port}/signup
- Login POST http://{address}:{port}/login
*Note: /login and /signup routes are reserved for authentication related mocking.
Maintenance
- Generate a whole random database according to the models POST http://{address}:{port}/_randomize
- Dump the current database POST http://{address}:{port}/_dump
Usage
Lib mode
$ npm install mock-restful-server
Methods signatures
function start(models, data, mode, port = 0)
*Note: without specifying the port argument a random port will be allocated by the system. The server listening address will be logged in the console at start.
Example
const mockRestfulServer = require('mock-restful-server');
const models = {
users: {
email: {
type: "string",
required: true
},
name: {
type: "string",
required: true
},
address: {
type: "string"
}
},
cars: {
name: {
type: "string",
required: true
},
brand: {
type: "string",
required: true
},
year: {
type: "number"
}
}
}
*Note: supported model attributes are "type" and "required". type can be either "number", "string", "boolean", "array" or "map".
const data = {
users: [{
email: '[email protected]',
name: 'John Doe',
address: 'Central Park Lake, NY'
}],
cars: [{
name: 'Mustang'
brand: 'Ford',
year: '1970'
}]
}
const mode = 'STRICT'
*Note: supported modes are STRICT and OPEN. OPEN is the default mode. In STRICT mode, two case will lead the server to throw an exception at saving time : trying to save a record with no model previously defined and trying to save a record having at least one field which doesn't exist in its model structure.
const { port, stop } = mockRestfulServer.start(models, data, mode, 8080)
// stop the server
stop()
CLI mode
$ npm install -g mock-restful-server
$ mock-restful-server --models=models.json --data=data.json --mode=STRICT --port=8080
License
MIT