apifox-mock-generator 1.3.0 → 1.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/CHANGELOG.md +35 -2
  2. package/README.md +144 -17
  3. package/dist/package.json +6 -1
  4. package/dist/src/generators/templates/mock-template.d.ts.map +1 -1
  5. package/dist/src/generators/templates/mock-template.js +71 -9
  6. package/dist/src/generators/templates/mock-template.js.map +1 -1
  7. package/dist/src/generators/templates/type-template.js +152 -128
  8. package/dist/src/generators/templates/type-template.js.map +1 -1
  9. package/dist/src/types/mock/v1/auth/login/tenant.d.ts +3 -3
  10. package/dist/src/types/mock/v1/auth/login/tenant.d.ts.map +1 -1
  11. package/dist/src/types/mock/v1/auth/login/username.d.ts +16 -10
  12. package/dist/src/types/mock/v1/auth/login/username.d.ts.map +1 -1
  13. package/dist/src/types/mock/v1/auth/login/username.js.map +1 -1
  14. package/dist/src/types/mock/v1/auth/logout.d.ts +2 -1
  15. package/dist/src/types/mock/v1/auth/logout.d.ts.map +1 -1
  16. package/dist/src/types/mock/v1/auth/logout.js.map +1 -1
  17. package/dist/src/types/mock/v1/role/list.d.ts +3 -3
  18. package/dist/src/types/mock/v1/role/list.d.ts.map +1 -1
  19. package/dist/src/types/mock/v1/role/permissions.d.ts +3 -3
  20. package/dist/src/types/mock/v1/role/permissions.d.ts.map +1 -1
  21. package/dist/src/types/mock/v1/role.d.ts +14 -13
  22. package/dist/src/types/mock/v1/role.d.ts.map +1 -1
  23. package/dist/src/types/mock/v1/role.js.map +1 -1
  24. package/dist/src/types/mock/v1/tenant/permissions.d.ts +1 -36
  25. package/dist/src/types/mock/v1/tenant/permissions.d.ts.map +1 -1
  26. package/dist/src/types/mock/v1/tenant/permissions.js.map +1 -1
  27. package/dist/src/types/mock/v1/tenant/user/disabled.d.ts +5 -4
  28. package/dist/src/types/mock/v1/tenant/user/disabled.d.ts.map +1 -1
  29. package/dist/src/types/mock/v1/tenant/user/disabled.js.map +1 -1
  30. package/dist/src/types/mock/v1/tenant/user/list.d.ts +3 -3
  31. package/dist/src/types/mock/v1/tenant/user/list.d.ts.map +1 -1
  32. package/dist/src/types/mock/v1/tenant/user/role.d.ts +5 -4
  33. package/dist/src/types/mock/v1/tenant/user/role.d.ts.map +1 -1
  34. package/dist/src/types/mock/v1/tenant/user/role.js.map +1 -1
  35. package/dist/src/types/mock/v1/tenant/user/unlink.d.ts +5 -4
  36. package/dist/src/types/mock/v1/tenant/user/unlink.d.ts.map +1 -1
  37. package/dist/src/types/mock/v1/tenant/user/unlink.js.map +1 -1
  38. package/dist/src/types/mock/v1/tenant/user.d.ts +3 -3
  39. package/dist/src/types/mock/v1/tenant/user.d.ts.map +1 -1
  40. package/dist/src/types/mock/v1/user/avatar.d.ts +5 -4
  41. package/dist/src/types/mock/v1/user/avatar.d.ts.map +1 -1
  42. package/dist/src/types/mock/v1/user/avatar.js.map +1 -1
  43. package/dist/src/types/mock/v1/user/password.d.ts +5 -4
  44. package/dist/src/types/mock/v1/user/password.d.ts.map +1 -1
  45. package/dist/src/types/mock/v1/user/password.js.map +1 -1
  46. package/dist/src/types/mock/v1/user/permissions.d.ts +1 -21
  47. package/dist/src/types/mock/v1/user/permissions.d.ts.map +1 -1
  48. package/dist/src/types/mock/v1/user/permissions.js.map +1 -1
  49. package/dist/src/types/mock/v1/user/self.d.ts +5 -4
  50. package/dist/src/types/mock/v1/user/self.d.ts.map +1 -1
  51. package/dist/src/types/mock/v1/user/self.js.map +1 -1
  52. package/dist/src/types/mock/v1/user.d.ts +5 -4
  53. package/dist/src/types/mock/v1/user.d.ts.map +1 -1
  54. package/dist/src/types/mock/v1/user.js.map +1 -1
  55. package/package.json +6 -1
