|
1 | | -## dev-mock-cli |
2 | | -支持能力/价值: |
3 | | -- Mock API |
4 | | -- 读取Swagger API,并生成接口 |
5 | | -- 无需担心跨域问题 |
6 | | -- 安装和启动方便 |
| 1 | +说明:前端的工作中,mock api是比较麻烦的事情,特别是API交付节点太晚导致前端项目延期背锅。所以构建了当前项目,用来配合前端项目快速生成mock API。 |
7 | 2 |
|
8 | | -待办: |
9 | | -- [已完成]支持版本:node>=18 |
10 | | -- [已完成]发布启动的配置信息汇总,提示产品使用文档:CLI使用说明,配置说明mock.config.json,提示当前运行的action风格还是restful风格 |
11 | | -- [已完成]读取配置文件,全局使用处理,并确认默认文件的优先级:命令行 > 配置文件 > 默认配置 |
12 | | -- [已完成]如何remote api,网络不通,进行告警,并不再转发 |
13 | | -- [已完成]上传npm的时候,指定文件 |
14 | | -- [已完成]restful: 读取swagger,生成json,处理中,晚上CLI的文档,用来测试 |
15 | | -- TODO: 返回值固定匹配和规则定制 |
16 | | -- 生成单元测试 |
17 | | -- CLI使用文档 |
18 | | -- 录制演示视频 |
19 | | -- 优化打印日志,全部英文显示 |
20 | | -- 配置npm可以发布的文件 |
21 | | -- 支持自动生成mock.config.json |
22 | | -- 同时只能支持一个风格,当风格切换时,检测到有mock文件夹,则提示清空 |
23 | | - - 当用户之前用restful风格,后面切换成了action后,在代码里面兼容,如果读取格式不对,就报错 |
24 | | -- TODO: .js默认加载 |
25 | | -- TODO: 请求参数校验、返回数据特殊处理 |
26 | | -- TODO: mock能力细节处理,支持不走本地的local json |
| 3 | +## 支持能力/价值: |
27 | 4 |
|
28 | | -### 二、启动一个Mock-API服务 |
| 5 | +1. Mock API |
| 6 | +1. 读取Swagger文档,并生成API接口 |
| 7 | +1. 无需担心跨域问题 |
| 8 | +1. 安装方便:node环境一行指令安装/Docker启动 |
| 9 | +1. API生成读取顺序:本地mock -> swagger -> remote api |
29 | 10 |
|
30 | | -#### action 风格的api |
| 11 | +## 快速开始 |
31 | 12 |
|
| 13 | +要求node环境:node > 18,后续考虑降低成本 |
32 | 14 |
|
33 | | -在mock文件新建`[Action].json`文件,Action为对应api的名字,如果请求地址路径有参数,可以创建多层 |
34 | | - |
35 | | -比如一个请求url: `http://localhost:9000/list`, Action: "List"的api,数据为 |
36 | | - |
37 | | -```json |
38 | | -{ |
39 | | - "RetCode": 0, |
40 | | - "Message": "", |
41 | | - "Data": [] |
42 | | -} |
43 | | -``` |
44 | | - |
45 | | -在mock下新建list文件夹,并写入`List.json`, 执行命令`u-admin-cli mock`, 然后就可以请求接口了 |
46 | | - |
47 | | - |
48 | | - |
49 | | -还可以改动文件,再次请求接口内容也会跟着变化 |
50 | | - |
51 | | -```bash |
52 | | -u-admin-cli mock -n |
53 | | -``` |
54 | | - |
55 | | -### 三、功能介绍 |
56 | | - |
57 | | -1、mock - 启动本地开发服务 |
58 | | - |
59 | | -| 参数 | 别名 | 类型 | 默认值 | 描述 | |
60 | | -| ------ | ---- | ------ | -------------------- | ------------------------ | |
61 | | -| create | c | true | 创建mock数据 | |
62 | | -| PORT | P | number | 启动本地服务的端口号 | |
63 | | -| type | t | string | action | api类型:action、restful | |
64 | | - |
65 | | -2、dev - 启动本地开发服务 |
66 | | - |
67 | | -| 参数 | 别名 | 类型 | 默认值 | 描述 | |
68 | | -| ------------------ | ---- | ------- | -------------------- | ------------------ | |
69 | | -| projects | p | array | 启动的微应用名称 | |
70 | | -| PORT | P | number | 启动本地服务的端口号 | |
71 | | -| withoutOpenBrowser | wb | boolean | true | 取消自动打开浏览器 | |
72 | | -| env | e | object | | 开发自定义环境变量 | |
73 | | - |
74 | | -- 1、首先启动服务,获取启动项目的html代码 |
75 | | -- 2、挂载微服务的代码,子项目的port依次+1 |
76 | | - |
77 | | -### 四、发布版本 |
78 | | - |
79 | | -```bash |
80 | | -# 登录 npm |
81 | | -npm config set registry https://registry.npmjs.org/ |
82 | | - |
83 | | -npm login |
84 | | -``` |
85 | | - |
86 | | -1、修改版本号,执行下面命令 |
| 15 | +1、安装dev-mock-cli |
87 | 16 |
|
88 | 17 | ``` |
89 | | -npm run publish:patch |
| 18 | +yarn add -D dev-mock-cli |
90 | 19 | ``` |
91 | 20 |
|
92 | | -2、撤回 24 小时内发布的版本,撤回后 24 小时内不允许发布 |
93 | | - |
| 21 | +2、在项目根目录下新建`mock.config.json` |
94 | 22 | ``` |
95 | | -npm unpublish dev-mock-cli@1.0.2 |
| 23 | +{ |
| 24 | + "port": "9000", |
| 25 | + "type": "action", |
| 26 | + "proxyApiUrl": "http://localhost:9000", |
| 27 | + "cors": { |
| 28 | + "allowedHeaders": ["Origin", "X-Requested-With", "Content-Type", "Accept", "X-Accesstoken"], |
| 29 | + "allowCredentials": true, |
| 30 | + "maxAge": 86400 |
| 31 | + }, |
| 32 | + "swaggerApi": [ |
| 33 | + { |
| 34 | + "title": "swagger", |
| 35 | + "type": "action", |
| 36 | + "url": "http://subscri.xxx.com/swagger/doc.json" |
| 37 | + } |
| 38 | + ], |
| 39 | + "mockFields": { |
| 40 | + "RetCode": { |
| 41 | + "fixedValue": 0 |
| 42 | + } |
| 43 | + } |
| 44 | +} |
96 | 45 | ``` |
| 46 | +配置说明:待补充 |
97 | 47 |
|
98 | | -### 五、本地开发 |
| 48 | +3、启动mock |
99 | 49 |
|
100 | 50 | ``` |
101 | | -cd dev-mock-cli |
102 | | -yarn install |
103 | | -yarn start [command] |
104 | | -``` |
105 | | - |
106 | | -规则 |
107 | | -- 返回值固定匹配和规则定制 |
108 | | -custom.rules.js |
109 | | - |
110 | | -export default class 定义规则 |
111 | | - |
112 | | -- 固定值:RetCode: 0 |
113 | | -- 具体字段的类型返回值: Name/UserName Id String 返回mock值 |
114 | | -- 数据类型返回不同的值: Number 返回mock |
| 51 | +yarn dev-mock-cli mock |
| 52 | +``` |
0 commit comments