chr-mock
A simple Koa based mock-server, provide the most basic REST service on watch a js/json file for myself.😶
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/imageshttp://127.0.0.1:4000/images/1http://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
- If query key is
id
, filter would be exact matching, others was fuzzy. - 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/tablenameContent-Type: application/json { "id":"1","hehe":"123" } ### POST http://127.0.0.1:4000/tablename?name=pngContent-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/tablenameContent-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