package/CHANGELOG.md CHANGED
@@ -5,7 +5,40 @@
5
5
  格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),
6
6
  版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
7
7
 
8
- ## [1.3.0] - 2025-01-27
8
+ ## [1.3.2] - 2025-10-18
9
+
10
+ ### 🐛 错误修复
11
+
12
+ - **引用解析修复** - 修复引用解析逻辑,确保正确解码引用名称,避免引用类型处理错误
13
+ - **数组类型处理增强** - 增强数组类型处理,支持空对象和引用类型的数组元素,提升复杂数据结构的 Mock 生成准确性
14
+ - **默认值处理优化** - 提供合理的默认值处理,避免返回 null,确保 Mock 数据生成的完整性和可用性
15
+
16
+ ## [1.3.1] - 2025-10-18
17
+
18
+ ### 🐛 错误修复
19
+
20
+ #### 🔧 配置和构建优化
21
+
22
+ - **package.json 更新** - 更新项目依赖和配置
23
+ - **构建优化** - 改进项目构建流程
24
+ - **版本管理** - 统一版本管理策略
25
+
26
+ ### 🚀 技术改进
27
+
28
+ - **依赖更新** - 更新相关依赖包版本
29
+ - **构建稳定性** - 提升构建过程的稳定性
30
+ - **代码质量** - 持续改进代码质量
31
+
32
+ ### 🔄 重构改进
33
+
34
+ #### 📝 接口名称优化
35
+
36
+ - **请求参数接口** - 更新请求参数接口名称以提高一致性
37
+ - **查询参数接口** - 更新查询参数接口名称以提高一致性
38
+ - **接口命名规范** - 统一接口命名规范,提升代码可读性
39
+ - **类型定义优化** - 优化类型定义结构,提高开发体验
40
+
41
+ ## [1.3.0] - 2025-10-18
9
42
 
10
43
  ### 🎯 核心功能改进
11
44
 
@@ -78,7 +111,7 @@
78
111
  - **性能优化** - 优化路由加载和匹配性能
79
112
  - **类型安全** - 增强类型定义和类型安全
80
113
 
81
- ## [1.1.1] - 2025-01-27
114
+ ## [1.2.0] - 2025-10-16
82
115
 
83
116
  ### 🎯 核心功能改进
84
117
 
package/README.md CHANGED
@@ -29,7 +29,7 @@
29
29
  - ⚡ **增量更新** - 智能识别文件变化,仅更新必要内容
30
30
  - 🎨 **代码格式化** - 使用 Prettier 自动格式化生成的代码
31
31
  - 🔄 **动态路由** - 自动发现和加载 Mock 路由,零配置
32
- - ✅ **参数校验** - 基于 Schema 的请求参数验证
32
+ - ✅ **智能参数校验** - 根据参数来源(query/body)进行差异化校验,符合HTTP协议标准
33
33
 
34
34
  ## 📦 安装
35
35
 
