chr-mock

0.3.3 • Public • Published

chr-mock

A simple Koa based mock-server, provide the most basic REST service on watch a js/json file for myself.😶
chr-mock David npm Travis Coveralls

Usage

$ npm i -g chr-mock
$ chr
 
  Usage: index [options] [command]
 
 
  Commands:
 
    watch [file]  Add a file to watch
 
  Options:
 
    -h, --help      output usage information
    -p, --port <n>  Add port to listen, default is 4000
 
# Default file path is ./test/data.test.json 
$ chr watch
~/test/data.test.json is watched

Method for now

Just one level provided: /tablename/id, because of the lazy author.

TODOs

  • get: http://***/tablename?page=2&limit=10.
  • get: http://***/tablename/id or tablename?name=value etc...
  • post: could change element too.

get

http://127.0.0.1:4000/tablename[/id/][?name=value]
 
http://127.0.0.1:4000/images
http://127.0.0.1:4000/images/1
http://127.0.0.1:4000/images?name=png
  • just has tablename
    The results of tablename's all datas.
  • tablename/id
    Nothing to say.
  • data filter
    When querys were followed with tablename, data would be filted by all key-value pair in querys.

Notice

  1. If query key is id, filter would be exact matching, others was fuzzy.
  2. These were keywords of query to reserve: page, limit, asc, desc. These would be used in the near future. maybe😝

post

POST http://127.0.0.1:4000/tablename
Content-Type: application/json
 
{ "id":"1","hehe":"123" }
 
###
 
POST http://127.0.0.1:4000/tablename?name=png
Content-Type: application/json
 
{ "id":"1","hehe":"123" }
  • without query: use the default keyword id to match data, if not even id, it would be added following by the last object in json file.
  • with query: query first, query > id!!!, if both query and body.id was setted, it would just match query. To solve this, follow query ?id=*.
  • query match is the same with get#Notice.
  • result is Object.assign(origin, new).

patch

one thing different with post, it could not add new element.

delete

DELETE http://127.0.0.1:4000/tablename
Content-Type: application/json
 
{ "name":"png","hehe":"123" }
  • delete without query params. filter is working on body, of course the same with get#Notice query.
  • result were all deleted elements.

Thank for

Teacher Ryan: ryan2-cli
Others in

LICENSE

MIT

Readme

Keywords

Package Sidebar

Install

npm i chr-mock

Weekly Downloads

1

Version

0.3.3

License

MIT

Last publish

Collaborators

  • chreem