chr-mock
v0.3.3
Published
A Koa based the most basic REST mock-server
Downloads
3
Readme
chr-mock
A simple Koa based mock-server, provide the most basic REST service on watch a js/json file ~~for myself~~.:no_mouth:
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
- 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/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