0.3.3 • Published 7 years ago
chr-mock v0.3.3
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