# console-postman **Repository Path**: chenddcoder/console-postman ## Basic Information - **Project Name**: console-postman - **Description**: NodeJs编写的控制台Postman,再也不用为请求接口而焦虑,随时随地编写请求 - **Primary Language**: TypeScript - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-15 - **Last Updated**: 2026-05-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ddpost — 控制台里的 Postman 交互式 HTTP 客户端,支持目录管理、环境变量、`.http` 文件格式、curl 解析、动态变量。 ## 安装 ```bash npm install -g @chenddcoder/ddpost ``` ## 快速开始 ```bash ddpost ``` ``` ╔ Console Postman ═══════════════════════════════╗ ║ Env: default 0 dirs, 0 requests ║ ╚═══════════════════════════════════════════════╝ 📂 Directories: (no directories — use /mkdir) [default] > ``` ## 核心概念 ### 两种变量 | 写法 | 用途 | 说明 | |---|---|---| | `{{DOMAIN}}` | 环境变量 | 通过 `/env-set` 设置,跨请求共享 | | `${file}` | 动态变量 | 执行时临时传入,每次可以不同 | ### 存储结构 数据保存在 `~/.ddpost/<项目名>/`: ``` ~/.ddpost/ └── <项目名>/ ├── Users/ ← /mkdir 创建的目录 = 真实文件夹 │ ├── GetUsers.http ← 标准 .http 文件 │ └── CreateUser.http ├── environments.json ← 环境变量 ├── meta.json ← 当前环境、上次目录 └── history_cmds.txt ← 命令历史(↑ 键回溯) ``` `.http` 文件是标准格式,可用任何编辑器直接修改。 ## 命令参考 ### 目录管理 | 命令 | 作用 | |---|---| | `/mkdir ` | 创建目录 | | `/rmdir ` | 删除目录(递归) | | `cd ` 或 `cd ` | 进入目录(Tab 补全) | | `cd ..` 或 `cd /` | 返回根目录 | | `/list` | 刷新显示 | ### 请求管理 | 命令 | 作用 | |---|---| | `/new ` | 当前目录下创建请求(行内) | | `/new ` | 指定目录创建请求 | | `/new` | 交互式创建 | | `/rm ` 或 `/rm /` | 删除请求 | | `/rename /<旧名> <新名>` | 重命名 | | `/edit ` | 编辑请求(URL / Headers / Body) | | `/save ` | 保存上一次执行的结果为请求 | ### 执行请求 | 命令 | 作用 | |---|---| | `GET http://...` | 直接执行原始 HTTP 请求 | | `POST http://...` | 任意 HTTP method 均可 | | `curl -X POST http://... -d "data"` | 粘贴 curl 命令 | | `!0` | 运行当前目录第 0 个请求 | | `!0 file=my.pdf` | 运行并传入 `${file}` 的值 | | `!0 file="path with spaces"` | 带空格的 value 用引号包裹 | | `!!` | 重复上一次请求 | | `!` | 查看上一次请求摘要 | ### 环境变量 | 命令 | 作用 | |---|---| | `/env` | 查看当前环境 | | `/env ` | 切换到指定环境 | | `/envs` | 列出所有环境 | | `/env-new ` | 新建环境(克隆当前) | | `/env-set =` | 设置变量 | | `/env-del ` | 删除变量 | ### 导入 / 工具 | 命令 | 作用 | |---|---| | `/import` | 多行粘贴模式(粘贴 `.http` 内容) | | `/history` | 查看请求历史 | | `/clear` | 清屏 | | `/quit` | 退出 | ## 使用示例 ```bash # 创建目录和请求 /mkdir Users cd Users /new GetUsers GET http://{{DOMAIN}}/api/users # 创建第二个请求 /new CreateUser POST http://{{DOMAIN}}/api/users # 然后输入 Headers 和 Body(交互式) # 运行 !0 # GET /api/users !0 DOMAIN=localhost:9000 # 临时覆盖环境变量 # 动态变量 # 请求 URL: http://{{DOMAIN}}/file?name=${file}&type=pdf !0 file=报告V3.pdf # 执行时传值 !0 file="年度总结 2024.pdf" # 带空格用引号 # 直接执行 GET http://localhost:8080/health # 环境切换 /env-new staging /env-set DOMAIN=staging.example.com !0 # 走 staging 环境 ``` ## 环境变量 vs 动态变量 ``` 请求 URL: http://{{DOMAIN}}/api/{{version}}/file?name=${file} {{DOMAIN}} → 从当前环境取值 → /env-set DOMAIN=localhost:8080 {{version}} → 从当前环境取值 → /env-set version=v2 ${file} → 执行时临时传入 → !0 file=test.pdf ``` ## 开发 ```bash npm run typecheck # TypeScript 类型检查 npm start # 启动 ```