@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.
Files changed (91) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/README.md +31 -0
  3. package/dist/cli.d.ts +3 -0
  4. package/dist/cli.js +43 -5
  5. package/dist/cli.js.map +1 -1
  6. package/dist/core/changelog.js +7 -14
  7. package/dist/core/changelog.js.map +1 -1
  8. package/dist/core/cli-output.js +7 -6
  9. package/dist/core/cli-output.js.map +1 -1
  10. package/dist/core/cli-registry.js +61 -8
  11. package/dist/core/cli-registry.js.map +1 -1
  12. package/dist/core/manifest.js +14 -4
  13. package/dist/core/manifest.js.map +1 -1
  14. package/dist/core/output.d.ts +2 -2
  15. package/dist/core/output.js +12 -45
  16. package/dist/core/output.js.map +1 -1
  17. package/dist/core/tool-registry.js +5 -0
  18. package/dist/core/tool-registry.js.map +1 -1
  19. package/dist/core/update-probe.d.ts +3 -1
  20. package/dist/core/update-probe.js +9 -4
  21. package/dist/core/update-probe.js.map +1 -1
  22. package/dist/core/url-parser.js +10 -0
  23. package/dist/core/url-parser.js.map +1 -1
  24. package/dist/install.d.ts +9 -1
  25. package/dist/install.js +74 -20
  26. package/dist/install.js.map +1 -1
  27. package/dist/manifest.json +42 -1
  28. package/dist/services/yapi/api.d.ts +255 -79
  29. package/dist/services/yapi/api.js +162 -58
  30. package/dist/services/yapi/api.js.map +1 -1
  31. package/dist/services/yapi/auth.d.ts +8 -3
  32. package/dist/services/yapi/auth.js +10 -6
  33. package/dist/services/yapi/auth.js.map +1 -1
  34. package/dist/services/yapi/authCache.js +9 -2
  35. package/dist/services/yapi/authCache.js.map +1 -1
  36. package/dist/services/yapi/config.d.ts +6 -0
  37. package/dist/services/yapi/config.js +85 -8
  38. package/dist/services/yapi/config.js.map +1 -1
  39. package/dist/services/yapi/index.d.ts +3 -3
  40. package/dist/services/yapi/index.js +2 -3
  41. package/dist/services/yapi/index.js.map +1 -1
  42. package/dist/services/yapi/types.d.ts +38 -0
  43. package/dist/tools/shared.d.ts +17 -1
  44. package/dist/tools/shared.js +25 -6
  45. package/dist/tools/shared.js.map +1 -1
  46. package/dist/tools/yapi/docs-sync.js +3 -0
  47. package/dist/tools/yapi/docs-sync.js.map +1 -1
  48. package/dist/tools/yapi/groups.d.ts +1 -1
  49. package/dist/tools/yapi/groups.js +1 -1
  50. package/dist/tools/yapi/groups.js.map +1 -1
  51. package/dist/tools/yapi/register-auth.js +116 -104
  52. package/dist/tools/yapi/register-auth.js.map +1 -1
  53. package/dist/tools/yapi/register-group.js +118 -93
  54. package/dist/tools/yapi/register-group.js.map +1 -1
  55. package/dist/tools/yapi/register-interface.js +433 -199
  56. package/dist/tools/yapi/register-interface.js.map +1 -1
  57. package/dist/tools/yapi/register-mock.d.ts +2 -0
  58. package/dist/tools/yapi/register-mock.js +240 -0
  59. package/dist/tools/yapi/register-mock.js.map +1 -0
  60. package/dist/tools/yapi/register-project.js +344 -223
  61. package/dist/tools/yapi/register-project.js.map +1 -1
  62. package/dist/tools/yapi/register-test.js +33 -25
  63. package/dist/tools/yapi/register-test.js.map +1 -1
  64. package/dist/tools/yapi/register-util.js +444 -350
  65. package/dist/tools/yapi/register-util.js.map +1 -1
  66. package/dist/tools/yapi/register.js +3 -0
  67. package/dist/tools/yapi/register.js.map +1 -1
  68. package/dist/tools/yapi/utils.d.ts +49 -0
  69. package/dist/tools/yapi/utils.js +124 -2
  70. package/dist/tools/yapi/utils.js.map +1 -1
  71. package/dist/version.d.ts +1 -1
  72. package/dist/version.js +1 -1
  73. package/package.json +18 -5
  74. package/skills/yapi-cli/SKILL.md +37 -12
  75. package/skills/yapi-cli/reference/auth.md +34 -45
  76. package/skills/yapi-cli/reference/cheatsheet.md +156 -0
  77. package/skills/yapi-cli/reference/cli.md +43 -39
  78. package/skills/yapi-cli/reference/commands.md +35 -124
  79. package/skills/yapi-cli/reference/group.md +46 -19
  80. package/skills/yapi-cli/reference/index.md +32 -0
  81. package/skills/yapi-cli/reference/install.md +30 -6
  82. package/skills/yapi-cli/reference/interface.md +71 -145
  83. package/skills/yapi-cli/reference/mock.md +93 -0
  84. package/skills/yapi-cli/reference/overview.md +7 -5
  85. package/skills/yapi-cli/reference/project.md +67 -87
  86. package/skills/yapi-cli/reference/scenarios.md +184 -0
  87. package/skills/yapi-cli/reference/test.md +20 -17
  88. package/skills/yapi-cli/reference/tooling.md +89 -0
  89. package/dist/services/yapi/cache.d.ts +0 -27
  90. package/dist/services/yapi/cache.js +0 -88
  91. package/dist/services/yapi/cache.js.map +0 -1
