@cloudglab/yapi-cli 0.0.7 → 0.0.9
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.
- package/CHANGELOG.md +25 -0
- package/README.md +31 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +43 -5
- package/dist/cli.js.map +1 -1
- package/dist/core/changelog.js +7 -14
- package/dist/core/changelog.js.map +1 -1
- package/dist/core/cli-output.js +7 -6
- package/dist/core/cli-output.js.map +1 -1
- package/dist/core/cli-registry.js +61 -8
- package/dist/core/cli-registry.js.map +1 -1
- package/dist/core/manifest.js +14 -4
- package/dist/core/manifest.js.map +1 -1
- package/dist/core/output.d.ts +2 -2
- package/dist/core/output.js +12 -45
- package/dist/core/output.js.map +1 -1
- package/dist/core/tool-registry.js +5 -0
- package/dist/core/tool-registry.js.map +1 -1
- package/dist/core/update-probe.d.ts +3 -1
- package/dist/core/update-probe.js +9 -4
- package/dist/core/update-probe.js.map +1 -1
- package/dist/core/url-parser.js +10 -0
- package/dist/core/url-parser.js.map +1 -1
- package/dist/install.d.ts +9 -1
- package/dist/install.js +74 -20
- package/dist/install.js.map +1 -1
- package/dist/manifest.json +42 -1
- package/dist/services/yapi/api.d.ts +255 -79
- package/dist/services/yapi/api.js +162 -58
- package/dist/services/yapi/api.js.map +1 -1
- package/dist/services/yapi/auth.d.ts +8 -3
- package/dist/services/yapi/auth.js +10 -6
- package/dist/services/yapi/auth.js.map +1 -1
- package/dist/services/yapi/authCache.js +9 -2
- package/dist/services/yapi/authCache.js.map +1 -1
- package/dist/services/yapi/config.d.ts +6 -0
- package/dist/services/yapi/config.js +85 -8
- package/dist/services/yapi/config.js.map +1 -1
- package/dist/services/yapi/index.d.ts +3 -3
- package/dist/services/yapi/index.js +2 -3
- package/dist/services/yapi/index.js.map +1 -1
- package/dist/services/yapi/types.d.ts +38 -0
- package/dist/tools/shared.d.ts +17 -1
- package/dist/tools/shared.js +25 -6
- package/dist/tools/shared.js.map +1 -1
- package/dist/tools/yapi/docs-sync.js +3 -0
- package/dist/tools/yapi/docs-sync.js.map +1 -1
- package/dist/tools/yapi/groups.d.ts +1 -1
- package/dist/tools/yapi/groups.js +1 -1
- package/dist/tools/yapi/groups.js.map +1 -1
- package/dist/tools/yapi/register-auth.js +116 -104
- package/dist/tools/yapi/register-auth.js.map +1 -1
- package/dist/tools/yapi/register-group.js +118 -93
- package/dist/tools/yapi/register-group.js.map +1 -1
- package/dist/tools/yapi/register-interface.js +433 -199
- package/dist/tools/yapi/register-interface.js.map +1 -1
- package/dist/tools/yapi/register-mock.d.ts +2 -0
- package/dist/tools/yapi/register-mock.js +240 -0
- package/dist/tools/yapi/register-mock.js.map +1 -0
- package/dist/tools/yapi/register-project.js +344 -223
- package/dist/tools/yapi/register-project.js.map +1 -1
- package/dist/tools/yapi/register-test.js +33 -25
- package/dist/tools/yapi/register-test.js.map +1 -1
- package/dist/tools/yapi/register-util.js +444 -350
- package/dist/tools/yapi/register-util.js.map +1 -1
- package/dist/tools/yapi/register.js +3 -0
- package/dist/tools/yapi/register.js.map +1 -1
- package/dist/tools/yapi/utils.d.ts +49 -0
- package/dist/tools/yapi/utils.js +124 -2
- package/dist/tools/yapi/utils.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +18 -5
- package/skills/yapi-cli/SKILL.md +37 -12
- package/skills/yapi-cli/reference/auth.md +34 -45
- package/skills/yapi-cli/reference/cheatsheet.md +156 -0
- package/skills/yapi-cli/reference/cli.md +43 -39
- package/skills/yapi-cli/reference/commands.md +35 -124
- package/skills/yapi-cli/reference/group.md +46 -19
- package/skills/yapi-cli/reference/index.md +32 -0
- package/skills/yapi-cli/reference/install.md +30 -6
- package/skills/yapi-cli/reference/interface.md +71 -145
- package/skills/yapi-cli/reference/mock.md +93 -0
- package/skills/yapi-cli/reference/overview.md +7 -5
- package/skills/yapi-cli/reference/project.md +67 -87
- package/skills/yapi-cli/reference/scenarios.md +184 -0
- package/skills/yapi-cli/reference/test.md +20 -17
- package/skills/yapi-cli/reference/tooling.md +89 -0
- package/dist/services/yapi/cache.d.ts +0 -27
- package/dist/services/yapi/cache.js +0 -88
- package/dist/services/yapi/cache.js.map +0 -1
|
@@ -2,12 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
## 强制判断
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
-
|
|
8
|
-
- "项目" → YApi 的 Project,隶属于分组
|
|
9
|
-
|
|
10
|
-
用户给分组名时,先用 `group-list` 查全部分组,匹配名称确认 `groupId`。
|
|
5
|
+
- **分组** = Group,顶级容器
|
|
6
|
+
- **项目** = Project,隶属分组
|
|
7
|
+
- 只给分组名时,先 `group-list` 再确认 `groupId`
|
|
11
8
|
|
|
12
9
|
## 查询
|
|
13
10
|
|
|
@@ -17,49 +14,79 @@
|
|
|
17
14
|
yapi group-list
|
|
18
15
|
```
|
|
19
16
|
|
|
20
|
-
|
|
17
|
+
返回可见分组列表。
|
|
18
|
+
|
|
19
|
+
### 我的分组
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
yapi group-mine
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
返回当前用户参与的分组。
|
|
21
26
|
|
|
22
27
|
### 分组详情
|
|
23
28
|
|
|
24
29
|
```bash
|
|
25
|
-
yapi group-get --
|
|
30
|
+
yapi group-get --id <id>
|
|
26
31
|
```
|
|
27
32
|
|
|
28
|
-
|
|
33
|
+
查分组详情。
|
|
29
34
|
|
|
30
35
|
## 写入
|
|
31
36
|
|
|
32
37
|
### 创建分组
|
|
33
38
|
|
|
34
39
|
```bash
|
|
35
|
-
yapi group-
|
|
40
|
+
yapi group-create --name <name> [--desc <desc>] --confirm true
|
|
36
41
|
```
|
|
37
42
|
|
|
38
43
|
### 更新分组
|
|
39
44
|
|
|
40
45
|
```bash
|
|
41
|
-
yapi group-
|
|
46
|
+
yapi group-update --groupId <id> [--name <name>] [--desc <desc>] --confirm true
|
|
42
47
|
```
|
|
43
48
|
|
|
44
49
|
### 删除分组
|
|
45
50
|
|
|
46
51
|
```bash
|
|
47
|
-
yapi group-
|
|
52
|
+
yapi group-delete --groupId <id> --confirm true
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 分组成员列表
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
yapi group-member-list --groupId <id>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 添加分组成员
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
yapi group-member-add --groupId <id> --uid <uid> [--role <role>] --confirm true
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 修改分组成员角色
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
yapi group-member-role --groupId <id> --memberUid <uid> --role <role> --confirm true
|
|
48
71
|
```
|
|
49
72
|
|
|
50
|
-
###
|
|
73
|
+
### 移除分组成员
|
|
51
74
|
|
|
52
75
|
```bash
|
|
53
|
-
yapi member-
|
|
76
|
+
yapi group-member-remove --groupId <id> --memberUid <uid> --confirm true
|
|
54
77
|
```
|
|
55
78
|
|
|
56
79
|
## 参数对照
|
|
57
80
|
|
|
58
81
|
| 参数名 | 类型 | 必填 | 说明 |
|
|
59
82
|
|--------|------|------|------|
|
|
60
|
-
| `
|
|
61
|
-
| `
|
|
62
|
-
| `
|
|
83
|
+
| `id` | number | group-get | 分组 ID |
|
|
84
|
+
| `groupId` | number | group-update/delete/member-* | 分组 ID |
|
|
85
|
+
| `name` | string | group-create | 分组名称 |
|
|
86
|
+
| `desc` | string | 否 | 分组描述 |
|
|
87
|
+
| `uid` | number | group-member-add | 要加入分组的用户 UID |
|
|
88
|
+
| `memberUid` | number | group-member-role/remove | 已在组内的成员 UID |
|
|
89
|
+
| `role` | string | group-member-add/role | 成员角色 |
|
|
63
90
|
| `confirm` | boolean | 写操作 | 确认执行 |
|
|
64
91
|
|
|
65
92
|
## 常见链路
|
|
@@ -67,11 +94,11 @@ yapi member-list --groupId <id>
|
|
|
67
94
|
```bash
|
|
68
95
|
# 查全部分组 → 定位目标分组 → 查看详情
|
|
69
96
|
yapi group-list
|
|
70
|
-
yapi group-get --
|
|
97
|
+
yapi group-get --id <id>
|
|
71
98
|
|
|
72
99
|
# 查分组下的项目
|
|
73
100
|
yapi project-list --groupId <id>
|
|
74
101
|
|
|
75
102
|
# 查分组成员
|
|
76
|
-
yapi member-list --groupId <id>
|
|
103
|
+
yapi group-member-list --groupId <id>
|
|
77
104
|
```
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Reference 索引
|
|
2
|
+
|
|
3
|
+
按场景分类的二级文档。SKILL.md 主入口保持精简,本目录覆盖 CLI 注册的全部命令。
|
|
4
|
+
|
|
5
|
+
## 主链路(高频 / 日常)
|
|
6
|
+
|
|
7
|
+
| 文档 | 场景 | 关键命令 |
|
|
8
|
+
| --- | --- | --- |
|
|
9
|
+
| [install.md](./install.md) | 安装 / 更新 / 卸载 | `install`, `update`, `uninstall` |
|
|
10
|
+
| [cli.md](./cli.md) | CLI 基础 | `help`, `list`, `version`, `whoami`, `doctor`, `changelog` |
|
|
11
|
+
| [overview.md](./overview.md) | 命令总览(按分组) | 全部命令的分组列表 |
|
|
12
|
+
| [auth.md](./auth.md) | 认证 / 配置 / Token | `config-init`, `login`, `login-by-token`, `logout`, `whoami` |
|
|
13
|
+
| [group.md](./group.md) | 分组 | `group-list`, `group-get`, `group-create`, `group-update`, `group-delete`, `group-member-add`, `group-member-role`, `group-member-remove` |
|
|
14
|
+
| [project.md](./project.md) | 项目 | `project-list`, `project-get`, `project-create`, `project-update`, `project-copy`, `project-delete`, `project-token`, `project-snapshot`, `project-env-update`, `project-tag-update`, `project-mock-toggle`, `project-mock-script`, `project-member-add`, `project-member-remove`, `project-member-role`, `project-member-email-notice`, `project-follow`, `project-unfollow`, `project-check-name`, `project-swagger-url` |
|
|
15
|
+
| [interface.md](./interface.md) | 接口 / 分类 | `interface-list`, `interface-get`, `interface-snapshot`, `interface-create`, `interface-update`, `interface-save`, `interface-delete`, `interface-upload`, `interface-up-index`, `interface-up-cat-index`, `interface-mock-toggle`, `interface-mock-script`, `interface-list-by-menu`, `interface-list-by-cat`, `interface-list-public`, `interface-download-crx`, `schema-to-json`, `request`, `log`, `category-list`, `category-get`, `category-create`, `category-update`, `category-delete` |
|
|
16
|
+
| [mock.md](./mock.md) | 高级 Mock | `mock-script-get`, `mock-script-save`, `mock-expect-list`, `mock-expect-get`, `mock-expect-save`, `mock-expect-delete`, `mock-expect-toggle` |
|
|
17
|
+
| [test.md](./test.md) | 测试桩 / 开放接口 | `test-get`, `test-post`, `test-put`, `test-delete`, `test-head`, `test-options`, `test-patch`, `test-files-upload`, `test-single-upload`, `test-http-code`, `test-raw`, `test-response`, `open-project-interface-data`, `open-run-auto-test` |
|
|
18
|
+
| [tooling.md](./tooling.md) | 通用工具 / 集合 / 用例 / 用户 | `url-parse`, `workspace-snapshot`, `export`, `import`, `self-update`, `docs-sync`, `install-skill`, `search`, `log-list-by-update`, `col-list`, `col-cases`, `col-create`, `col-update`, `col-delete`, `col-up-index`, `col-case-up-index`, `col-case-clone`, `col-case-list-by-var-params`, `case-add`, `case-add-list`, `case-get`, `case-update`, `case-delete`, `case-run`, `case-env-list`, `user-list`, `user-search`, `user-get`, `user-avatar`, `user-projects`, `user-register`, `user-update`, `user-delete`, `user-change-password`, `user-upload-avatar` |
|
|
19
|
+
| [commands.md](./commands.md) | 按场景命令速查 | 全部命令索引 |
|
|
20
|
+
|
|
21
|
+
## 兜底
|
|
22
|
+
|
|
23
|
+
| 文档 | 作用 |
|
|
24
|
+
| --- | --- |
|
|
25
|
+
| [cheatsheet.md](./cheatsheet.md) | 全量命令速查(一行一条) |
|
|
26
|
+
| [scenarios.md](./scenarios.md) | 场景化组合(典型链路) |
|
|
27
|
+
|
|
28
|
+
## 维护约定
|
|
29
|
+
|
|
30
|
+
- 任何新增 / 删除 / 重命名命令必须在对应 reference 文档中同步更新;
|
|
31
|
+
- 写命令(schema 含 `confirm` 字段)必须在引用文档中说明前置条件与回滚提示;
|
|
32
|
+
- 不接受的命令(如 `request` 直接绕开 write-guard)必须在 cheatsheet 中标注「直连」标识。
|
|
@@ -1,29 +1,44 @@
|
|
|
1
1
|
# 安装 / 更新 / 卸载
|
|
2
2
|
|
|
3
|
+
## 入口 / 发现命令
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
yapi list
|
|
7
|
+
yapi help <command>
|
|
8
|
+
yapi version
|
|
9
|
+
yapi changelog
|
|
10
|
+
yapi completion bash
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
- `list`:按分组列出全部业务命令
|
|
14
|
+
- `help <command>`:看单命令参数
|
|
15
|
+
- `changelog`:查看版本变更历史
|
|
16
|
+
- `completion bash`:生成补全脚本
|
|
17
|
+
|
|
3
18
|
## 安装
|
|
4
19
|
|
|
5
|
-
|
|
20
|
+
默认安装 CLI + skill + 配置:
|
|
6
21
|
|
|
7
22
|
```bash
|
|
8
23
|
yapi install
|
|
9
24
|
npx -y @cloudglab/yapi-cli@latest install
|
|
10
25
|
```
|
|
11
26
|
|
|
12
|
-
`install`
|
|
27
|
+
`install` 会交互收集地址、用户名、密码和认证方式。
|
|
13
28
|
|
|
14
|
-
|
|
29
|
+
仅装 skill:
|
|
15
30
|
|
|
16
31
|
```bash
|
|
17
32
|
yapi install --skill-only
|
|
18
33
|
```
|
|
19
34
|
|
|
20
|
-
|
|
35
|
+
仅装 CLI 配置:
|
|
21
36
|
|
|
22
37
|
```bash
|
|
23
38
|
yapi install --cli-only
|
|
24
39
|
```
|
|
25
40
|
|
|
26
|
-
|
|
41
|
+
从本地文件装 skill:
|
|
27
42
|
|
|
28
43
|
```bash
|
|
29
44
|
yapi install --skill-path ./SKILL.md
|
|
@@ -36,18 +51,27 @@ npx -y @cloudglab/yapi-cli@latest install --skill-path ./SKILL.md
|
|
|
36
51
|
yapi update
|
|
37
52
|
yapi update --cli-only
|
|
38
53
|
yapi update --skill-only
|
|
54
|
+
yapi self-update
|
|
55
|
+
yapi install-skill
|
|
39
56
|
```
|
|
40
57
|
|
|
41
|
-
|
|
58
|
+
`update` 会检查 npm 版本并刷新本地 skill。
|
|
59
|
+
|
|
60
|
+
- `update`:更新 CLI 并刷新 skill
|
|
61
|
+
- `self-update`:只查 CLI 版本
|
|
62
|
+
- `install-skill`:只刷新本地 skill 文件
|
|
42
63
|
|
|
43
64
|
## 卸载
|
|
44
65
|
|
|
45
66
|
```bash
|
|
46
67
|
yapi uninstall
|
|
68
|
+
yapi remove --confirm true # uninstall 的别名
|
|
47
69
|
yapi uninstall --confirm true # 真实卸载
|
|
48
70
|
yapi uninstall --confirm true --keep-config true # 保留配置
|
|
49
71
|
```
|
|
50
72
|
|
|
73
|
+
- `remove` 是 `uninstall` 别名
|
|
74
|
+
|
|
51
75
|
## 自检
|
|
52
76
|
|
|
53
77
|
```bash
|
|
@@ -2,93 +2,52 @@
|
|
|
2
2
|
|
|
3
3
|
## 强制判断
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
yapi interface-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
yapi
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
### 分类排序
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
yapi interface-up-cat-index --catid <id> --index <n> --confirm true
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## CRUD
|
|
58
|
-
|
|
59
|
-
### 创建接口
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
yapi interface-create --projectId <id> --catId <id> --title <title> --path <path> [--method GET] [--desc <desc>] --confirm true
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### 更新接口
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
yapi interface-update --interfaceId <id> [--title <t>] [--path <p>] [--method <m>] --confirm true
|
|
69
|
-
```
|
|
70
|
-
|
|
71
|
-
### 删除接口
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
yapi interface-delete --interfaceId <id> --confirm true
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## Mock
|
|
78
|
-
|
|
79
|
-
### Mock 开关
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
yapi interface-mock-toggle --interfaceId <id> [--open true] --confirm true
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
### Mock 脚本
|
|
86
|
-
|
|
87
|
-
```bash
|
|
88
|
-
yapi interface-mock-script --interfaceId <id> --script <script> --confirm true
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
YApi Mock 脚本在沙箱中执行,支持:
|
|
5
|
+
先分 10 类:搜索、列表、详情、写入、分类、Mock、日志、导出、治理、集合。
|
|
6
|
+
|
|
7
|
+
## 高频查询
|
|
8
|
+
|
|
9
|
+
| 场景 | 命令 | 用法 | 说明 |
|
|
10
|
+
| --- | --- | --- | --- |
|
|
11
|
+
| 接口搜索 | `search` | `yapi search --q <keyword> [--projectId <id>] [--page 1] [--limit 50]` | 全局或按项目搜 |
|
|
12
|
+
| 项目接口列表 | `interface-list` | `yapi interface-list --projectId <id> [--status done] [--method GET] [--page <n>] [--limit <n>]` | 常规入口 |
|
|
13
|
+
| 接口详情 | `interface-get` | `yapi interface-get --interfaceId <id>` | 取完整定义 |
|
|
14
|
+
| 分类列表 | `category-list` | `yapi category-list --projectId <id>` | 查项目分类 |
|
|
15
|
+
| 分类内接口 | `interface-list-by-cat` | `yapi interface-list-by-cat --catId <id>` | 分类维度看接口 |
|
|
16
|
+
| 菜单模式接口 | `interface-list-by-menu` | `yapi interface-list-by-menu --projectId <id>` | 适合树状浏览 |
|
|
17
|
+
| 公开项目接口 | `interface-list-public` | `yapi interface-list-public --projectId <id> [--keyword <q>] [--page <n>] [--limit <n>]` | 浏览公开接口 |
|
|
18
|
+
| 自定义字段 | `interface-custom-field` | `yapi interface-custom-field --projectId <id>` | 看自定义字段 |
|
|
19
|
+
| 变更日志 | `log` | `yapi log --interfaceId <id> [--projectId <id>]` | 查更新日志 |
|
|
20
|
+
| 原始请求 | `request` | `yapi request --path /api/endpoint [--method GET] [--body <json>]` | 直接发请求 |
|
|
21
|
+
|
|
22
|
+
## 高频写入
|
|
23
|
+
|
|
24
|
+
| 场景 | 命令 | 用法 | 说明 |
|
|
25
|
+
| --- | --- | --- | --- |
|
|
26
|
+
| 创建接口 | `interface-create` | `yapi interface-create --projectId <id> --catId <id> --title <title> --path <path> [--method GET] [--status done|undone] [--tags a,b] [--desc <desc>] [--reqQuery <json>] [--reqHeaders <json>] [--reqParams <json>] [--reqBodyType json] [--reqBodyForm <json>] [--reqBody <json>] [--resBodyType json] [--resBody <json>] [--markdown <md>] [--apiOpened] --confirm true` | 建新接口。CLI 自动分析目标分类的风格(路径前缀、method 偏好、请求/响应字段),助力新接口与现有风格对齐。 |
|
|
27
|
+
| 保存接口 | `interface-save` | `yapi interface-save --projectId <id> --catId <id> --title <title> --path <path> [--method GET] [--status done|undone] [--tags a,b] [--desc <desc>] [--reqQuery <json>] [--reqHeaders <json>] [--reqParams <json>] [--reqBodyType json] [--reqBodyForm <json>] [--reqBody <json>] [--resBodyType json] [--resBody <json>] [--markdown <md>] [--apiOpened] [--customFieldValue <v>] [--interfaceId <id>] --confirm true` | 一次写全。新建时也会分析目标分类风格。 |
|
|
28
|
+
| 部分更新 | `interface-update` | `yapi interface-update --interfaceId <id> [--title <t>] [--path <p>] [--method <m>] [--catid <id>] [--status done|undone] [--tags a,b] [--desc <desc>] [--reqQuery <json>] [--reqHeaders <json>] [--reqParams <json>] [--reqBodyType <type>] [--reqBodyForm <json>] [--reqBody <json>] [--resBodyType <type>] [--resBody <json>] [--markdown <md>] [--apiOpened] [--customFieldValue <v>] [--switchNotice] [--message <text>] --confirm true` | 只改传入字段,reqQuery/reqHeaders/reqParams/reqBodyForm 整体覆盖。 |
|
|
29
|
+
| 删除接口 | `interface-delete` | `yapi interface-delete --interfaceId <id> --confirm true` | 不可恢复 |
|
|
30
|
+
| Mock 开关 | `interface-mock-toggle` | `yapi interface-mock-toggle --interfaceId <id> [--open true] --confirm true` | 开关接口级 Mock |
|
|
31
|
+
| Mock 脚本 | `interface-mock-script` | `yapi interface-mock-script --interfaceId <id> --script <script> --confirm true` | 设置接口脚本 |
|
|
32
|
+
| 导入接口 | `interface-upload` | `yapi interface-upload --projectId <id> --content <json> [--type swagger] --confirm true` | 导入 swagger/json |
|
|
33
|
+
|
|
34
|
+
> 高级 Mock(期望 / 脚本)见 `reference/mock.md`:`mock-expect-*`、`mock-script-*`。
|
|
35
|
+
|
|
36
|
+
## 低频治理 / 维护
|
|
37
|
+
|
|
38
|
+
| 场景 | 命令 | 用法 | 说明 |
|
|
39
|
+
| --- | --- | --- | --- |
|
|
40
|
+
| 分类详情 | `category-get` | `yapi category-get --catId <id>` | 看分类详情 |
|
|
41
|
+
| 创建分类 | `category-create` | `yapi category-create --projectId <id> --name <name> [--desc <desc>] --confirm true` | 建目录 |
|
|
42
|
+
| 更新分类 | `category-update` | `yapi category-update --catId <id> [--name <name>] [--desc <desc>] --confirm true` | 改分类信息(后端不支持 status 字段) |
|
|
43
|
+
| 删除分类 | `category-delete` | `yapi category-delete --catId <id> --confirm true` | 会清理分类下接口 |
|
|
44
|
+
| 分类排序 | `interface-up-cat-index` | `yapi interface-up-cat-index --catid <id> --index <n> --confirm true` | 调整分类顺序(后端接收数组) |
|
|
45
|
+
| 接口排序 | `interface-up-index` | `yapi interface-up-index --id <id> --index <n> --confirm true` | 调整接口顺序(后端接收数组) |
|
|
46
|
+
| 接口快照 | `interface-snapshot` | `yapi interface-snapshot --interfaceId <id> [--logLimit 5]` | 详情 + 最近日志 |
|
|
47
|
+
| Schema 转 JSON | `schema-to-json` | `yapi schema-to-json --schema <json> [--required true]` | 生成 JSON 示例 |
|
|
48
|
+
| 下载 CRX | `interface-download-crx` | `yapi interface-download-crx` | 下载浏览器扩展 |
|
|
49
|
+
|
|
50
|
+
Mock 脚本在沙箱中执行,常用变量:
|
|
92
51
|
- `mockJson` — 修改 Mock 返回 JSON
|
|
93
52
|
- `httpCode` — 修改状态码(默认 200)
|
|
94
53
|
- `resHeader` — 修改响应头
|
|
@@ -102,53 +61,12 @@ httpCode = 200;
|
|
|
102
61
|
delay = 500;
|
|
103
62
|
```
|
|
104
63
|
|
|
105
|
-
##
|
|
106
|
-
|
|
107
|
-
### 原始请求
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
yapi request --path /api/endpoint [--method GET] [--body <json>]
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
走 YApi 认证,发送任意 HTTP 请求。
|
|
114
|
-
|
|
115
|
-
### 日志
|
|
116
|
-
|
|
117
|
-
```bash
|
|
118
|
-
yapi log --interfaceId <id> [--projectId <id>]
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
接口变更历史记录。
|
|
122
|
-
|
|
123
|
-
### 导出
|
|
124
|
-
|
|
125
|
-
```bash
|
|
126
|
-
yapi export --projectId <id> [--type json]
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
`--type`:`json`、`swagger`、`openapi3`
|
|
130
|
-
|
|
131
|
-
### 下载 CRX
|
|
132
|
-
|
|
133
|
-
```bash
|
|
134
|
-
yapi interface-download-crx
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
下载 YApi 跨域请求插件。
|
|
138
|
-
|
|
139
|
-
## 集合
|
|
140
|
-
|
|
141
|
-
### 集合列表
|
|
142
|
-
|
|
143
|
-
```bash
|
|
144
|
-
yapi col-list --projectId <id>
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### 集合用例
|
|
64
|
+
## 说明
|
|
148
65
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
66
|
+
- 全量写定义优先 `interface-save`
|
|
67
|
+
- 局部改字段优先 `interface-update`
|
|
68
|
+
- 删分类前先 `category-get` 或 `interface-list-by-cat`
|
|
69
|
+
- 导出、文档同步、集合 / 用例统一看 `reference/tooling.md`
|
|
152
70
|
|
|
153
71
|
## 参数对照
|
|
154
72
|
|
|
@@ -156,12 +74,26 @@ yapi col-cases --projectId <id> --colId <id>
|
|
|
156
74
|
|--------|------|------|------|
|
|
157
75
|
| `interfaceId` | number | get/update/delete/log/toggle/script | 接口 ID |
|
|
158
76
|
| `projectId` | number | list/create/export/col | 项目 ID |
|
|
159
|
-
| `catId` | number |
|
|
160
|
-
| `catid` | number | up-cat-index | 分类 ID |
|
|
77
|
+
| `catId` | number | create/list-by-cat/category-* | 分类 ID |
|
|
78
|
+
| `catid` | number | save/update/up-cat-index | 分类 ID |
|
|
161
79
|
| `title` | string | create/update | 接口标题 |
|
|
162
80
|
| `path` | string | create | 接口路径 |
|
|
163
81
|
| `method` | string | 否 | HTTP 方法 |
|
|
164
82
|
| `q` | string | search | 搜索关键词 |
|
|
83
|
+
| `keyword` | string | interface-list-public | 公开接口搜索词 |
|
|
84
|
+
| `index` | number | up-index / up-cat-index | 排序位置 |
|
|
85
|
+
| `logLimit` | number | interface-snapshot | 最近日志条数 |
|
|
86
|
+
| `schema` | string | schema-to-json | JSON Schema 字符串 |
|
|
87
|
+
| `required` | boolean | schema-to-json | 可选,是否生成必填字段示例 |
|
|
88
|
+
| `reqQuery` | JSON 字符串 | create/update/save | 请求查询参数数组 `[{"name":"page","example":"1","desc":"页码","required":"1"}]` |
|
|
89
|
+
| `reqHeaders` | JSON 字符串 | create/update/save | 请求头数组 `[{"name":"Authorization","value":"Bearer xxx"}]` |
|
|
90
|
+
| `reqParams` | JSON 字符串 | create/update/save | URL 路径参数数组 `[{"name":"id","example":"123","desc":"用户ID"}]` |
|
|
91
|
+
| `reqBodyForm` | JSON 字符串 | create/update/save | 请求体表单字段数组 `[{"name":"username","type":"string","required":"1"}]` |
|
|
92
|
+
| `markdown` | string | create/update/save | 接口文档 Markdown |
|
|
93
|
+
| `apiOpened` | boolean | 否 | 是否对外开放接口 |
|
|
94
|
+
| `customFieldValue` | string | update/save | 自定义字段值 |
|
|
95
|
+
| `switchNotice` | boolean | 否 | update 时发送变更通知 |
|
|
96
|
+
| `message` | string | 否 | update 备注信息 |
|
|
165
97
|
| `confirm` | boolean | 写操作 | 确认执行 |
|
|
166
98
|
|
|
167
99
|
## 常见链路
|
|
@@ -172,14 +104,8 @@ yapi search --q <keyword> --limit 10
|
|
|
172
104
|
yapi interface-get --interfaceId <id>
|
|
173
105
|
yapi log --interfaceId <id>
|
|
174
106
|
|
|
175
|
-
#
|
|
176
|
-
yapi
|
|
177
|
-
yapi interface-
|
|
178
|
-
yapi
|
|
179
|
-
yapi interface-list --projectId <id>
|
|
180
|
-
|
|
181
|
-
# 接口完整上下文
|
|
182
|
-
yapi interface-get --interfaceId <id>
|
|
183
|
-
yapi interface-mock-toggle --interfaceId <id>
|
|
184
|
-
yapi log --interfaceId <id>
|
|
107
|
+
# 创建接口 → 设 Mock → 测试
|
|
108
|
+
yapi interface-create --projectId <id> --catId <cid> --title '用户列表' --path /api/user/list --confirm true
|
|
109
|
+
yapi interface-mock-script --interfaceId <iid> --script 'mockJson = { code: 0, data: [] };' --confirm true
|
|
110
|
+
yapi test-get --url 'https://mock.yapi.example.com/api/user/list'
|
|
185
111
|
```
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# 高级 Mock
|
|
2
|
+
|
|
3
|
+
高级 Mock 包含两类能力:
|
|
4
|
+
|
|
5
|
+
- **Mock 期望**:按请求参数 / IP 匹配,返回指定的 HTTP Code、Header、Body 和延迟。
|
|
6
|
+
- **自定义 Mock 脚本**:在沙箱中执行 JS,动态修改响应内容。
|
|
7
|
+
|
|
8
|
+
优先级:Mock 期望 > 自定义 Mock 脚本 > 项目全局 Mock 脚本 > 普通 Mock。
|
|
9
|
+
|
|
10
|
+
## Mock 期望
|
|
11
|
+
|
|
12
|
+
| 场景 | 命令 | 用法 | 说明 |
|
|
13
|
+
| --- | --- | --- | --- |
|
|
14
|
+
| 列出期望 | `mock-expect-list` | `yapi mock-expect-list --interfaceId <id>` | 看某接口全部期望 |
|
|
15
|
+
| 查看期望 | `mock-expect-get` | `yapi mock-expect-get --caseId <id>` | ObjectId 字符串 |
|
|
16
|
+
| 新增/更新期望 | `mock-expect-save` | `yapi mock-expect-save --interfaceId <id> --projectId <id> --name <name> --resBody <json> [--params <json>] [--ipEnable false] [--ip <ip>] [--code 200] [--delay 0] [--headers <json>] [--caseId <id>] --confirm true` | caseId 存在则更新 |
|
|
17
|
+
| 删除期望 | `mock-expect-delete` | `yapi mock-expect-delete --caseId <id> --confirm true` | 不可恢复 |
|
|
18
|
+
| 启用/禁用期望 | `mock-expect-toggle` | `yapi mock-expect-toggle --caseId <id> --enable true --confirm true` | 快速开关 |
|
|
19
|
+
|
|
20
|
+
## 自定义 Mock 脚本
|
|
21
|
+
|
|
22
|
+
| 场景 | 命令 | 用法 | 说明 |
|
|
23
|
+
| --- | --- | --- | --- |
|
|
24
|
+
| 获取脚本 | `mock-script-get` | `yapi mock-script-get --interfaceId <id>` | 读高级 Mock 脚本 |
|
|
25
|
+
| 保存脚本 | `mock-script-save` | `yapi mock-script-save --interfaceId <id> --projectId <id> --script <js> [--enable true] --confirm true` | 空字符串可清空 |
|
|
26
|
+
|
|
27
|
+
脚本沙箱可用变量:
|
|
28
|
+
|
|
29
|
+
- `header` — 请求头
|
|
30
|
+
- `params` — 合并后的 query + body 参数
|
|
31
|
+
- `cookie` — 请求 Cookies
|
|
32
|
+
- `mockJson` — 接口定义的 Mock 模板,可重写
|
|
33
|
+
- `resHeader` — 响应头
|
|
34
|
+
- `httpCode` — 响应状态码
|
|
35
|
+
- `delay` — 响应延迟(毫秒)
|
|
36
|
+
- `Random` — Mock.Random 方法
|
|
37
|
+
|
|
38
|
+
示例脚本:
|
|
39
|
+
|
|
40
|
+
```js
|
|
41
|
+
if (params.type == 1) {
|
|
42
|
+
mockJson.errcode = 400;
|
|
43
|
+
mockJson.errmsg = 'error';
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
mockJson = {
|
|
47
|
+
errcode: 0,
|
|
48
|
+
email: Random.email('qq.com'),
|
|
49
|
+
data: [{ city: Random.city() + '银行' }]
|
|
50
|
+
};
|
|
51
|
+
httpCode = 200;
|
|
52
|
+
delay = 500;
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## 说明
|
|
56
|
+
|
|
57
|
+
- 项目级 Mock 脚本(全局)在 `reference/project.md` 中管理:`project-mock-script`。
|
|
58
|
+
- 接口级普通 Mock 脚本在 `reference/interface.md` 中管理:`interface-mock-script`。
|
|
59
|
+
- 本页命令全部走 `/api/plugin/advmock/...`,需要 YApi 启用 `yapi-plugin-advanced-mock` 插件。
|
|
60
|
+
|
|
61
|
+
## 参数对照
|
|
62
|
+
|
|
63
|
+
| 参数名 | 类型 | 必填 | 说明 |
|
|
64
|
+
|--------|------|------|------|
|
|
65
|
+
| `interfaceId` | number | 是 | 接口 ID |
|
|
66
|
+
| `projectId` | number | save 时必填 | 项目 ID |
|
|
67
|
+
| `caseId` | string | get/delete/toggle/save(更新) | 期望 ID(MongoDB ObjectId) |
|
|
68
|
+
| `name` | string | save | 期望名称 |
|
|
69
|
+
| `resBody` | string | save | 期望返回 Body |
|
|
70
|
+
| `params` | JSON 字符串 | 否 | 请求参数匹配条件 |
|
|
71
|
+
| `ipEnable` | boolean | 否 | 是否启用 IP 过滤 |
|
|
72
|
+
| `ip` | string | ipEnable=true 时必填 | 客户端 IP |
|
|
73
|
+
| `code` | number | 否 | HTTP 状态码,默认 200 |
|
|
74
|
+
| `delay` | number | 否 | 响应延迟,默认 0 |
|
|
75
|
+
| `headers` | JSON 数组字符串 | 否 | 响应头 `[{"name":"X","value":"1"}]` |
|
|
76
|
+
| `script` | string | mock-script-save | JS 脚本,空字符串清空 |
|
|
77
|
+
| `enable` | boolean | 否 | 是否启用脚本/期望 |
|
|
78
|
+
| `confirm` | boolean | 写操作 | 确认执行 |
|
|
79
|
+
|
|
80
|
+
## 常见链路
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
# 配置高级 Mock 脚本
|
|
84
|
+
yapi mock-script-get --interfaceId <id>
|
|
85
|
+
yapi mock-script-save --interfaceId <id> --projectId <pid> --script '<js>' --confirm true
|
|
86
|
+
|
|
87
|
+
# 添加 Mock 期望
|
|
88
|
+
yapi mock-expect-list --interfaceId <id>
|
|
89
|
+
yapi mock-expect-save --interfaceId <id> --projectId <pid> --name 'success' --resBody '{"code":0}' --params '{"type":"1"}' --confirm true
|
|
90
|
+
|
|
91
|
+
# 开关期望
|
|
92
|
+
yapi mock-expect-toggle --caseId <caseId> --enable false --confirm true
|
|
93
|
+
```
|
|
@@ -6,13 +6,14 @@ yapi-cli 是 YApi 的命令行客户端,基于 InMemoryCliRegistry + Zod schem
|
|
|
6
6
|
|
|
7
7
|
```
|
|
8
8
|
src/
|
|
9
|
-
bin/yapi.
|
|
10
|
-
cli.ts — CLI 运行器(内置命令:help/version/doctor/changelog/completion)
|
|
9
|
+
bin/yapi.ts — 入口脚本
|
|
10
|
+
cli.ts — CLI 运行器(内置命令:help/list/version/install/update/uninstall/remove/doctor/changelog/completion)
|
|
11
11
|
core/
|
|
12
12
|
cli-registry.ts — InMemoryCliRegistry(命令注册 + 参数解析)
|
|
13
13
|
cli-output.ts — 帮助输出渲染
|
|
14
14
|
errors.ts — CliError 分层错误
|
|
15
|
-
|
|
15
|
+
manifest.ts — 命令清单加载与分组映射
|
|
16
|
+
output.ts — OutputFormatter(pretty / compact / normal / verbose)
|
|
16
17
|
write-guard.ts — 写保护(YAPI_DISABLE_WRITE + confirm)
|
|
17
18
|
doctor.ts — 自检命令
|
|
18
19
|
changelog.ts — 版本变更解析
|
|
@@ -20,7 +21,7 @@ src/
|
|
|
20
21
|
update-probe.ts — npm 版本探测
|
|
21
22
|
install.ts — 安装/更新/卸载
|
|
22
23
|
services/yapi/ — YApi 服务层
|
|
23
|
-
api.ts — YApi API
|
|
24
|
+
api.ts — YApi API 客户端
|
|
24
25
|
auth.ts — 认证管理(Token + JWT Cookie + LDAP)
|
|
25
26
|
config.ts — 配置管理(JSON)
|
|
26
27
|
cache.ts — 缓存
|
|
@@ -28,11 +29,12 @@ src/
|
|
|
28
29
|
logger.ts — 日志
|
|
29
30
|
types.ts — 类型定义
|
|
30
31
|
tools/yapi/
|
|
31
|
-
register.ts — 命令注册组合器
|
|
32
|
+
register.ts — 命令注册组合器 + 分组清单
|
|
32
33
|
register-auth.ts — 认证/配置命令
|
|
33
34
|
register-group.ts — 分组命令
|
|
34
35
|
register-project.ts — 项目命令
|
|
35
36
|
register-interface.ts — 接口命令
|
|
37
|
+
register-mock.ts — 高级 Mock 命令
|
|
36
38
|
register-util.ts — 用户/集合/工具命令
|
|
37
39
|
register-test.ts — 测试命令
|
|
38
40
|
utils.ts — 工具函数
|