Get a full fake REST API with zero coding in less than 30 seconds (seriously)
Forked from https://github.com/typicode/json-server
Create a db.json
file
{
"posts": [
{
"uuid": "0003aae5-7543-6de4-f115-1b067a704106",
"name": "Post name 1"
},
{
"uuid": "0003asdf-7543-6de4-f115-1b067a70asdf",
"name": "Post name 2"
}
],
"comments": [
{
"uuid": "0003rewq-7543-6de4-f115-1b067a70rewq",
"name": "Comment name 1",
"post": {
"uuid": "0003aae5-7543-6de4-f115-1b067a704106",
"name": "Post name 1"
}
},
{
"uuid": "0003zxcv-7543-6de4-f115-1b067a70zxcv",
"name": "Comment name 2",
"post": {
"uuid": "0003asdf-7543-6de4-f115-1b067a70asdf",
"name": "Post name 2"
}
},
],
"tags": [
{
"uuid": "0003uiop-7543-6de4-f115-1b067a70uiop",
"name": "JavaScript",
"posts": [
{
"uuid": "0003aae5-7543-6de4-f115-1b067a704106",
"name": "Post name 1"
},
{
"uuid": "0003asdf-7543-6de4-f115-1b067a70asdf",
"name": "Post name 2"
}
]
}
]
}
Start JSON Server
$ json-server db.json
Now if you go to http://localhost:3000/posts/0003aae5-7543-6de4-f115-1b067a704106, you'll get
{
"uuid": "0003aae5-7543-6de4-f115-1b067a704106",
"name": "Post name 1"
}
Also, if you make POST, PUT, PATCH or DELETE requests, changes will be saved to db.json
Here are all the available routes.
GET /posts
GET /posts/0003aae5-7543-6de4-f115-1b067a704106
GET /posts/0003aae5-7543-6de4-f115-1b067a704106/comments
GET /posts?title=json-server&author=typicode
POST /posts
PUT /posts/0003aae5-7543-6de4-f115-1b067a704106
PATCH /posts/0003aae5-7543-6de4-f115-1b067a704106
DEL /posts/0003aae5-7543-6de4-f115-1b067a704106
To slice resources, add _start
and _end
.
GET /posts?_start=0&_end=10
GET /posts/0003aae5-7543-6de4-f115-1b067a704106/comments?_start=0&_end=10
To sort resources, add _sort
and _order
(ascending order by default).
GET /posts?_sort=views&_order=DESC
GET /posts/0003aae5-7543-6de4-f115-1b067a704106/comments?_sort=votes&_order=ASC
To make a full-text search on resources, add q
.
GET /posts?q=internet
Returns database.
GET /db
Returns default index file or serves ./public
directory.
GET /
$ npm install -g json-server
You can use JSON Server to serve your HTML, JS and CSS, simply create a ./public
directory.
You can access your fake API from anywhere using CORS and JSONP.
You can load remote schemas:
$ json-server http://example.com/file.json
You can use JS to programmatically create data:
module.exports = function() {
data = { users: [] }
// Create 1000 users
for (var i = 0; i < 1000; i++) {
data.users.push({ name: 'user' + i })
}
return data
}
$ json-server index.js
You can use JSON Server as a module:
var jsonServer = require('json-server-uuid')
var object = {
posts: [
{
"uuid": "0003aae5-7543-6de4-f115-1b067a704106",
"name": "Post name 1"
}
]
}
var router = jsonServer.router(object) // Express router
var server = jsonServer.create() // Express server
server.use(router)
server.listen(3000)
MIT - Typicode