概述

本文汇总几款API客户端工具,旨在提供更多备选项:

  • 闭源:Postman、Apifox、Reqable
  • 开源:Bruno、Yaak、WebCurl

Postman

参考接口测试神器Postman使用教程

Apifox

参考Apifox实战

Reqable

参考Reqable实战

Bruno

官网,开源(GitHub,38.3K Star,2K Fork)API客户端,使用纯文本标记语言Bru来描述和保存API信息,可使用Git进行版本管理(版本控制天然青睐于纯文本)。仅限离线使用,不计划添加云同步功能。

核心特性

  • 极简UI,跨平台,提供CLI命令行工具
  • 支持GET/POST/PUT等所有常见类型的请求,支持GraphQL
  • 支持创建环境区分,集成Git进行版本控制
  • 支持全局headers、变量、证书、关联文档等
  • 支持导入导出,兼容主流Open API协议

实战

安装

# Mac
brew install bruno
# Windows
choco install bruno
scoop bucket add extras
scoop install bruno
winget install Bruno.Bruno
# Linux
snap install bruno
flatpak install com.usebruno.Bruno
sudo mkdir -p /etc/apt/keyrings
sudo apt update && sudo apt install gpg curl
curl -fsSL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x9FA6017ECABE0266" \
  | gpg --dearmor \
  | sudo tee /etc/apt/keyrings/bruno.gpg > /dev/null
sudo chmod 644 /etc/apt/keyrings/bruno.gpg
echo "deb [arch=amd64 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

Insomnia

官网,开源(GitHub,37.6K Star,2.2K Fork)基于TS等前端技术栈、跨平台的API客户端,支持GraphQL.REST、WebSocket、SSE和gRPC。提供云端、本地和Git存储。提供API调试、设计、测试、Mock等功能。

核心技术:

  • Electron:提供跨平台桌面应用程序框架
  • React:基于组件架构驱动所有UI组件
  • React Router v7:用于客户端路由和代码分割
  • Tailwind CSS:采用实用优先的方法处理样式
  • libcurl:底层HTTP客户端库,提供对请求的深度控制
  • NeDB:本地内存数据库,用于数据持久化
  • CodeMirror:基于Web的代码编辑器,支持语法高亮和代码检查
  • Vite和esbuild:构建工具,实现快速开发和优化构建

5个包
在这里插入图片描述
遵循单体仓库模式,每个包在生态系统中都有特定用途。模块化方法实现更好的关注点分离、独立的开发周期和有针对性的测试策略。

  • 主应用程序对应insomnia,分为几个关键部分:
    • 入口点:/entry.main.js作为Electron入口点
    • 主进程:/src/main包含在Electron主进程中运行的代码
    • UI组件:/src/ui包含所有React组件和样式
    • 共享工具:/src/common包含主进程和渲染进程共用的工具
    • 插件:/src/plugins管理插件的安装和使用
    • 数据模型:/src/models定义存储用户数据的数据库模型
    • 网络层:/src/network处理请求发送和身份验证
    • 模板化:/src/templating管理Nunjucks和渲染逻辑
    • 同步与账户:/src/sync/src/account处理团队同步

在这里插入图片描述

  • CLI工具对应insomnia-inso提供命令行界面,用于自动化API测试并将Insomnia集成到CI/CD管道中,主要功能:
    • 从命令行运行测试套件
    • 检查API规范
    • 生成代码和文档
    • 与自动化构建系统集成
  • 脚本环境对应insomnia-scripting-environment,提供执行请求前和响应后脚本的运行时环境,包括:
    • 请求和响应操作工具
    • 模板渲染功能
    • 数据转换库
    • 身份验证助手
  • 测试框架对应insomnia-testing,提供全面的测试框架,允许开发者:
    • 为API端点创建测试套件
    • 编写断言以验证响应
    • 生成测试报告
    • 与持续集成系统集成
  • 冒烟测试对应insomnia-smoke-test,端到端测试套件,用于验证应用程序质量,不是面向最终用户的功能。
    • 定位:通过UI自动化测试整个Insomnia应用程序的功能;
    • 功能:使用Playwright模拟真实用户操作,测试界面交互、API功能等;
    • 覆盖范围:包含40+测试文件,覆盖GraphQL、gRPC、OAuth、WebSocket等所有核心功能;
    • 目标用户:开发团队内部的质量保证工具。

支持脚本功能的关键依赖项:

  • ajv和tv4:用于JSON模式验证
  • crypto-js:用于加密操作
  • cheerio:用于HTML/XML解析
  • csv-parse和xml2js:用于数据格式处理
  • moment:用于日期/时间操作

采用多层数据存储方法:

  • NeDB数据库:内存数据库存储请求、文件夹和工作区等数据模型
  • localStorage:用于某些应用程序设置和首选项
  • 基于文件的存储:用于窗口大小和其他持久化配置

Yaak

