内容
<div align="center">
<a href="https://marketplace.visualstudio.com/items?itemName=henry-huang.http-forge">
<img src="https://raw.githubusercontent.com/hsl1230/http-forge/main/resources/http-forge-icon.png" alt="HTTP Forge" width="120"/>
</a>
</div>
# HTTP Forge 命令行工具
[](https://www.npmjs.com/package/@http-forge/cli)
[](https://www.npmjs.com/package/@http-forge/cli)
[](https://marketplace.visualstudio.com/items?itemName=henry-huang.http-forge)
[](LICENSE)
[](https://www.npmjs.com/package/@http-forge/cli)
[HTTP Forge](https://marketplace.visualstudio.com/items?itemName=henry-huang.http-forge) 的独立启动器、终端和自动化命令行工具。
用于从终端启动 HTTP Forge,运行 API 集合和套件,管理 MCP 服务器生命周期,并生成 JUnit/HTML 报告。
适用于 Postman 兼容的工作流程:导入 Postman 集合/环境并使用 Postman 风格的脚本和断言运行它们。
要获得完整的交互式体验,请运行 `http-forge launch`。
启动器确保在打开目标配置文件之前,VS Code 和 HTTP Forge 扩展已安装在其中。
## 适用人群
- 想要从终端启动独立 HTTP Forge 的开发人员。
- 想要从终端运行 API 集合的开发人员。
- 需要可重复的套件运行和 JUnit 报告的 QA 团队。
- 需要 API 测试门控而无需 GUI 的 CI/CD 管道。
- 需要 MCP 服务器生命周期命令的代理工作流程。
## 为什么使用 HTTP Forge CLI
- 使用一个命令以独立的 UI 模式启动 HTTP Forge。
- 在 CI/CD 中无需 GUI 运行 API 测试。
- 在编辑器和终端中使用相同的 HTTP Forge 工作区。
- 为团队可见性生成 JUnit 和 HTML 报告。
- 为代理工作流程管理 MCP 服务器生命周期。
- 在一个工具链中处理 OpenAPI、环境和 Postman 风格的脚本。
## 支持的工具
- HTTP Forge 工作区和集合
- OpenAPI 规范
- Postman 导入
- GitHub Actions、Jenkins、GitLab CI 等管道
## Postman 兼容性(导入 + 运行)
HTTP Forge CLI 设计用于终端中完整的 Postman 兼容流程:
- 导入 Postman 集合导出。
- 导入 Postman 环境导出。
- 在 CI/CD 中运行导入的请求、文件夹、集合和套件。
- 在运行期间执行 Postman 风格的脚本/断言。
```bash
# 导入 Postman 集合
http-forge import collection --postman ./MyApi.postman_collection.json
# 导入 Postman 环境
http-forge import env --postman ./MyEnv.postman_environment.json --env staging --overwrite
# 使用该环境运行导入的集合
http-forge run collection "MyApi" --env staging --exit-code
```
## 快速入门
```bash
# 1) 安装
npm install --global @http-forge/cli
# 2) 启动独立的 HTTP Forge UI
http-forge launch
# 3) 导入 Postman 集合
http-forge import collection --postman ./MyApi.postman_collection.json
# 4) (可选)导入 Postman 环境
http-forge import env --postman ./MyEnv.postman_environment.json --env staging --overwrite
# 5) 运行导入的集合
http-forge run collection "MyApi" --env staging --exit-code
# 6) 运行带有 JUnit 报告的套件以进行 CI
http-forge run suite "smoke-tests" --env staging \
--reporter junit:results/junit.xml --exit-code
```
## 安装
```bash
npm install --global @http-forge/cli
```
从 monorepo:
```bash
cd http-forge.cli
npm install
npm run build
```
## 核心命令
| 命令 | 目的 |
|---|---|
| `http-forge launch` | 启动独立的 HTTP Forge UI (`--test`, `--dev`, `--both`) |
| `http-forge run ...` | 运行请求、文件夹、集合或套件 |
| `http-forge mcp ...` | 启动/停止/状态为 MCP 服务器 |
| `http-forge list ...` | 列出集合、套件、请求、文件夹、环境 |
| `http-forge env ...` | 获取/设置/取消环境变量 |
| `http-forge import ...` | 导入集合和 Postman 环境文件 |
| `http-forge generate ...` | 从集合生成类型化的 TypeScript API 客户端 |
| `http-forge suggest-env ...` | 检测硬编码值并建议环境变量 |
| `http-forge schedule ...` | 生成计划的 CI 工作流/ cron 配置 |
| `http-forge copy-as ...` | 导出请求为 curl/fetch/python 代码片段 |
## 生成类型化客户端
使用 HTTP Forge 系列中的一个一致的命令进行代码生成:
```bash
# 生成所有集合
http-forge generate --input ./collections --output ./api-clients
# 生成一个集合
http-forge generate --input ./collections --output ./api-clients --collection forgerock-login
# 生成一个请求
http-forge generate --input ./collections --output ./api-clients --request forgerock-login/login-request
```
此命令在后台委派给 `@http-forge/codegen`。
从 `http-forge-codegen` 迁移的说明在 [docs/cli-reference.md](docs/cli-reference.md#migration-from-http-forge-codegen) 中。
## 启动模式
```bash
# 默认:独立的 HTTP Forge 配置文件
http-forge launch
# 使用您的正常 VS Code 配置文件
http-forge launch --dev
# 打开测试和开发配置文件
http-forge launch --both
# 打开工作区路径
http-forge launch --dev /path/to/workspace
```
当您想要从终端获得独立的 HTTP Forge UI 时,请使用 `http-forge launch`。
启动器会自动检测操作系统/ shell 并使用匹配的脚本:
- Linux/macOS:`scripts/http-forge.sh`
- Windows:`scripts/http-forge.bat`
## 常见的运行模式
```bash
# 集合
http-forge run collection "my-api" --env dev --include perRequest
# 套件
http-forge run suite "smoke-tests" --env staging --exit-code
# 请求
http-forge run request "Get Users" --collection "my-api" --env dev
# 文件夹
http-forge run folder "Auth/Login" --collection "my-api" --env dev
```
## CI/CD 示例
```bash
http-forge run suite "smoke-tests" \
--env staging \
--reporter junit:results/junit.xml \
--exit-code
```
在 CI 中使用此命令以在断言失败时使管道失败并发布 JUnit 工件。
## MCP 端口配置
对于 `http-forge mcp start`,CLI 默认使用 `http-forge.config.json` 中的 `mcp.port` (回退到 `3100` )。
使用 `--port` 覆盖单个运行。
```bash
# 使用 http-forge.config.json 中的 mcp.port (默认 3100)
http-forge mcp start
# 一次性覆盖
http-forge mcp start --port 3201
```
## 详细文档
- 完整的 CLI 参考:`docs/cli-reference.md`
- CI 指南:`docs/ci-guide.md`
- 示例工作流:`docs/ci-example.yml`
- HTTP Forge 文档:https://github.com/hsl1230/http-forge/tree/main/docs/user-guide
## 许可证
MIT