mock-json-server
Version:
Mock JSON Server
132 lines (100 loc) • 3.15 kB
Markdown
# Mock Json Server
[](https://github.com/prettier/prettier)
[](https://jenkins.joelpodrebarac.me/job/Mock-JSON-Server/job/master/)
Create a mock server using a json file.
## Installation
To install, you need to have NodeJS and NPM installed on your system. Go to [https://nodejs.org/en/](https://nodejs.org/en/), download and install one of the provided versions. Both NodeJS and NPM are included.
Install the mock-json-server package by running `npm install -g mock-json-server` in your terminal.
Using **npm v5.6.0 or later**? You can skip global installation and directly run `npx mock-json-server data.json` in a folder containing the below explained `data.json`.
**Thats it!**
## Example
To run the server run: `mock-json-server data.json` This starts a server on http://localhost:8000/
you can change the port by running `mock-json-server data.json --port=3000`
`data.json` contains:
```json
{
"/home": {
"get": {
"data": [
{"id":1,"name": "Steve"}
]
},
"post": {
"data": [
{"id":1,"name": "Steve French"}
]
}
}
}
```
A Get Request to http://localhost:8000/home will return.
```json
{
"data": [
{"id":1,"name": "Steve"}
]
}
```
A Post Request to http://localhost:8000/home will return.
```json
{
"data": [
{"id":1,"name": "Steve French"}
]
}
```
## Docker
Mock json server is also a docker image. Run it with the command
```bash
docker run --name mock-json-server -v $(pwd)/test/data.json:/usr/src/app/data.json -p 8000:8000 ajoelpod/mock-json-server
```
### Changing the port
Run the same command as above but with the `PORT` environment variable. Also change the -p to be equal to your new port.
```bash
docker run --name mock-json-server --env PORT=3000 -v $(pwd)/test/data.json:/usr/src/app/data.json -p 3000:3000 ajoelpod/mock-json-server
```
**or**
Just change the forwared ports
```bash
docker run --name mock-json-server -v $(pwd)/test/data.json:/usr/src/app/data.json -p 3000:8000 ajoelpod/mock-json-server
```
### Docker Compose
Example.
```yml
version: '3'
services:
mock-json:
image: 'ajoelpod/mock-json-server'
volumes:
- ./test/data.json:/usr/src/app/data.json
ports:
- 8000:8000
```
## Running Programmatically
```js
const server = require('mock-json-server');
const app = server({
"/home": {
"get": {
"data": [{ "id": 1, "name": "Steve" }]
},
"post": {
"data": [{ "id": 1, "name": "Steve French" }]
}
},
"/test/:id": {
"get": {
"data": [{ "id": 1, "name": "Steve" }]
},
"post": {
"data": [{ "id": 1, "name": "Steve French" }]
}
}
}, 8000); // Start the server with a JSON object;
// Start the server;
app.start();
// Reload the server with new data;
app.reload({ test : true });
// Stop the server
app.stop();
```