@@ -2,12 +2,12 @@
2
2
 
3
3
  ## 强制判断
4
4
 
5
- 在调用任何认证或用户管理命令前,先判断用户意图:
5
+ 先分四类:
6
6
 
7
- 1. **配置初始化**新用户首次使用,可直接运行 `config-init` 交互填写,也可显式传 `--url` + `--username` + `--password` + `--auth-mode`
8
- 2. **登录** → 区分 token 登录 vs 密码登录(普通 native / LDAP)
9
- 3. **查看当前用户** → `whoami`,不需要参数
10
- 4. **用户管理**管理员操作,需要确认是否有权限
7
+ 1. **首次配置** → `config-init`
8
+ 2. **登录** → token 或密码
9
+ 3. **看当前身份** → `whoami`
10
+ 4. **管用户**先确认管理员权限
11
11
 
12
12
  ## 认证
13
13
 
@@ -18,12 +18,12 @@ yapi config-init --url https://yapi.example.com --username user@example.com --pa
18
18
  yapi config-init --url https://yapi.example.com --username user@example.com --password secret --auth-mode ldap
19
19
  ```
20
20
 
21
- - `--url`:YApi 服务地址(必填)
22
- - `--username`:登录用户名(通常是邮箱)
23
- - `--password`:登录密码
24
- - `--auth-mode`:认证方式,支持 `native` / `ldap`
21
+ - `--url`:YApi 地址
22
+ - `--username`:用户名,通常是邮箱
23
+ - `--password`:密码
24
+ - `--auth-mode`:`native` / `ldap`
25
25
 
26
- 如果不传 `--url`、`--username`、`--password`、`--auth-mode`,`install` / `config-init` 会在交互终端里逐步提示你填写;其中 `auth-mode` 会引导你选择普通登录还是 LDAP 登录。
26
+ 不传参数时,`install` / `config-init` 会交互收集配置。
27
27
 
28
28
  ### Token 登录
29
29
 
@@ -32,7 +32,7 @@ yapi login --token <token>
32
32
  yapi login-by-token --token <token>
33
33
  ```
34
34
 
35
- `login-by-token` 用于快速校验 token;`uid` 会从 JWT 中自动提取。
35
+ `login-by-token` 更适合校验 token 是否可用。
36
36
 
37
37
  ### 密码登录
38
38
 
@@ -43,7 +43,7 @@ yapi login --email <email> --password <password>
43
43
  yapi login --username <username> --password <password> --ldap true
44
44
  ```
45
45
 
46
- 不带参数时,默认读取 `~/.yapi/config.json` 里的 `username/password/authMode` 登录。
46
+ 不带参数时,默认读取 `~/.yapi/config.json`。
47
47
 
48
48
  ### 登出
49
49
 
@@ -51,7 +51,7 @@ yapi login --username <username> --password <password> --ldap true
51
51
  yapi logout
52
52
  ```
53
53
 
54
- 清除本地认证缓存,同时调用服务端登出接口。
54
+ 清理本地认证并请求服务端登出。
55
55
 
56
56
  ### 查看当前用户
57
57
 
@@ -59,44 +59,29 @@ yapi logout
59
59
  yapi whoami