官网,开源(GitHub,15.2K Star,549 Fork)跨平台(基于tauri开发)桌面API客户端。离线优先,不会收集遥测数据,可使用Git进行云同步。

功能特性:

  • 支持从OpenAPI、Postman、Insomnia、Swagger和cURL导入数据,方便从第三方应用进行迁移;
  • 支持REST、GraphQL、gRPC、WebSocket、SSE协议;
  • 支持安装第三方插件和主题

技术栈

  • Web界面使用现代React生态系统工具:
    • React 19与TypeScript:用于组件架构
    • TanStack Router:用于类型安全路由
    • TanStack Query:用于服务器状态管理
    • CodeMirror 6:用于高级代码编辑
    • Tailwind CSS:用于实用优先的样式
  • Rust后端提供性能和安全性:
    • Tauri 2.9:作为应用程序框架
    • SQLite:通过yaak-models用于本地数据存储
    • Reqwest:用于HTTP客户端功能
    • Tokio:用于异步运行时
    • Serde:用于序列化

在这里插入图片描述

WebCurl

基于GO语言、极致轻量、开源(GitHub,554 Star,81 Fork)、跨平台、无依赖的HTTP请求转发与调试工具。

核心目标是解决传统API调试工具的几大痛点:

  • 复杂臃肿: 许多API工具功能过于繁杂,启动缓慢;
  • 平台限制: 需要下载安装特定平台的客户端;
  • 隐私担忧: 部分商业化工具需要注册账户并上传API数据;
  • 内网限制: 企业内网环境难以使用云端服务。

功能

  • 网页版Postman体验:无需安装客户端,浏览器即用,界面美观,功能丰富;
  • 支持HTTP CONNECT代理隧道:支持HTTP CONNECT方式,可作为HTTPS/SSH等协议的代理隧道,适用于curl、ssh、ncat等工具的代理转发;
  • 请求头自定义:支持任意请求头;
  • 文件上传/下载:支持多文件上传,响应内容可直接下载;
  • 请求重试与超时:可配置重试次数、重试间隔、超时时间;
  • SSL验证与重定向:选择是否验证SSL证书、是否自动跟踪重定向;
  • 接口功能丰富:接口历史、接口集合、变量替换、全局请求头、导入导出等;
  • 命令行灵活配置:支持自定义监听地址、端口、静态目录、日志、SSL证书等;
  • 最大轻量:单个二进制文件,体积仅约10M,部署、迁移、搬运方便;
  • 无依赖、易运维:不需要数据库、不需要外部依赖,直接运行;
  • 跨平台/信创兼容:支持主流网络及国产软硬件平台,适合信创环境、内网、离线等特殊场景;
  • 网络协议支持:完美支持IPv4和IPv6网络协议,适应各种网络环境;
  • 实时通信支持:初步支持WebSocket和SSE(Server-Sent Events),满足实时数据需求。

EchoServer调试服务

  • 智能请求回显:自动解析并回显请求的URL、方法、请求头、请求体(文本、表单、文件、二进制等);
  • 灵活的响应控制:支持通过自定义请求头或URL参数灵活控制响应内容和行为;
  • 多种响应格式:支持JSON、XML、Text等多种响应格式;
  • 响应延迟控制:可自定义响应延迟时间,模拟网络延迟场景;
  • 下载响应控制:支持将响应内容作为文件下载;
  • 流式通信支持:SSE和WebSocket接口支持流式数据本体;
  • 自定义数据队列:支持默认响应数据,实现自定义流式自适应;
  • 健壮性保障:内置恐慌恢复机制,防止服务崩溃;

静态文件服务器

  • 完整文件服务:类似Nginx的静态文件服务器功能,支持所有常见文件类型;
  • 丰富的MIME支持:自动识别HTML、CSS、JS、图片、音频、视频、字体等文件类型;
  • 安全防护:防止路径攻击,确保文件访问安全;
  • 高性能:支持大文件传输,内置存储控制;
  • CORS支持:内置跨域资源共享支持,适合前端开发;
  • 移动接口:支持移动设备访问,响应式设计;

常用工具

  • JWT解析:支持一键JWT Token,快速查看Payload信息,即可调试鉴权接口;
  • UUID生成:支持生成标准UUID,方便接口测试与数据填充;
  • 时间转换:支持毫秒/秒时钟与日期时间的相互转换,适配多个场景;
  • Base64编码解码:支持Base64字符串的编码与解码,其次处理二进制与文本数据;
  • Token生成器:支持自定义规则生成随机Token,适合接口测试、模拟登录等场景。

实战

安装:

git clone https://github.com/o8oo8o/WebCurl.git
cd WebCurl
go build -o WebCurl main.go
# 或./build.sh
# 运行
./WebCurl

浏览器打开http://localhost:4444开始体验:

提供参数:

  • -p:指定监听端口
  • -d:设置静态文件目录
  • -s:启用HTTPS模式
  • -c:指定SSL证书路径
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