0.0.7 • Published 7 years ago

braindead-json-api v0.0.7

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

braindead-json-api

Very straightforward JSON serving server.

Created to work offline when API server is not available. Just put your JSON response files in ./db folder and do npm start.

Installation

This app requires node v7.6.0 or higher for ES2015 and async function support.

$ npm install -g braindead-json-api

Usage

$ bja -h

  Usage: bja [options] <dir>

  Braindead Json Api

  Options:

    -h, --help                        output usage information
    -V, --version                     output the version number
    -p, --port [port]                 Port to listen
    -a, --ip [ip]                     IP address to listen
    -P, --prefix [prefix]             Prefix for api
    -l, --log                         Log HTTP requests
    --update-method [updateMethod]    HTTP method for partial update
    --replace-method [replaceMethod]  HTTP method for replace
    -R, --routes [routes]             Custom HTTP routes

<dir> should contain folders and json files. For example, if the content of your <dir> looks like this:

dir
├── cats
│   └── 53.json
└── cats.json

With the default config you will have following endpoints:

  • GET /cats - will return the content of <dir>/cats.json
  • GET /cats/53 - will return the content of <dir>/cats/53.json

Update and replace methods

By default the HTTP method used to update the document is PATCH and for the full replace with the request is PUT. You can change them by specifying --update-method and --replace-method arguments accordinglyy.

Custom routes

If you want to provide custom routes which cannot be mapped to the folder structure you can provide json or js file which will export an array with the following structure:

  • Each array item describes one route
  • Route has the following structure:
{
    route: <route path>,
    method: <route method (GET, POST, PUT, etc),
    response: <path to the response json file without .json extension>,
    statusCode: <status code, 200 by default>
}

An example of route:

{
    route: '/auth/login/',
    method: 'POST',
    response: '_custom/login',
    statusCode: 200
}

Response JSON file is relative to the specified <dir>. In this case the response file should be located in <dir>/_custom/login.json

Disclaimer

I thing you understand that you SHOULD NOT USE THIS ON PRODUCTION BY ALL MEANS.

License

MIT