简Mock: 用文件来打开 Mock 姿势

255 阅读1分钟

SimpleMockServer

让 Mock 更简单,打造文件式 Mock

项目地址github.com/couriourc/m…

技术栈:Bun,Elysia,mockjs,Mustache

Why

是否还在为前端部署头疼,是否还在为部署静态服务烦恼,是否还在嫌弃 Mock 数据流程麻烦,大多数情况,我都不喜欢必须把静态数据进行强制集成到项目中,至少对于很多老项目也没法做这个事儿,不如试试目录式模拟,拖入到对应的文件,然后启动应用,就可以完成这个操蛋的事情。

使用说明

将需要 Mock 的文件夹放置在 apis 目录下,然后启动服务,其中 api 规则为,目录决定前缀,[api_suffix].[api_method] .json,其中,api_suffix 表示 api 路径,api_method,表示拦截的方法,支持 get|post|patch|head|delete|option|put ,这个只是为了保持结果一致,这里自动拦截了 index.json 为 /。

例如

└─apis
    └─demo
        │  index.get.json -> api为 demo/ get 方法
        │  index.json 会被 index.get.json  覆盖
        │  index.post.json
        │  querybyentity.json -> api为 demo/querybyentity/ get 方法
        │
        └─index
                test.json ->  api为 demo/index/test get 方法

基本功能

这里支持类似 Vue 的 {{}} 写法,并对,替换后的结果采用 Mockjs 来转换,也就是支持通过 json 生成随机数据。

文件内容为:

{
  "result": "{{body.schema}}"
}

以及 mockjs.com/examples.ht…

{
  "list|1-10": [
    {
      "id|+1": 1
    }
  ]
}

随机生成如下

randomify.png

image.png

配置文件 .simple-mock

ROOT_DIR=.
API_DIR=apis
STATIC_DIR=./static
STATIC_ROUTE_PREFIX=static
PORT=3000
SILENT=
ERROR_LOG_FILE_PATH=./error.log
LOG_SIZE=10M
DEBUG_LOG_FILE_PATH=./debug.log
WATCH=