感情来了
就好好珍惜
感情走了
就专心搞事业
在 Postman、Insomnia 等商业 API 工具主导的市场中, Bruno 作为一款开源、轻量、注重隐私与协作的 API 客户端,正迅速赢得开发者青睐。它将 API 集合以纯文本文件形式存储在本地文件系统,天然支持 Git 协作,彻底告别“黑盒式”收藏管理。本文将带你从零安装、配置到高效使用 Bruno,体验真正为开发者打造的 API 调试新范式。
为什么选择 Bruno?
传统 API 工具(如 Postman)虽功能强大,但也存在明显痛点:
- 数据封闭
集合以私有格式存储在云端或本地数据库,难以版本控制
- 启动慢、资源占用高
Electron 应用普遍“吃内存”
- 协作依赖账号体系
团队共享需登录、付费、权限配置
Bruno 的核心理念 :
API 收藏即代码(Collections as Code)
通过以下设计,Bruno 实现了轻量、透明、可协作的 API 调试体验:
|
特性
|
说明
|
| --- | --- |
|
✅
纯文本存储
|
使用
.bru
文件保存请求,支持 Git 提交、Diff、Merge
|
|
✅
离线优先
|
无需登录,所有数据本地保存,隐私无忧
|
|
✅
跨平台
|
Windows / macOS / Linux 全支持
|
|
✅
快速启动
|
轻量级架构,秒开不卡顿
|
|
✅
开源免费
|
MIT 协议,GitHub 仓库完全开放
|
一、安装 Bruno
1. 官方下载
访问 https://www.usebruno.com,点击 Download 按钮:
选择对应操作系统的安装包。从这里就可以看出bruno只有不到100M,和postman的500M比起来就清爽多了!
2. 命令行安装(可选)
1# macOS (Homebrew)
2brew install--cask bruno
3
4# Linux (Snap)
5sudo snap install bruno
安装完成后,启动 Bruno,界面简洁清爽
二、创建第一个 API 请求
Step 1:新建请求
点击左上角 “New Request” ,输入:
-
Name
Get User Info
-
URL
https://jsonplaceholder.typicode.com/users/1
- Method
:
GET
Step 2:发送请求
点击 Send 按钮,右侧将显示响应:
1{
2"id":1,
3"name":"Leanne Graham",
4"email":"Sincere@april.biz",
5 ...
6}
✅ 支持自动格式化 JSON、XML、HTML 等响应体。
三、组织请求:文件夹与集合
Bruno 使用 文件系统结构 管理 API:
- 每个项目 = 一个本地文件夹
- 每个请求 = 一个
.bru文件 - 文件夹嵌套 = 请求分组
例如:
my-api-project/
├── users/
│ ├── get-user.bru
│ └── create-user.bru
├── posts/
│ └── list-posts.bru
└── bruno.json # 项目元信息
操作方式 :
- 右键侧边栏 → New Folder 创建分组
- 拖拽
.bru文件调整位置 - 直接在文件系统中用 VS Code 编辑
.bru文件(支持语法高亮)
💡 优势:Git 提交时可清晰看到哪条 API 被修改,适合 Code Review。
四、环境变量管理
开发、测试、生产环境切换是刚需。Bruno 提供内置环境管理:
1. 创建环境
点击顶部 Environments → New Environment :
填写变量:
1{
2"base\_url":"https://api.dev.example.com",
3"auth\_token":"dev\_abc123"
4}
2. 在请求中使用变量
在 URL 或 Headers 中引用:
{{base\_url}}/users
Authorization: Bearer {{auth\_token}}
🔁 切换环境时,所有变量自动更新,无需修改请求。
五、导入与导出
从 Postman 迁移
Bruno 支持导入 Postman Collection:
- 点击 Import
- 选择 Postman Collection v2.1
- 上传
.json文件
✅ 自动转换请求、变量、认证方式,无缝迁移。
导出为文件
选中集合 → Export → 生成 ZIP 或文件夹,便于备份或分享。
六、高级功能
1. 脚本支持(Pre-request & Tests)
Bruno 支持 JavaScript 脚本:
- Pre-request Script
:动态生成 token、签名
- Test Script
:断言响应状态、字段值
1// Pre-request: 生成时间戳
2bru.setVar('timestamp', Date.now());
1// Test: 验证状态码
2test('Status 200',()=>{
3expect(res.status).toBe(200);
4});
2. 多协议支持
除 HTTP/HTTPS 外,还支持:
- WebSocket(实时调试)
- GraphQL(内置查询编辑器)
- REST + Form-data / JSON / Raw 等 Body 类型
3. 插件生态
通过社区插件扩展功能,如:
- 自动重试
- 响应转 TypeScript 接口
- OAuth2 流程辅助
七、与 Apifox 对比:何时选 Bruno?
| 场景 | 推荐工具 | | --- | --- | | 🧑💻 个人开发者 / 小团队 | ✅ Bruno (轻量、开源、Git 友好) | | 🏢 中大型企业 / 复杂协作 | 🔸 Apifox (支持 Mock、自动化测试、CI/CD 集成) | | 🔒 数据隐私敏感 | ✅ Bruno (完全离线,无云依赖) | | 🧪 需要 Mock 服务 | 🔸 Apifox (内置智能 Mock 规则) | | 🔄 已有 Postman 集合 | ✅ Bruno (支持一键导入) |
💡 建议 :
用 Bruno 做日常调试 + Git 协作
用 Apifox 做全流程 API 管理(设计 → 文档 → 测试 → 监控)
总结
Bruno 不是 Postman 的简单复刻,而是对 API 调试工作流的一次重构 。它将“API 收藏”从黑盒数据变为可版本控制的代码资产,真正实现:
“你的 API 集合,就是你的代码库的一部分。”
无论你是独立开发者、开源贡献者,还是注重工程规范的团队,Bruno 都值得加入你的工具链。