60
60
  ```
61
61
 
62
- 优先从本地认证缓存读取,失败时回退到服务端查询。
62
+ 优先读本地缓存,失败再回源。
63
63
 
64
64
  ## 用户管理
65
65
 
66
- ### 用户列表
66
+ ### 高频查询
67
67
 
68
- ```bash
69
- yapi user-list
70
- ```
71
-
72
- 列出所有注册用户。
73
-
74
- ### 搜索用户
75
-
76
- ```bash
77
- yapi user-search --q <keyword>
78
- ```
79
-
80
- 支持按用户名或邮箱搜索。
81
-
82
- ### 注册用户
68
+ | 场景 | 命令 | 用法 | 说明 |
69
+ | --- | --- | --- | --- |
70
+ | 用户列表 | `user-list` | `yapi user-list` | 列出所有注册用户 |
71
+ | 搜索用户 | `user-search` | `yapi user-search --q <keyword>` | 按用户名或邮箱搜索 |
72
+ | 用户详情 | `user-get` | `yapi user-get --uid <uid>` | 取单个用户详情 |
73
+ | 我的项目 | `user-projects` | `yapi user-projects` | 列出当前用户参与的项目 |
74
+ | 用户头像 | `user-avatar` | `yapi user-avatar --uid <uid>` | 获取头像 URL |
83
75
 
84
- ```bash
85
- yapi user-register --username <name> --password <pass> --email <email> --confirm true
86
- ```
87
-
88
- ### 删除用户
76
+ ### 高频写入
89
77
 
90
- ```bash
91
- yapi user-delete --uid <uid> --confirm true
92
- ```
93
-
94
- ### 用户头像
95
-
96
- ```bash
97
- yapi user-avatar --uid <uid>
98
- yapi user-upload-avatar --uid <uid> --imagePath <path> --confirm true
99
- ```
78
+ | 场景 | 命令 | 用法 | 说明 |
79
+ | --- | --- | --- | --- |
80
+ | 注册用户 | `user-register` | `yapi user-register --username <name> --password <pass> --email <email> --confirm true` | 管理员写操作 |
81
+ | 更新用户 | `user-update` | `yapi user-update --uid <uid> [--username <name>] [--email <mail>] [--role admin] --confirm true` | 管理员修改用户信息 |
82
+ | 删除用户 | `user-delete` | `yapi user-delete --uid <uid> --confirm true` | 不可恢复 |
83
+ | 上传头像 | `user-upload-avatar` | `yapi user-upload-avatar --uid <uid> --imagePath <path> --confirm true` | 上传用户头像 |
84
+ | 修改自己密码 | `user-change-password` | `yapi user-change-password --oldPassword <old> --newPassword <new> --confirm true` | 当前用户自助改密 |
100
85
 
101
86
  ## 参数对照
102
87
 
@@ -110,4 +95,8 @@ yapi user-upload-avatar --uid <uid> --imagePath <path> --confirm true
110
95
  | `authMode` | string | config-init | `native` / `ldap` |
111
96
  | `uid` | number | user-delete/avatar | 用户 ID |
112
97
  | `username` | string | user-register | 用户名 |
98
+ | `email` | string | user-update | 用户邮箱 |
99
+ | `role` | string | user-update | 用户角色 |
100
+ | `oldPassword` | string | user-change-password | 原密码 |
101
+ | `newPassword` | string | user-change-password | 新密码 |
113
102
  | `confirm` | boolean | 写操作 | 确认执行 |
@@ -0,0 +1,156 @@
1
+ # Cheatsheet
2
+
3
+ CLI 注册的全部命令速查。命令按 commandGroup 排序;写命令标注 `✎`,直连(不走 write-guard)标注 `↯`。
4
+
5
+ ## auth(认证 / 配置)
6
+
7
+ - `config-init` — 初始化本地 YApi 登录配置 ✎
8
+ - `login` — 登录 YApi 并写入认证缓存 ✎
9
+ - `login-by-token` — 使用 token 静默登录 ✎
10
+ - `logout` — 登出 YApi ✎
11
+ - `whoami` — 查看当前账号与认证状态
12
+
13
+ ## group(分组)
14
+
15
+ - `group-list` — 列出所有分组
16
+ - `group-get` — 查看分组详情
17
+ - `group-mine` — 列出我作为成员加入的分组
18
+ - `group-member-list` — 列出分组成员
19
+ - `group-create` — 创建新分组 ✎
20
+ - `group-update` — 更新分组信息 ✎
21
+ - `group-delete` — 删除分组 ✎
22
+ - `group-member-add` — 添加分组成员 ✎
23
+ - `group-member-role` — 修改分组成员角色 ✎
24
+ - `group-member-remove` — 移除分组成员 ✎
25
+
26
+ ## project(项目)
27
+
28
+ - `project-list` — 列出项目
29
+ - `project-get` — 查看项目详情
30
+ - `project-search` — 按名称搜索项目
31
+ - `project-token` — 获取项目 Token
32
+ - `project-snapshot` — 项目快照(一次拿到项目基础信息、分类、最近接口和环境)
33
+ - `env` — 列出项目环境
34
+ - `member` — 列出项目成员
35
+ - `follow` — 列出关注的项目
36
+ - `project-check-name` — 检查分组下项目名称是否可用
37
+ - `project-swagger-url` — 获取项目的 Swagger 数据源 URL
38
+ - `project-create` — 创建新项目 ✎
39
+ - `project-update` — 更新项目基础信息 ✎
40
+ - `project-copy` — 复制项目 ✎
41
+ - `project-delete` — 删除项目 ✎
42
+ - `project-token-update` — 重新生成项目 Token ✎
43
+ - `project-env-update` — 更新项目环境配置 ✎
44
+ - `project-tag-update` — 更新项目标签 ✎
45
+ - `project-mock-toggle` — 切换项目全局 Mock 开关 ✎
46
+ - `project-mock-script` — 设置项目级 Mock 脚本 ✎
47
+ - `project-member-add` — 添加项目成员 ✎
48
+ - `project-member-remove` — 从项目中移除成员 ✎
49
+ - `project-member-role` — 修改项目成员角色 ✎
50
+ - `project-member-email-notice` — 修改项目成员的邮件通知开关 ✎
51
+ - `project-follow` — 关注项目 ✎
52
+ - `project-unfollow` — 取消关注项目 ✎
53
+
54
+ ## interface(接口 / 分类)
55
+
56
+ - `search` — 搜索 YApi 接口
57
+ - `interface-list` — 列出项目中的接口
58
+ - `interface-list-by-menu` — 以菜单模式列出项目中的接口
59
+ - `interface-list-by-cat` — 按分类 ID 列出接口
60
+ - `interface-list-public` — 列出公开项目的接口(无需登录)
61
+ - `interface-get` — 查看接口详情
62
+ - `interface-snapshot` — 接口快照(一次拿到接口详情、请求 / 响应摘要和最近变更)
63
+ - `request` — 发送原始 API 请求到 YApi 服务器 ↯
64
+ - `log` — 查看接口变更日志
65
+ - `interface-download-crx` — 下载浏览器扩展 CRX
66
+ - `schema-to-json` — 将 JSON Schema 转换为 JSON 示例
67
+ - `interface-create` — 创建新接口 ✎
68
+ - `interface-update` — 更新接口(部分更新,未传字段保持原值)✎
69
+ - `interface-save` — 保存接口(存在则更新,不存在则创建)✎
70
+ - `interface-delete` — 删除接口 ✎
71
+ - `interface-upload` — 导入接口(支持 swagger/json 等格式)✎
72
+ - `interface-up-index` — 更新接口排序 ✎
73
+ - `interface-up-cat-index` — 更新分类排序 ✎
74
+ - `interface-mock-toggle` — 切换接口 Mock 开关 ✎
75
+ - `interface-mock-script` — 设置接口自定义 Mock 脚本 ✎
76
+ - `category-list` — 列出项目中的分类(目录)
77
+ - `category-get` — 查看分类详情(含接口列表)
78
+ - `category-create` — 创建接口分类(目录)✎
79
+ - `category-update` — 更新分类信息 ✎
80
+ - `category-delete` — 删除分类 ✎
81
+
82
+ ## util(通用工具 / 用户 / 集合)
83
+
84
+ - `url-parse` — 解析 YApi 前端页面 URL
85
+ - `workspace-snapshot` — 工作区快照
86
+ - `export` — 导出项目数据(json / swagger / openapi3 / html / markdown)
87
+ - `import` — 导入数据到项目 ✎
88
+ - `self-update` — 检查 CLI 更新 ✎
89
+ - `docs-sync` — 同步 Markdown 文档到 YApi 项目 ✎
90
+ - `install-skill` — 安装 OpenCode skill 文件 ✎
91
+ - `user-list` — 用户管理:列出用户
92
+ - `user-search` — 用户管理:搜索用户
93
+ - `user-get` — 用户管理:获取用户详情
94
+ - `user-avatar` — 用户管理:获取用户头像 URL
95
+ - `user-projects` — 用户管理:列出当前用户参与的项目
96
+ - `user-register` — 用户管理:注册新用户 ✎
97
+ - `user-update` — 用户管理:更新用户信息 ✎
98
+ - `user-delete` — 用户管理:删除用户 ✎
99
+ - `user-change-password` — 用户管理:修改当前用户密码 ✎
100
+ - `user-upload-avatar` — 用户管理:上传用户头像 ✎
101
+ - `col-list` — 测试集合管理:列出集合
102
+ - `col-cases` — 测试集合管理:查看用例
103
+ - `col-create` — 测试集合管理:创建集合 ✎
104
+ - `col-update` — 测试集合:更新集合信息 ✎
105
+ - `col-delete` — 测试集合管理:删除集合 ✎
106
+ - `col-up-index` — 测试集合:调整集合排序 ✎
107
+ - `col-case-up-index` — 测试用例:调整用例排序 ✎
108
+ - `col-case-clone` — 测试集合:从另一个集合克隆用例列表 ✎
109
+ - `col-case-list-by-var-params` — 测试用例:按变量参数过滤列出用例
110
+ - `case-add` — 测试用例管理:添加用例 ✎
111
+ - `case-add-list` — 测试用例:批量添加用例到集合 ✎
112
+ - `case-get` — 测试用例:获取用例详情
113
+ - `case-update` — 测试用例:更新用例信息 ✎
114
+ - `case-delete` — 测试用例管理:删除用例 ✎
115
+ - `case-run` — 测试用例管理:运行集合脚本 ✎
116
+ - `case-env-list` — 测试用例:获取用例环境变量列表
117
+ - `log-list-by-update` — 动态日志:按接口 ID 与更新时间查询
118
+
119
+ ## mock(高级 Mock)
120
+
121
+ - `mock-expect-list` — 列出接口的 Mock 期望
122
+ - `mock-expect-get` — 获取单个 Mock 期望详情
123
+ - `mock-expect-save` — 保存/更新 Mock 期望 ✎
124
+ - `mock-expect-delete` — 删除 Mock 期望 ✎
125
+ - `mock-expect-toggle` — 启用/禁用 Mock 期望 ✎
126
+ - `mock-script-get` — 获取接口级高级 Mock 脚本
127
+ - `mock-script-save` — 保存/更新接口级高级 Mock 脚本 ✎
128
+
129
+ ## test(开放接口 / 测试桩)
130
+
131
+ - `test-get` — 测试接口:发送 GET 请求
132
+ - `test-post` — 测试接口:发送 POST 请求
133
+ - `test-put` — 测试接口:发送 PUT 请求
134
+ - `test-delete` — 测试接口:发送 DELETE 请求
135
+ - `test-head` — 测试接口:发送 HEAD 请求
136
+ - `test-options` — 测试接口:发送 OPTIONS 请求
137
+ - `test-patch` — 测试接口:发送 PATCH 请求
138
+ - `test-files-upload` — 测试接口:批量文件上传
139
+ - `test-single-upload` — 测试接口:单文件上传
140
+ - `test-http-code` — 测试接口:检查 HTTP 状态码
141
+ - `test-raw` — 测试接口:发送原始请求体
142
+ - `test-response` — 测试接口:获取响应
143
+ - `open-project-interface-data` — 开放接口:获取项目接口数据
144
+ - `open-run-auto-test` — 开放接口:触发自动化测试
145
+
146
+ ## 内置命令
147
+
148
+ - `help` — 查看帮助
149
+ - `list` — 列出全部命令
150
+ - `version` / `--version` — 查看版本
151
+ - `install` — 安装 CLI + skill
152
+ - `update` — 更新 CLI + skill
153
+ - `uninstall` / `remove` — 卸载
154
+ - `doctor` — 系统自检
155
+ - `changelog` — 查看版本变更历史
156
+ - `completion` — 生成 shell 补全脚本
@@ -2,59 +2,63 @@
2
2
 
3
3
  ## 入口
4
4
 
5
- - `yapi --help` — 查看帮助
6
- - `yapi <command> --<key> <value>` — 执行命令
7
- - `yapi help <command>` — 查看单命令帮助
8
- - `yapi version` — 查看版本
9
- - `yapi doctor` — 自检
10
- - `yapi completion --shell bash` — 生成补全脚本
5
+ - `yapi --help`:总帮助
6
+ - `yapi list`:按分组查看全部命令
7
+ - `yapi help <command>`:查看单命令参数
8
+ - `yapi version`:查看版本
9
+ - `yapi doctor`:做环境自检
10
+ - `yapi completion bash`:生成补全脚本
11
11
 
12
12
  ## 参数规则
13
13
 
14
- - 参数名使用 kebab-case:`--project-id`、`--group-id`、`--interface-id`
15
- - 支持 `=` 语法:`--project-id=60`
16
- - 数组参数可重复:`--tag a --tag b`
17
- - JSON 对象参数:`--body '{"key":"value"}'`
18
- - 全局 `--json`:输出 JSON 格式(替代 pretty)
19
- - 写操作需要 `--confirm true`
14
+ - 参数名以 `yapi help <command>` 输出为准,文档统一按 camelCase 写:`--projectId`、`--groupId`、`--interfaceId`
15
+ - CLI 同时接受 kebab-case:`--project-id`、`--group-id`、`--interface-id`
16
+ - 支持 `=` 语法:`--projectId=60`
17
+ - JSON 参数直接传字符串:`--body '{"key":"value"}'`
18
+ - 写操作默认只 preview,真实执行要加 `--confirm true`
20
19
 
21
- ## 81 个命令总览
20
+ ## 输出与管道
22
21
 
23
- ### 认证 & 配置(5 个)
22
+ - 默认 `--output pretty` 适合人看
23
+ - `--output compact|normal|verbose` 都是合法 JSON,可直接给 `jq`
24
+ - 日志在 stderr,结果在 stdout;不要直接 `2>&1`
25
+ - 常见写法:
24
26
 
25
- `config-init` `login` `login-by-token` `logout` `whoami`
27
+ ```bash
28
+ yapi --output compact search --q 关键词 2>/dev/null
29
+ yapi --output verbose interface-get --interface-id 186512 2>/dev/null | jq '.interface.resBody | fromjson'
30
+ ```
26
31
 
27
- ### 分组(6 个)
32
+ ## 两级索引
28
33
 
29
- `group-list` `group-get` `group-add` `group-up` `group-del` `member-list`
34
+ 当前文档已覆盖全部 `121` 个业务命令;外层只保留场景索引,详细参数放到二级页。
30
35
 
31
- ### 项目(10 个)
36
+ ### 一级:先按场景选页
32
37
 
33
- `project-list` `project-get` `project-token` `env` `member` `member-change-role` `follow` `project-mock-toggle` `project-mock-script` `interface-upload`
38
+ | 场景 | 命令量 | 二级页 | 高频命令 |
39
+ | --- | ---: | --- | --- |
40
+ | 安装 / 入口 / 自检 | 10 | `reference/install.md` | `install` `list` `doctor` `remove` |
41
+ | 认证 / 用户 | 14 | `reference/auth.md` | `config-init` `login` `whoami` `user-search` |
42
+ | 分组 | 10 | `reference/group.md` | `group-list` `group-get` `group-create` |
43
+ | 项目 / 环境 / 项目治理 | 25 | `reference/project.md` | `project-list` `project-get` `project-create` `project-update` |
44
+ | 接口 / 分类 / 接口治理 | 26 | `reference/interface.md` | `search` `interface-list` `interface-get` `interface-update` |
45
+ | 高级 Mock(期望 / 脚本) | 7 | `reference/mock.md` | `mock-expect-list` `mock-script-get` `mock-expect-save` |
46
+ | HTTP 测试 / 自动测试 | 14 | `reference/test.md` | `test-get` `test-post` `open-run-auto-test` |
47
+ | 集合 / 用例 / 导入导出 / 快照 | 25 | `reference/tooling.md` | `col-list` `case-run` `docs-sync` `workspace-snapshot` |
34
48
 
35
- ### 接口(15 个)
49
+ ### 二级:页内再按使用程度读
36
50
 
37
- `search` `interface-list` `interface-get` `interface-create` `interface-update` `interface-delete` `interface-mock-toggle` `interface-mock-script` `category-list` `interface-up-cat-index` `interface-up-index` `request` `log` `export` `interface-download-crx`
51
+ - 每个专题页都按 `高频查询 高频写入 低频治理 / 维护` 排序
52
+ - 不确定命令时,先看 `reference/commands.md`
53
+ - 需要精确参数时,最终以 `yapi help <command>` 为准
38
54
 
39
- ### 用户(6 个)
55
+ ## 覆盖说明
40
56
 
41
- `user-list` `user-search` `user-register` `user-delete` `user-avatar` `user-upload-avatar`
42
-
43
- ### 测试(14 个)
44
-
45
- `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` `run-auto-test` `project-interface-data`
46
-
47
- ### 集合(2 个)
48
-
49
- `col-list` `col-cases`
50
-
51
- ### 系统(8 个)
52
-
53
- `install` `update` `uninstall` `doctor` `changelog` `completion` `install-skill` `docs-sync`
57
+ - 外层索引不再平铺 `121` 个命令,避免上下文过大
58
+ - 完整覆盖由二级页承接:`reference/install.md`、`reference/auth.md`、`reference/group.md`、`reference/project.md`、`reference/interface.md`、`reference/mock.md`、`reference/test.md`、`reference/tooling.md`
54
59
 
55
60
  ## 扩展
56
61
 
57
- - 新命令在 `src/tools/yapi/register-*.ts` 中用 `registry.tool(name, schema, handler, desc, metadata)` 注册
58
- - 参数类型用 Zod schema:`z.string()` / `z.coerce.number()` / `z.boolean()` / `z.enum([...])`
59
- - Handler 返回 `jsonResult({...})`,自动按 format 输出
60
- - 元数据:`costHint`(low/medium/high)+ `nextBestTools`(相关命令推荐)
62
+ - 新命令注册入口:`src/tools/yapi/register-*.ts`
63
+ - manifest 来源:`src/core/manifest.ts`
64
+ - 命令覆盖校验:`tests/manifest-and-skills.test.ts`
@@ -2,119 +2,38 @@
2
2
 
3
3
  ## 使用规则
4
4
 
5
- - 先按用户场景选命令,再用 `yapi help <command>` 校对参数。
6
- - 参数名以 `yapi help <command>` 输出为准;不要猜 `id`、`projectId`、`interfaceId` 这类相似参数。
7
- - 读命令不需要 `confirm=true`;写操作(create/update/delete/upload/toggle/script)必须显式传 `--confirm true`。
8
- - 如果命令返回 `未知参数`,立即运行 `yapi help <command>` 修正命令。
9
- - 本机没有 `yapi` 时,用 `npx -y @cloudglab/yapi-cli@latest <command> ...`。
10
-
11
- ## 认证 & 配置
12
-
13
- | 场景 | 命令 | 用法 | 说明 |
14
- | --- | --- | --- | --- |
15
- | 初始化配置 | `config-init` | `yapi config-init [--url <url>] [--username <u>] [--password <p>] [--auth-mode native]` | 首次使用必做;缺参时可交互填写 |
16
- | Token 登录 | `login` | `yapi login --token <t>` | 用 token 认证 |
17
- | 密码登录 | `login` | `yapi login [--username <u>] [--email <e>] [--password <p>] [--ldap true]` | 不带参数时使用配置文件 |
18
- | Token 快捷登录 | `login-by-token` | `yapi login-by-token --token <t>` | token 登录 |
19
- | 登出 | `logout` | `yapi logout` | 清除本地认证缓存 + 服务端登出 |
20
- | 查看当前用户 | `whoami` | `yapi whoami` | 返回当前用户信息 |
21
-
22
- ## 分组
23
-
24
- | 场景 | 命令 | 用法 | 说明 |
25
- | --- | --- | --- | --- |
26
- | 分组列表 | `group-list` | `yapi group-list` | 列出可见分组 |
27
- | 分组详情 | `group-get` | `yapi group-get --groupId <id>` | 查分组详细信息 |
28
- | 创建分组 | `group-add` | `yapi group-add --groupName <name> [--groupDesc <d>] --confirm true` | 写操作 |
29
- | 更新分组 | `group-up` | `yapi group-up --groupId <id> [--groupName <n>] [--groupDesc <d>] --confirm true` | 写操作 |
30
- | 删除分组 | `group-del` | `yapi group-del --groupId <id> --confirm true` | 写操作 |
31
- | 分组成员 | `member-list` | `yapi member-list --groupId <id>` | 列出分组下的成员 |
32
-
33
- ## 项目
34
-
35
- | 场景 | 命令 | 用法 | 说明 |
36
- | --- | --- | --- | --- |
37
- | 项目列表 | `project-list` | `yapi project-list [--groupId <id>] [--page <n>] [--limit <n>]` | 可按分组过滤 |
38
- | 项目详情 | `project-get` | `yapi project-get --projectId <id>` | 查项目信息 |
39
- | 项目 Token | `project-token` | `yapi project-token --projectId <id>` | 获取项目 token |
40
- | 环境配置 | `env` | `yapi env --projectId <id>` | 项目环境变量 |
41
- | 项目成员 | `member` | `yapi member --projectId <id>` | 项目成员列表 |
42
- | 改成员角色 | `member-change-role` | `yapi member-change-role --projectId <id> --memberUid <uid> --role <role> --confirm true` | 写操作 |
43
- | 关注项目 | `follow` | `yapi follow` | 我关注的项目列表 |
44
- | Mock 开关 | `project-mock-toggle` | `yapi project-mock-toggle --projectId <id> [--open true] --confirm true` | 开关项目级 Mock |
45
- | Mock 脚本 | `project-mock-script` | `yapi project-mock-script --projectId <id> [--script <s>] --confirm true` | 设置项目 Mock 脚本 |
46
- | 导入接口 | `interface-upload` | `yapi interface-upload --projectId <id> --content <json> [--type swagger] --confirm true` | 批量导入 |
47
-
48
- ## 接口
49
-
50
- | 场景 | 命令 | 用法 | 说明 |
51
- | --- | --- | --- | --- |
52
- | 搜索接口 | `search` | `yapi search --q <keyword> [--projectId <id>] [--page <n>] [--limit <n>]` | 关键词搜索 |
53
- | 接口列表 | `interface-list` | `yapi interface-list --projectId <id> [--status <s>] [--method <m>] [--page <n>] [--limit <n>]` | 按项目查接口 |
54
- | 接口详情 | `interface-get` | `yapi interface-get --interfaceId <id>` | 查看接口定义 |
55
- | 创建接口 | `interface-create` | `yapi interface-create --projectId <n> --catId <n> --title <s> --path <s> [--method GET] [--desc <s>] --confirm true` | 写操作 |
56
- | 更新接口 | `interface-update` | `yapi interface-update --interfaceId <id> [--title <s>] [--path <s>] [--method <m>] --confirm true` | 写操作 |
57
- | 删除接口 | `interface-delete` | `yapi interface-delete --interfaceId <id> --confirm true` | 写操作 |
58
- | Mock 开关 | `interface-mock-toggle` | `yapi interface-mock-toggle --interfaceId <id> [--open true] --confirm true` | 开关接口级 Mock |
59
- | Mock 脚本 | `interface-mock-script` | `yapi interface-mock-script --interfaceId <id> [--script <s>] --confirm true` | 设置接口 Mock 脚本 |
60
- | 分类列表 | `category-list` | `yapi category-list --projectId <id>` | 项目的接口分类 |
61
- | 分类排序 | `interface-up-cat-index` | `yapi interface-up-cat-index --catid <id> --index <n> --confirm true` | 调整分类排序 |
62
- | 接口排序 | `interface-up-index` | `yapi interface-up-index --interfaceId <id> --index <n> --confirm true` | 调整接口排序 |
63
- | 原始请求 | `request` | `yapi request --path <s> [--method GET] [--body <json>]` | 发送任意请求 |
64
- | 日志 | `log` | `yapi log --interfaceId <id> [--projectId <id>]` | 查看接口更新日志 |
65
- | 导出 | `export` | `yapi export --projectId <id> [--type json]` | 导出接口定义 |
66
- | 下载 CRX | `interface-download-crx` | `yapi interface-download-crx` | 下载 YApi 跨域插件 |
67
-
68
- ## 用户管理
69
-
70
- | 场景 | 命令 | 用法 | 说明 |
71
- | --- | --- | --- | --- |
72
- | 用户列表 | `user-list` | `yapi user-list` | 列出所有用户 |
73
- | 搜索用户 | `user-search` | `yapi user-search --q <keyword>` | 按关键词搜索用户 |
74
- | 注册用户 | `user-register` | `yapi user-register --username <u> --password <p> --email <e> [--role <r>] --confirm true` | 写操作 |
75
- | 删除用户 | `user-delete` | `yapi user-delete --uid <uid> --confirm true` | 写操作 |
76
- | 用户头像 | `user-avatar` | `yapi user-avatar --uid <uid>` | 查看用户头像 |
77
- | 上传头像 | `user-upload-avatar` | `yapi user-upload-avatar --uid <uid> --imagePath <path> --confirm true` | 写操作 |
78
-
79
- ## 测试
80
-
81
- | 场景 | 命令 | 用法 | 说明 |
82
- | --- | --- | --- | --- |
83
- | GET 测试 | `test-get` | `yapi test-get --url <url> [--params <json>]` | HTTP GET 请求测试 |
84
- | POST 测试 | `test-post` | `yapi test-post --url <url> [--body <json>]` | HTTP POST 请求测试 |
85
- | PUT 测试 | `test-put` | `yapi test-put --url <url> [--body <json>]` | HTTP PUT 请求测试 |
86
- | DELETE 测试 | `test-delete` | `yapi test-delete --url <url>` | HTTP DELETE 请求测试 |
87
- | HEAD 测试 | `test-head` | `yapi test-head --url <url>` | HTTP HEAD 请求测试 |
88
- | OPTIONS 测试 | `test-options` | `yapi test-options --url <url>` | HTTP OPTIONS 请求测试 |
89
- | PATCH 测试 | `test-patch` | `yapi test-patch --url <url> [--body <json>]` | HTTP PATCH 请求测试 |
90
- | 文件上传 | `test-files-upload` | `yapi test-files-upload --url <url> --filePaths <p1> [--params <json>]` | 多文件上传测试 |
91
- | 单文件上传 | `test-single-upload` | `yapi test-single-upload --url <url> --filePath <p>` | 单文件上传测试 |
92
- | HTTP 状态码 | `test-http-code` | `yapi test-http-code --url <url>` | 检查响应状态码 |
93
- | 原始响应 | `test-raw` | `yapi test-raw --url <url>` | 查看原始响应 |
94
- | 响应结构 | `test-response` | `yapi test-response --url <url>` | 查看完整响应结构 |
95
- | 自动测试 | `run-auto-test` | `yapi run-auto-test --projectId <id> [--format json]` | 运行项目自动测试 |
96
- | 项目接口数据 | `project-interface-data` | `yapi project-interface-data --projectId <id>` | 查询项目接口测试数据 |
97
-
98
- ## 集合
99
-
100
- | 场景 | 命令 | 用法 | 说明 |
101
- | --- | --- | --- | --- |
102
- | 集合列表 | `col-list` | `yapi col-list --projectId <id>` | 项目下的测试集合列表 |
103
- | 集合用例 | `col-cases` | `yapi col-cases --projectId <id> --colId <id>` | 集合下的测试用例 |
104
-
105
- ## 系统
106
-
107
- | 场景 | 命令 | 用法 | 说明 |
108
- | --- | --- | --- | --- |
109
- | 自检 | `doctor` | `yapi doctor` | 检查 Node/配置/网络连通性 |
110
- | 版本 | `version` | `yapi version [--json] [--verbose]` | 查看版本详情 |
111
- | 变更日志 | `changelog` | `yapi changelog [--limit <n>] [--version <v>]` | 查看版本变更历史 |
112
- | 更新 | `update` | `yapi update [--cli-only] [--skill-only]` | 更新 CLI + skill |
113
- | 安装 skill | `install-skill` | `yapi install-skill` | 安装 skill 到本地 |
114
- | 文档同步 | `docs-sync` | `yapi docs-sync [--path <p>] [--validate]` | 从 markdown 同步文档 |
115
- | Shell 补全 | `completion` | `yapi completion [--shell bash]` | 生成 shell 补全脚本 |
116
-
117
- ## 常用组合
5
+ - 先按场景挑页,再看页内高频 / 低频分组
6
+ - 精确参数最终以 `yapi help <command>` 为准
7
+ - 读命令不用 `--confirm true`;写命令必须显式确认
8
+ - 如果目标是“找得到命令”,优先看本页;如果目标是“抄正确参数”,进二级专题页
9
+
10
+ ## 两级入口
11
+
12
+ | 用户场景 | 一级入口 | 二级页 | 推荐起手命令 |
13
+ | --- | --- | --- | --- |
14
+ | 第一次安装 / 排查环境 | 系统入口 | `reference/install.md` | `yapi install` `yapi list` `yapi doctor` |
15
+ | 登录 / 看当前账号 / 用户管理 | 账号入口 | `reference/auth.md` | `yapi config-init` `yapi login` `yapi whoami` |
16
+ | 查分组 / 管分组成员 | 分组入口 | `reference/group.md` | `yapi group-list` `yapi group-get` |
17
+ | 查项目 / 建项目 / 改项目配置 | 项目入口 | `reference/project.md` | `yapi project-list` `yapi project-get` `yapi project-create` |
18
+ | 查接口 / 建接口 / 改 Mock / 改分类 | 接口入口 | `reference/interface.md` | `yapi search` `yapi interface-list` `yapi interface-update` |
19
+ | 高级 Mock(期望 / 脚本) | Mock 入口 | `reference/mock.md` | `yapi mock-expect-list` `yapi mock-script-get` |
20
+ | 联调接口 / 跑自动测试 | 测试入口 | `reference/test.md` | `yapi test-get` `yapi test-post` `yapi open-run-auto-test` |
21
+ | 管集合 / 管用例 / 导入导出 / 快照 | 工具入口 | `reference/tooling.md` | `yapi col-list` `yapi case-run` `yapi docs-sync` |
22
+
23
+ ## 高频起手命令
24
+
25
+ | 需求 | 命令 |
26
+ | --- | --- |
27
+ | 看全部命令 | `yapi list` |
28
+ | 看命令参数 | `yapi help <command>` |
29
+ | 校验账号 | `yapi whoami` |
30
+ | 查项目 | `yapi project-list` |
31
+ | 查接口 | `yapi search --q <keyword>` |
32
+ | 看接口详情 | `yapi interface-get --interfaceId <id>` |
33
+ | 跑一次 GET 测试 | `yapi test-get --url <url>` |
34
+ | 做工作区快照 | `yapi workspace-snapshot` |
35
+
36
+ ## 常见链路
118
37
 
119
38
  ### 查一个项目的完整上下文
120
39
 
@@ -129,24 +48,16 @@ yapi member --projectId <id>
129
48
  ### 创建并配置新接口
130
49
 
131
50
  ```bash
132
- yapi category-list --projectId <id> # 确认分类 ID
51
+ yapi category-list --projectId <id>
133
52
  yapi interface-create --projectId <id> --catId <cid> --title <t> --path <p> --confirm true
134
- yapi interface-list --projectId <id> # 验证已创建
53
+ yapi interface-list --projectId <id>
135
54
  yapi interface-mock-script --interfaceId <iid> --script <s> --confirm true
136
55
  ```
137
56
 
138
- ### 查接口详情 + 日志 + Mock 状态
57
+ ### 查接口详情再联调
139
58
 
140
59
  ```bash
141
60
  yapi interface-get --interfaceId <id>
142
61
  yapi log --interfaceId <id>
143
- yapi interface-mock-toggle --interfaceId <id>
144
- ```
145
-
146
- ### 搜索 + 测试
147
-
148
- ```bash
149
- yapi search --q <keyword> --limit 20
150
- yapi interface-get --interfaceId <id>
151
62
  yapi test-get --url <url>
152
63
  ```