@@ -431,6 +431,41 @@ export default {
431
431
  - `?$_proxy` - 强制使用代理
432
432
  - `?remote=mock` - 使用 Mock 模式
433
433
 
434
+ **4. 智能路由控制(check\_ 函数)**
435
+
436
+ 系统支持通过 `check_` 函数实现更精细的路由控制:
437
+
438
+ ```javascript
439
+ // 在 Mock 文件中定义控制函数
440
+ export const check_PostRole = function () {
441
+ // true: 使用本地 Mock 数据
442
+ // false: 使用远程服务器数据
443
+ return false; // 使用远程数据
444
+ };
445
+ ```
446
+
447
+ **工作原理:**
448
+
449
+ - 当 `check_` 函数返回 `true` 时,使用本地 Mock 数据
450
+ - 当 `check_` 函数返回 `false` 时,尝试使用远程服务器数据
451
+ - 如果远程服务器未配置或不可用,自动回退到本地 Mock 数据
452
+
453
+ **重要配置说明:**
454
+
455
+ ⚠️ **远程服务器配置**:确保 `target` 配置为真实可用的服务器地址
456
+
457
+ ```javascript
458
+ // mock.config.js
459
+ export default {
460
+ model: 'mock',
461
+ port: 10000,
462
+ target: 'http://your-real-api-server.com', // ⚠️ 必须是真实可用的地址
463
+ remoteTarget: true
464
+ };
465
+ ```
466
+
467
+ 如果 `target` 配置为占位符地址(如 `http://xxx.xxxx.com.cn`),系统会正确回退到本地 Mock 数据,这是预期的行为。
468
+
434
469
  ### MockPort、Target 和 Vite Proxy 的关系
435
470
 
436
471
  理解这三个配置项的关系对于正确配置开发环境非常重要:
@@ -558,6 +593,75 @@ npm run mock:dev
558
593
 
559
594
  ## 🎯 高级用法
560
595
 
596
+ ### 🔧 智能参数校验
597
+
598
+ 本工具采用**智能参数校验策略**,根据参数来源(query参数 vs body参数)进行差异化处理,符合HTTP协议标准。
599
+
600
+ #### 校验策略
601
+
602
+ | 参数来源 | 类型校验 | 说明 |
603
+ | ------------- | -------- | ------------------------------------------- |
604
+ | **Query参数** | ❌ 跳过 | URL查询参数永远是字符串,类型转换是后端职责 |
605
+ | **Body参数** | ✅ 校验 | 请求体参数支持严格类型校验 |
606
+
607
+ #### 工作原理
608
+
609
+ ```javascript
610
+ // 生成的Mock文件中的参数校验逻辑
611
+ let originQuery = options.req.query; // URL查询参数
612
+ let bodyParams = JSON.parse(options.data || '{}'); // 请求体参数
613
+
614
+ // 合并参数,body参数优先级更高
615
+ let apiParams = { ...originQuery, ...bodyParams };
616
+
617
+ // 智能校验:只对body参数进行类型校验
618
+ if (
619
+ apiParams.hasOwnProperty(param.paramKey) &&
620
+ bodyParams.hasOwnProperty(param.paramKey)
621
+ ) {
622
+ // 参数来自body,进行类型校验
623
+ if (
624
+ lodash[param.paramType] &&
625
+ !lodash[param.paramType](apiParams[param.paramKey])
626
+ ) {
627
+ return { code: 1, msg: '参数类型错误: ' + param.paramKey };
628
+ }
629
+ }
630
+ // query参数跳过类型校验
631
+ ```
632
+
633
+ #### 实际应用场景
634
+
635
+ **场景1:GET请求 - 只有query参数**
636
+
637
+ ```javascript
638
+ GET /api/users?pageNum=1&pageSize=10
639
+ // ✅ pageNum和pageSize跳过类型校验,因为来自URL查询参数
640
+ ```
641
+
642
+ **场景2:POST请求 - 只有body参数**
643
+
644
+ ```javascript
645
+ POST /api/users
646
+ Body: { "name": "张三", "age": 25 }
647
+ // ✅ name和age进行类型校验,因为来自请求体
648
+ ```
649
+
650
+ **场景3:POST请求 - 混合参数**
651
+
652
+ ```javascript
653
+ POST /api/users?pageNum=1
654
+ Body: { "name": "张三", "age": 25 }
655
+ // ✅ pageNum跳过类型校验(来自query),name和age进行类型校验(来自body)
656
+ ```
657
+
658
+ #### 优势
659
+
660
+ - ✅ **符合HTTP标准** - 正确处理URL查询参数的特性
661
+ - ✅ **灵活校验** - 支持query和body参数的差异化处理
662
+ - ✅ **向后兼容** - 保持必要参数的存在性校验
663
+ - ✅ **开发友好** - 避免因query参数类型导致的误报
664
+
561
665
  ### 🎭 Apifox Mock 规则
562
666
 
563
667
  本工具**直接使用 Apifox 中配置的 mock 规则**,无需在本地重复配置。只需在 Apifox 中设置好字段的 mock 规则,生成时会自动应用。
@@ -983,24 +1087,47 @@ npm run generate
983
1087
  # 解决:检查 API 筛选配置,确保有匹配的接口
984
1088
  ```
985
1089
 
986
- ## 🤝 不同框架的配置示例
1090
+ ### 7. check\_ 函数不生效?
987
1091
 
988
- ### Vue CLI 项目
1092
+ **问题现象:** 配置了 `check_` 函数但似乎没有生效
989
1093
 
990
- ```javascript
991
- // vue.config.js
992
- module.exports = {
993
- devServer: {
994
- proxy: {
995
- '/api': {
996
- target: 'http://localhost:10000',
997
- changeOrigin: true,
998
- rewrite: path => path.replace(/^\/api/, '')
999
- }
1000
- }
1001
- }
1002
- };
1003
- ```
1094
+ **解决方案:**
1095
+
1096
+ 1. **检查函数命名**:确保函数名格式正确
1097
+
1098
+ ```javascript
1099
+ // ✅ 正确格式
1100
+ export const check_PostRole = function () {
1101
+ return false; // 使用远程数据
1102
+ };
1103
+
1104
+ // ❌ 错误格式
1105
+ export const checkPostRole = function () { ... }
1106
+ ```
1107
+
1108
+ 2. **检查远程服务器配置**:
1109
+
1110
+ ```javascript
1111
+ // mock.config.js
1112
+ export default {
1113
+ target: 'http://your-real-api-server.com', // ⚠️ 必须是真实可用的地址
1114
+ remoteTarget: true
1115
+ };
1116
+ ```
1117
+
1118
+ 3. **验证函数返回值**:
1119
+ - `return true` - 使用本地 Mock 数据
1120
+ - `return false` - 使用远程服务器数据
1121
+
1122
+ 4. **检查控制台输出**:函数被调用时会有日志输出
1123
+ ```javascript
1124
+ export const check_PostRole = function () {
1125
+ console.log('🔍 check_PostRole 被调用了!');
1126
+ return false;
1127
+ };
1128
+ ```
1129
+
1130
+ **重要说明:** 如果 `target` 配置为占位符地址(如 `http://xxx.xxxx.com.cn`),系统会正确回退到本地 Mock 数据,这是预期的行为。要真正测试远程代理功能,需要配置真实可用的服务器地址。
1004
1131
 
1005
1132
  ### 💡 最佳实践
1006
1133
 
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apifox-mock-generator",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "从Apifox拉取API接口并生成本地mock和TypeScript类型文件,并提供mock服务器",
5
5
  "main": "dist/src/index.js",
6
6
  "type": "module",
@@ -12,6 +12,9 @@
12
12
  "generate": "node dist/src/scripts/generate-mock.js",
13
13
  "serve": "node dist/src/scripts/serve-mock.js",
14
14
  "dev": "npm run generate && npm run serve",
15
+ "dev:generate": "tsx src/scripts/generate-mock.ts",
16
+ "dev:serve": "tsx src/scripts/serve-mock.ts",
17
+ "dev:full": "npm run dev:generate && npm run dev:serve",
15
18
  "prepublishOnly": "npm run build"
16
19
  },
