尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Bruno 本地优先 API 客户端实战指南:Bru 文件存储模型、跨平台安装与 Git 协作

Bruno 本地优先 API 客户端实战指南:Bru 文件存储模型、跨平台安装与 Git 协作 Bruno 本地优先 API 客户端实战指南Bru 文件存储模型、跨平台安装与 Git 协作【免费下载链接】brunoOpensource IDE For Exploring and Testing APIs (lightweight alternative to Postman/Insomnia)项目地址: https://gitcode.com/GitHub_Trending/br/bruno本指南基于开源仓库中 Bruno 项目介绍文档阿拉伯语版docs/readme/readme_ar.md 编写。Bruno 是一个用于 API 探索与测试的开源 IDE其核心设计主张是“本地优先”所有 API 集合直接以纯文本保存在你电脑的文件系统目录中从而天然支持 Git 版本控制与团队协作。读完本文你将完整掌握 Bruno 的设计理念、请求描述语言 Bru 的写法以及如何在 macOS、Windows、Linux 上通过主流包管理器完成安装并理解其桌面端、CLI 等多运行形态背后的仓库结构。一、Bruno 是什么定位与设计理念根据仓库文档的描述Bruno 是一款“全新且具有创新性的 API 客户端”用于探索和测试 API。它与传统 API 工具最大的不同体现在以下三点均来自 readme_ar.md 的原文表述主 README readme.md 内容一致API 集合即文件系统目录Bruno 将你的集合collection直接存储在一个本地文件夹中而不是绑定在某个封闭的私有格式或云端数据库中。纯文本标记语言 Bru请求的 URL、方法、参数、请求体等信息通过名为 Bru 的纯文本标记语言保存既便于人类阅读也便于机器处理。离线优先、拒绝云同步Bruno 被设计为“仅限离线”使用文档明确写道“永远没有计划为 Bruno 增加云同步功能”强调数据隐私认为数据应当保留在用户自己的设备上。由以上设计可以延伸出一个自然结论既然数据都是磁盘上的普通文本文件那么你可以直接使用 Git 或任意版本控制系统VCS对 API 集合进行版本管理与团队协作——这正是本文后面要展开的 Git 协作工作流的基础。二、Bru可版本化的纯文本 API 描述格式文档指出Bruno 使用一种“纯文本标记语言 Bru”来保存 API 请求信息。Bru 并不是一种闭源自定义二进制格式而是有真实代码与测试支撑的文本格式。仓库中的语言工具包 packages/bruno-lang/readme.md 描述它正是“用于处理.bru文件的语言工具language utils”并在v1、v2两个目录下分别维护了解析器实现与大量测试用例见 packages/bruno-lang/v1、packages/bruno-lang/v2。下面是一个真实的.bru文件示例截取自仓库自带的 packages/bruno-lang/example/request.brutype http-request name Send Bulk SMS method GET url https://api.textlocal.in/bulk_json?apiKeysecretnumbers919988776655messagehellosender600010 body-mode json seq 1 params 1 apiKey secret 1 numbers 998877665 1 message hello /params headers 1 content-type application/json 1 accept-language en-US,en;q0.9,hi;q0.8 0 transaction-id {{transactionId}} /headers script let user John Doe; function onRequest(request) { request.body.user user; } /script可以直观看到 Bru 格式的几个特征顶层用key value的键值对声明type、name、method、url、seq顺序等元信息用带/params、/headers这类闭合标记的区块组织参数表支持序号前缀与{{变量}}插值如上面的{{transactionId}}script区块可以书写请求前/响应后的脚本逻辑。因为 Bru 是纯文本任何改动在 Git 中都能呈现为清晰的 diff代码评审、历史追溯、分支合并都变得和普通代码协作一样自然。三、安装 Bruno多平台、多包管理器全覆盖文档明确说明Bruno 为Mac、Windows、Linux提供了官方二进制安装包下载同时支持通过Homebrew、Chocolatey、Scoop、Snap、Flatpak、Apt等包管理器安装。下面按平台整理出完整命令全部可直接复制执行。macOSHomebrewbrew install brunoWindowsChocolatey / Scoop# 通过 Chocolatey choco install bruno # 通过 Scoop需先添加 extras 仓库 scoop bucket add extras scoop install brunoLinuxSnap / Flatpak# 通过 Snap snap install bruno # 通过 Flatpak flatpak install com.usebruno.BrunoLinuxApt基于官方 Debian 源Apt 方式需要先导入并配置 Bruno 的签名密钥与软件源步骤相对完整sudo mkdir -p /etc/apt/keyrings sudo apt update sudo apt install gpg curl curl -fsSL https://keyserver.ubuntu.com/pks/lookup?opgetsearch0x9FA6017ECABE0266 \ | gpg --dearmor \ | sudo tee /etc/apt/keyrings/bruno.gpg /dev/null sudo chmod 644 /etc/apt/keyrings/bruno.gpg echo deb [archamd64 signed-by/etc/apt/keyrings/bruno.gpg] http://debian.usebruno.com/ bruno stable \ | sudo tee /etc/apt/sources.list.d/bruno.list sudo apt update sudo apt install bruno需要说明的是上述命令严格取自 readme_ar.md阿拉伯语版。如果你使用 Windows 的 winget 或 Arch LinuxAUR在仓库根目录的英文主 readme.md 中还能找到对应的winget install Bruno.Bruno与yay -S bruno命令说明 Bruno 已覆盖更广的发行渠道而如果你维护了新的包管理器可参考仓库根目录的 publishing.md 了解如何申请将 Bruno 发布到更多包管理器。四、跨平台运行形态与 Git 协作工作流多形态运行桌面端、CLI 与编辑器如上图所示Bruno 的能力并不局限于桌面应用一种形态。从仓库的目录结构同样可以印证这一点桌面端Desktop渲染层位于 packages/bruno-appElectron 主进程与 IPC 层位于 packages/bruno-electron命令行CLIpackages/bruno-cli 提供了bru命令适合在 CI/CD 或自动化场景中直接运行集合图中还展示了.bru与 OpenCollection.yml两种请求描述格式仓库中 packages/bruno-converters 下的src/opencollection目录对应了这类格式的转换逻辑从目录结构可以推断。通过 Git 协作集合演进进入 Code Review 流程如上图所示把.bru文件纳入 Git 仓库后每个“新增请求”都可以作为一个普通的 Pull Request 提交团队成员能像评审代码一样评审 API 请求的改动左侧是文件树中的.bru文件右侧高亮显示的正是请求的meta、method、url等新增内容。配合分支、提交、合并、回滚等 Git 能力API 集合的演进过程全程可追溯。五、从源码库看 Bruno 的模块划分为了让读者更深入理解这套“本地优先”体系是如何实现的这里列出与上述功能直接对应的核心包均位于 packages 目录下包路径职责依据包内 README 与目录结构packages/bruno-app桌面端 UI渲染进程包含组件、Provider、主题等packages/bruno-electronElectron 主进程、IPC 通道与服务packages/bruno-cli命令行运行器bru命令及其 Docker 镜像packages/bruno-lang.bru语言解析工具v1/v2 两套实现packages/bruno-common多个包之间共享的常量与类型定义packages/bruno-schema、packages/bruno-schema-types集合/请求的数据结构模式定义与类型packages/bruno-filestore面向.bru等文件格式的读写与存储处理其中 bruno-lang 在 packages/bruno-lang/v2/tests 下有大量基于真实.bru文件的解析测试想理解 Bru 语法边界的开发者可以直接从这些用例入手。六、社区协作、发布与许可说明仓库根目录还提供了一系列配套文档方便进一步查阅贡献指南contributing.md仓库根目录其中写明即使不直接提交代码也欢迎通过提交 Bug 报告与功能需求的方式参与另有简体中文译本 docs/contributing/contributing_cn.md。多语言项目介绍Bruno 的项目 README 被翻译为多种语言统一收录于 docs/readme本文所基于的 readme_ar.md阿拉伯语即其中之一中文读者可对照 readme_cn.md 阅读。发布到新包管理器publishing.md 介绍了发布与维护流程。许可与商标项目采用 MIT 许可见 license.md。按 README 文档说明“Bruno”名称是 Anoop M D 持有的商标其 Logo 取自 OpenMoji 项目按 CC BY-SA 4.0 许可使用。结语Bruno 用一句话概括就是把 API 集合当作“存在你磁盘上的纯文本文件 Git 仓库”来管理的离线优先开源 IDE。借助 Bru 语言的文本可读性、跨平台安装的多渠道覆盖以及 Git 原生协作能力它可以无缝嵌入已有工程团队基于版本控制的开发流程中。如果你想进一步从源码层面探索上文列出的packages目录与docs/readme下的多语言文档会是最好的起点。【免费下载链接】brunoOpensource IDE For Exploring and Testing APIs (lightweight alternative to Postman/Insomnia)项目地址: https://gitcode.com/GitHub_Trending/br/bruno创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表