找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 20|回复: 0

控制台里的Postman

[复制链接]

15

主题

3

回帖

89

积分

注册会员

积分
89
发表于 2026-5-16 23:13:05 | 显示全部楼层 |阅读模式
ddpost — 控制台里的 Postman

一个在终端里运行的交互式 HTTP 客户端,告别 Postman 的臃肿,拥抱命令行的简洁。


---

简介

ddpost 是一个纯终端界面的 HTTP 请求工具,灵感来自 Postman,但完全运行在命令行中。它支持目录管理请求、多环境变量、.http 文件格式、curl 命令解析、动态变量等功能,适合习惯终端操作的开发者。

数据存储在 ~/.console-postman/<项目名>/ 下,每个项目独立管理,互不干扰。

---

核心特性

1. 目录化管理请求

请求按目录组织,每个目录是一个真实文件夹,每个请求是一个标准的 .http 文件,可以用任何编辑器直接修改。

  1. ~/.console-postman/
  2. └── 我的项目/
  3.     ├── 用户管理/
  4.     │   ├── 获取用户列表.http
  5.     │   └── 创建用户.http
  6.     ├── 订单服务/
  7.     │   └── 查询订单.http
  8.     ├── meta.json              ← 根级环境变量
  9.     └── environments.json      ← 旧版兼容
复制代码


2. 多环境变量系统

支持根级环境变量和目录级环境变量,两级叠加继承:

  • 根级环境变量:作用于整个项目,作为基础变量
  • 目录级环境变量:作用于当前目录,同名变量会覆盖根级变量
  • 每个目录可以创建多个环境(如 dev / staging / prod),独立切换


变量解析链:
  1. 根级当前环境变量 → 目录当前环境变量(同名覆盖)
复制代码


3. 两种变量语法

写法类型说明
{{DOMAIN}}环境变量从当前环境取值,跨请求共享
${file}动态变量执行时临时传入,每次可以不同


4. 直接执行 HTTP 请求

支持直接输入 HTTP 请求或 curl 命令并执行:

  1. > GET http://localhost:8080/api/users
  2. > POST http://localhost:8080/api/users Content-Type: application/json

  3. {"name": "test"}
  4. ---
  5. > curl -X POST http://localhost:8080/api/users -H "Content-Type: application/json" -d '{"name":"test"}'
复制代码


5. 导入标准格式

支持粘贴 .http 文件内容或 curl 命令,自动解析并保存为请求。

6. 请求历史

自动记录执行历史,支持 ↑ 键回溯命令,跨会话持久化。

7. 删除确认保护

所有删除操作(目录、请求、环境、变量)都有确认提示,防止误删。

---

安装

  1. npm install -g @chenddcoder/ddpost
复制代码


使用

  1. ddpost
复制代码


进入交互界面后:

  1. ╔ Console Postman ═══════════════════════════════╗
  2. ║  2 dirs, 1 requests
  3. ╚═══════════════════════════════════════════════╝

  4. 📂 Directories:
  5.   1  用户管理 (3 req)
  6.   2  订单服务 (1 req)
  7.   输入编号进入目录

  8. ──────────────────────────────────────
  9.   [n=新建目录 d=删除目录 v=环境变量 q=退出]
  10. >
复制代码


---

命令速查

根视图
命令作用
<编号>进入目录
n <名称>新建目录
d <编号>删除目录(有确认提示)
v管理根级环境变量
q退出


目录视图
命令作用
<编号>执行请求
<编号> KEY=val执行请求并临时覆盖变量
n交互式新建请求
i导入请求(HTTP 或 curl)
d <编号>删除请求(有确认提示)
e <编号>编辑请求
v管理当前目录的环境变量
q返回根视图


环境列表视图
命令作用
<编号>激活环境并进入详情
n <名称>新建环境
d <编号>删除环境(有确认提示)
q返回


环境详情视图
命令作用
<编号>查看变量值
n <key>=<value>新建/修改变量
d <编号>删除变量(有确认提示)
q返回环境列表


---

使用示例

  1. // 创建目录和请求
  2. n 用户管理
  3. // 输入编号进入目录
  4. 1
  5. n
  6. // 输入名称: 获取用户列表
  7. // 输入 Method: GET
  8. // 输入 URL: http://{{DOMAIN}}/api/users

  9. // 创建环境变量
  10. v
  11. n dev
  12. n DOMAIN=localhost:8080
  13. q

  14. // 执行请求
  15. 1

  16. // 使用动态变量
  17. // 先编辑请求,URL 改为 http://{{DOMAIN}}/api/users?page=${page}
  18. e 1
  19. // 修改 URL 后输入 --- 保存
  20. 1 page=2
复制代码


---

数据存储

  1. ~/.console-postman/
  2. └── <项目名>/
  3.     ├── meta.json              ← 根级环境变量 + 当前环境 + 上次目录
  4.     ├── history.json           ← 请求历史
  5.     ├── history_cmds.txt       ← 命令历史(↑ 键回溯)
  6.     ├── environments.json      ← 旧版兼容(自动迁移)
  7.     └── <目录名>/
  8.         ├── 请求1.http
  9.         ├── 请求2.http
  10.         └── env.json           ← 目录级环境变量
复制代码


---

技术栈

  • TypeScript
  • Node.js 原生 fetch(无需额外依赖)
  • readline/promises 交互式命令行
  • 文件系统持久化(JSON + .http 文件)


---

开源地址

https://github.com/chenddcoder/console-postman
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|QuickTVUI论坛

GMT+8, 2026-5-30 21:53 , Processed in 0.098653 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表