17
20
  "files": ["dist", "README.md", "LICENSE", "CHANGELOG.md"],
@@ -34,6 +37,7 @@
34
37
  "chokidar": "^4.0.3",
35
38
  "glob": "^11.0.3",
36
39
  "prettier": "^3.6.2",
40
+ "tsx": "^4.7.0",
37
41
  "typescript": "^5.3.3"
38
42
  },
39
43
  "dependencies": {
@@ -43,6 +47,7 @@
43
47
  "chalk": "^5.3.0",
44
48
  "cors": "^2.8.5",
45
49
  "express": "^4.18.2",
50
+ "lodash": "^4.17.21",
46
51
  "mockjs": "^1.1.0"
47
52
  }
48
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mock-template.d.ts","sourceRoot":"","sources":["../../../../src/generators/templates/mock-template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,GAAG,GAAG,MAAM,CA2F5F"}
1
+ {"version":3,"file":"mock-template.d.ts","sourceRoot":"","sources":["../../../../src/generators/templates/mock-template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAGxD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,EAAE,GAAG,GAAG,MAAM,CAkG5F"}
@@ -35,7 +35,7 @@ export function ${namespaceName}(query, body, ctx) {
35
35
 
36
36
  let apiMethod = lodash.get(options, 'req.method');
37
37
  let originQuery = options.req.query;
38
- let apiParams = apiMethod === 'GET' ? originQuery : JSON.parse(options.data || '{}');
38
+ let bodyParams = JSON.parse(options.data || '{}');
39
39
 
40
40
  // ${endpoint.name}
41
41
 
@@ -43,6 +43,9 @@ export function ${namespaceName}(query, body, ctx) {
43
43
  ${mockParams
44
44
  ? `
45
45
  let mockParams = ${mockParams};
46
+ // 合并query参数和body参数,body参数优先级更高
47
+ let apiParams = { ...originQuery, ...bodyParams };
48
+
46
49
  for(let i = 0, len = mockParams.length; i < len; i++) {
47
50
  let param = mockParams[i];
48
51
  if (param.paramIsRequired && !apiParams.hasOwnProperty(param.paramKey)) {
@@ -51,10 +54,14 @@ export function ${namespaceName}(query, body, ctx) {
51
54
  msg: '缺少必要参数: ' + param.paramKey
52
55
  }
53
56
  }
54
- if (apiParams.hasOwnProperty(param.paramKey) && lodash[param.paramType] && !lodash[param.paramType](apiParams[param.paramKey])) {
55
- return {
56
- code: 1,
57
- msg: '参数类型错误: ' + param.paramKey
57
+ // 只对body参数进行类型校验,query参数跳过类型校验
58
+ if (apiParams.hasOwnProperty(param.paramKey) && bodyParams.hasOwnProperty(param.paramKey)) {
59
+ // 如果参数来自body,进行类型校验
60
+ if (lodash[param.paramType] && !lodash[param.paramType](apiParams[param.paramKey])) {
61
+ return {
62
+ code: 1,
63
+ msg: '参数类型错误: ' + param.paramKey
64
+ }
58
65
  }
59
66
  }
60
67
  }
@@ -136,7 +143,7 @@ function generateMockTemplateForResponse(schema, definitions, indent = '\t\t\t\t
136
143
  return '{}';
137
144
  // 处理引用
138
145
  if (schema.$ref) {
139
- const refName = schema.$ref.split('/').pop();
146
+ const refName = decodeURIComponent(schema.$ref.split('/').pop() || '');
140
147
  if (definitions?.[refName]) {
141
148
  return generateMockTemplateForResponse(definitions[refName], definitions, indent, interfaceInfo);
142
149
  }
@@ -209,7 +216,50 @@ function generateMockTemplateForResponse(schema, definitions, indent = '\t\t\t\t
209
216
  }
210
217
  return objContent;
211
218
  case 'array':
212
- const itemTemplate = generateMockTemplateForResponse(schema.items, definitions, indent + '\t', interfaceInfo);
219
+ // 处理数组类型,需要特别处理空对象和引用
220
+ let itemTemplate;
221
+ if (!schema.items) {
222
+ // 如果没有 items 定义,使用默认值
223
+ itemTemplate = '{}';
224
+ }
225
+ else if (schema.items.$ref) {
226
+ // 处理引用类型的数组元素
227
+ const refName = decodeURIComponent(schema.items.$ref.split('/').pop() || '');
228
+ if (definitions?.[refName]) {
229
+ itemTemplate = generateMockTemplateForResponse(definitions[refName], definitions, indent + '\t', interfaceInfo);
230
+ }
231
+ else {
232
+ // 引用解析失败,使用默认对象结构
233
+ itemTemplate = '{}';
234
+ }
235
+ }
236
+ else if (schema.items.type === 'object' &&
237
+ (!schema.items.properties || Object.keys(schema.items.properties).length === 0)) {
238
+ // 处理空对象类型,尝试从 x-apifox-refs 中获取引用
239
+ if (schema.items['x-apifox-refs']) {
240
+ const refs = schema.items['x-apifox-refs'];
241
+ const refKey = Object.keys(refs)[0];
242
+ if (refKey && refs[refKey].$ref) {
243
+ const refName = refs[refKey].$ref.split('/').pop();
244
+ if (definitions?.[refName]) {
245
+ itemTemplate = generateMockTemplateForResponse(definitions[refName], definitions, indent + '\t', interfaceInfo);
246
+ }
247
+ else {
248
+ itemTemplate = '{}';
249
+ }
250
+ }
251
+ else {
252
+ itemTemplate = '{}';
253
+ }
254
+ }
255
+ else {
256
+ itemTemplate = '{}';
257
+ }
258
+ }
259
+ else {
260
+ // 正常处理数组元素
261
+ itemTemplate = generateMockTemplateForResponse(schema.items, definitions, indent + '\t', interfaceInfo);
262
+ }
213
263
  // 为数组添加 Mock.js 的长度控制语法
214
264
  return `[${itemTemplate}]`;
215
265
  default:
@@ -224,7 +274,7 @@ function generateMockValueForField(fieldName, schema, definitions, interfaceInfo
224
274
  return 'null';
225
275
  // 处理引用
226
276
  if (schema.$ref) {
227
- const refName = schema.$ref.split('/').pop();
277
+ const refName = decodeURIComponent(schema.$ref.split('/').pop() || '');
228
278
  if (definitions?.[refName]) {
229
279
  return generateMockValueForField(fieldName, definitions[refName], definitions, interfaceInfo);
230
280
  }
@@ -288,7 +338,19 @@ function generateMockValueForField(fieldName, schema, definitions, interfaceInfo
288
338
  case 'object':
289
339
  return generateMockTemplateForResponse(schema, definitions);
290
340
  default:
291
- return 'null';
341
+ // 对于未知类型,提供合理的默认值而不是 null
342
+ if (schema && typeof schema === 'object') {
343
+ // 如果是对象但没有明确的类型,尝试生成基本结构
344
+ if (schema.properties && Object.keys(schema.properties).length > 0) {
345
+ return generateMockTemplateForResponse(schema, definitions);
346
+ }
347
+ // 如果是数组但没有 items 定义,返回空数组
348
+ if (schema.type === 'array') {
349
+ return '[]';
350
+ }
351
+ }
352
+ // 最后的回退策略:对于字符串类型返回空字符串,其他类型返回空对象
353
+ return schema?.type === 'string' ? '""' : '{}';
292
354
  }
293
355
  }
294
356
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"mock-template.js","sourceRoot":"","sources":["../../../../src/generators/templates/mock-template.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-template.js","sourceRoot":"","sources":["../../../../src/generators/templates/mock-template.ts"],"names":[],"mappings":"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"}