← 返回信息流
GitHub 热榜GitHub Trending · 日·21 小时前

Kong/insomnia:开源跨平台 API 客户端

原标题:Kong/insomnia
TypeScript38,546 stars+13 今日

速览

支持 GraphQL、REST、WebSockets、SSE 和 gRPC 等多种协议,具备云、本地及 Git 存储能力,满足全栈开发中的 API 交互需求。

AI 深度解读

这是什么

Insomnia 是一款开源、跨平台的 API 客户端工具,由 Kong 公司维护,在 GitHub 上拥有极高的关注度(Star 数约 38,546+)。它主要基于 TypeScript 开发,支持 GraphQL、REST、WebSockets、Server-Sent Events (SSE)、gRPC 以及任何兼容 HTTP 的协议。

与传统的 API 测试工具不同,Insomnia 不仅是一个请求发送器,更是一个集 API 设计、调试、测试、Mock 和 CI/CD 集成于一体的全生命周期管理平台。它采用 Monorepo 架构,支持本地存储、Git 同步以及云端协作多种数据持久化方案,旨在为开发者提供灵活且安全的工作流。

解决的问题

在复杂的现代软件开发生命周期中,API 的交互方式日益多样化,传统工具往往存在以下痛点,Insomnia 旨在解决这些问题:

  1. 多协议支持的碎片化:开发者通常需要在 Postman、GraphQL Playground、gRPC-Web 等不同工具之间切换。Insomnia 在一个界面中统一支持 REST、GraphQL、gRPC、WebSocket 等主流协议,减少了上下文切换的成本。
  2. 数据隐私与协作的矛盾:许多商业 API 工具强制要求数据上云,导致敏感 API 密钥或内部接口规范泄露风险。Insomnia 提供了“Local Vault”(本地保险库)和“Git Sync”选项,允许用户将敏感数据完全保留在本地或私有 Git 仓库中,同时保留云端协作的便利性。
  3. API 设计与测试脱节:传统工作流中,API 文档(如 OpenAPI/Swagger)与 API 测试往往是分离的。Insomnia 内置了原生 OpenAPI 编辑器,支持从设计到测试的直接转换和预览,实现了 Design-First 的工作流。
  4. CI/CD 集成困难:许多 GUI 工具难以自动化集成到持续集成/持续部署流程中。Insomnia 提供了原生的 CLI 工具(Insomnia CLI / Inso),支持 linting、测试套件运行,便于将 API 验证嵌入自动化流水线。

核心功能

  • 多协议 API 调试
    • 支持 REST、GraphQL(包括 Subscriptions)、gRPC、WebSocket、SSE 等协议。
    • 提供可视化的请求构建器,支持 Headers、Body、Auth 等复杂配置。
  • API 设计与可视化
    • 内置原生 OpenAPI 编辑器,支持实时预览 API 文档。
    • 支持从 OpenAPI/Swagger 规范导入项目,快速生成 API 集合。
  • 自动化测试与 CI/CD
    • 支持编写原生测试套件(Test Suites),可对请求响应进行断言。
    • 提供 Collection Runner,可批量运行测试。
    • 通过 inso CLI 工具,可在无头模式下运行测试和 Lint 检查,完美集成至 Jenkins、GitHub Actions 等 CI 平台。
  • API Mocking
    • 支持使用云端或自托管的 Mock 服务器模拟 API 响应,加速前端开发。
  • 数据存储与同步
    • Local Vault:100% 本地存储,数据不离开本地设备,适合高安全需求场景。
    • Git Sync:通过第三方 Git 仓库(如 GitHub、GitLab)进行版本控制和同步,无需经过 Insomnia 云端。
    • Cloud Sync:支持云端协作,可选端到端加密(E2EE)。
  • 插件生态
    • 支持第三方插件扩展功能,如文档生成、API 规范导入等。

亮点 / 与同类相比

  • 极致的隐私控制权
    • 与 Postman 等强依赖云端的工具不同,Insomnia 允许用户完全掌控数据位置。即使拥有 Insomnia 账号,敏感数据也可通过 Local Vault 或 Git Sync 实现 100% 本地化或私有化存储。
    • Private Environments 功能确保环境变量配置始终本地存储,即使项目存储在云端,密钥也不会泄露。
  • 轻量级与高性能
    • 基于 Electron 构建,但相比 Postman 等重型工具,Insomnia 启动速度更快,资源占用更低,界面更加简洁直观。
  • 开源与免费策略
    • 核心功能完全免费且开源。虽然提供付费订阅(支持无限协作、组织管理、SAML/OIDC 登录等企业级功能),但其免费计划已满足大多数开发者的需求。
    • 这种模式确保了社区驱动的开发,同时通过企业功能维持项目的可持续运营。
  • 原生 OpenAPI 支持
    • 相比其他工具对 OpenAPI 的支持多为“导入/导出”形式,Insomnia 提供了深度的原生编辑器体验,支持实时预览和双向同步。
  • 跨平台一致性
    • 在 Mac、Windows 和 Linux 上提供一致的用户体验,且 Linux 用户可通过简单的包管理命令(如 apt-get)安装依赖,解决了 Electron 应用在某些 Linux 发行版上的兼容性问题。

适合谁用 / 上手

适合人群:

  • 后端开发者:需要频繁调试 REST、GraphQL 或 gRPC 接口,并关注 API 设计和文档一致性。
  • 前端开发者:需要 Mock 后端接口,快速验证前端逻辑,且希望 API 规范与测试用例同步更新。
  • DevOps / SRE:需要将 API 测试集成到 CI/CD 流水线中,使用 inso CLI 进行自动化验证。
  • 安全敏感型团队:对数据隐私有严格要求,不希望 API 密钥或内部接口规范存储在第三方云端,倾向于使用 Local Vault 或私有 Git 存储的团队。

上手指南:

  1. 安装

    • 访问 Insomnia 官网下载 Mac、Windows 或 Linux 版本。
    • 开发者可从 GitHub 克隆源码,使用 Node.js 和 Git 进行本地构建。
  2. 开发环境搭建(针对贡献者)

    • 确保安装 Node.js(参考项目 .nvmrc 文件指定版本)和 Git。
    • 执行 npm i 安装依赖。
    • 运行 npm run dev 启动应用并启用 Live Reload。
    • Linux 用户可能需要额外安装 libfontconfig-devlibcurl-devel 等系统库。
  3. 基本使用

    • 无需账号即可使用“Scratch Pad”(草稿本)进行本地 API 调试。
    • 注册免费账号以解锁云同步、协作和更多高级功能。
    • 通过“Import”功能导入 OpenAPI 规范或现有 API 集合。
  4. 进阶使用

    • 配置 Git Sync 将项目版本控制到私有仓库。
    • 编写测试脚本,使用 inso run 命令在 CI 环境中执行测试。
    • 浏览 Insomnia Plugin Hub 安装插件,如 Insomnia Documenter 生成美观的 API 文档,或 Swaggymnia 生成 Swagger 文档。
  5. 获取帮助

    • 查阅官方文档获取详细教程。
    • 加入 Slack 社区获取产品反馈和支持。
    • 阅读贡献指南(Contributing Guidelines)以参与开源开发。
查看原文 →github.com