0 Replies Latest reply on May 4, 2015 8:24 AM by Ryan Rutan

    typicode/json-server

    Ryan Rutan

      typicode/json-server

      GitHub

      json-server - Get a full fake REST API with zero coding in less than 30 seconds (seriously)

       JSON Server

      Get a full fake REST API with zero coding in less than 30 seconds (seriously)

      Created with <3 for front-end developers who need a quick back-end for prototyping and mocking.

      For a live running version, see JSONPlaceholder.

       Example

      Create a db.json file

      {
        "posts": [
          { "id": 1, "title": "json-server", "author": "typicode" }
        ],
        "comments": [
          { "id": 1, "body": "some comment", "postId": 1 }
        ]
      }

      Start JSON Server

      $ json-server db.json

      Now if you go to http://localhost:3000/posts/1, you'll get

      { "id": 1, "title": "json-server", "author": "typicode" }

      Also, if you make POST, PUT, PATCH or DELETE requests, changes will be saved to db.json

       Routes

      Here are all the available routes.

      GET   /posts
      GET   /posts/1
      GET   /posts/1/comments
      GET   /posts?title=json-server&author=typicode
      POST  /posts
      PUT   /posts/1
      PATCH /posts/1
      DEL   /posts/1

      To slice resources, add _start and _end. An X-Total-Count header is included in the response.

      GET /posts?_start=0&_end=10
      GET /posts/1/comments?_start=0&_end=10

      To sort resources, add _sort and _order (ascending order by default).

      GET /posts?_sort=views&_order=DESC
      GET /posts/1/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 /

       Install

      $ npm install -g json-server

       Extras

       Static file server

      You can use JSON Server to serve your HTML, JS and CSS, simply create a ./public directory.

       Access from anywhere

      You can access your fake API from anywhere using CORS and JSONP.

       Remote schema

      You can load remote schemas:

       JS file support

      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

       Module

      You can use JSON Server as a module:

      var jsonServer = require('json-server')

      var server = jsonServer.create()         // Express server
      server.use(jsonServer.defaults)          // Default middlewares (logger, public, cors)
      server.use(jsonServer.router('db.json')) // Express router

      server.listen(3000)

      For an in-memory database, you can pass an object to jsonServer.route().

       Deployment

      You can deploy JSON Server. For example, JSONPlaceholder is an online fake API powered by JSON Server and running on Heroku.

       Links

       Video

       Articles

       Projects

       License

      MIT - Typicode

      Get a full fake REST API with zero coding in less than 30 seconds (seriously) .... pretty interesting ... for those looking to do UI work first while a service end-point is being built =)

      Shared with Jive Anywhere