Hoppscotch指南:80k星开源API开发工具,Postman的开源替代

项目:hoppscotch/hoppscotch | 星数:80715 | 语言:TypeScript | 协议:MIT | GitHub仓库

更新日期:2026-10-29 · 作者:CodeArts 编辑部

它解决的是"我不想装一个 IDE 来发请求"

Postman 功能强,但启动慢、资源占用高、账号与云同步策略让不少人并不舒服,企业版的定价也不便宜。Hoppscotch 的定位很清晰:一个打开就能发请求的工具。80715 星、MIT 协议,Web 版可以直接在浏览器使用,也能桌面安装或自托管到内网,数据完全自主。

三种形态怎么选

形态特点适用
Web 版打开即用,PWA 可安装临时调试、跨设备
桌面版无跨域限制,支持本地文件日常开发主力
自托管内网部署,数据不出公司团队、涉密场景

Web 版调试本地接口时会遇到 CORS——浏览器发请求受同源策略约束。桌面版没有这个问题,所以日常开发建议直接用桌面客户端。

协议支持比想象中宽

WebSocket 支持这点很实用。调试实时推送接口时,多数人还在 Postman 与浏览器控制台之间来回切,Hoppscotch 能在一个界面上发消息、看回包。

自托管:Docker 一条路走到黑

git clone https://github.com/hoppscotch/hoppscotch
cd hoppscotch
cp .env.example .env
docker compose up -d

官方 compose 会拉起前端、后端(Node)、Postgres 和 Redis。起来后默认在 3000 端口(具体以 .env 中配置为准)。

关键配置项:

DATABASE_URL=postgresql://user:pass@db:5432/hoppscotch
REDIS_URL=redis://redis:6379
JWT_SECRET=换成一个足够长的随机串
VITE_BASE_URL=https://api.example.com
ENABLE_SUBPATH_BASED_ACCESS=false

VITE_BASE_URL 是前后端通信地址,必须以 /v1 结尾,配错会表现为登录后无限跳转或请求 404,这是自托管最常见的问题。JWT_SECRET 一定要改,默认值公开可查。

团队协作能力

自托管版提供多用户与工作区:

npx @hoppscotch/cli test collection.json -e prod.json

把集合文件导到仓库里,CI 里跑一遍,接口挂了立刻知道。这一环是国内团队用 Postman 时常被忽略的部分——接口测试实际上从来没有真正进入 CI。

实际使用中的技巧

  1. 环境变量分层:baseUrl、token 放环境,路径里写 {{baseUrl}}/users,切换测试/预发/生产只改一个环境。
  2. 用脚本做登录态传递:在登录请求的测试脚本里 pw.env.set('token', res.body.access_token),后续请求自动带上,省去手动复制。
  3. 断言即文档:pw.expect(res.status).toBe(200) 这类断言既能防回归,也把接口契约写清楚了。
  4. 注意敏感数据:集合里不要硬编码真实生产 token,导出分享前检查一遍。

和同类工具的对比

工具优势劣势
Hoppscotch轻量、开源、可自托管、多协议脚本生态不如 Postman 丰富
Postman功能最全、生态最大重、云同步策略、付费门槛
Bruno纯本地文件、Git 友好多协议支持较少

选择建议很直接:需要内网自主可控、协议种类多、团队想省钱,选 Hoppscotch;需要大量企业级协作功能和现成集成,Postman 仍是最大公约数;如果把"接口定义即文件、随 Git 走"奉为原则,Bruno 更纯粹。

部署注意事项

自托管时要留意版本与安全更新——API 调试工具天然持有大量凭证,一旦公网暴露又未及时升级,风险不小。建议放在内网或加一层身份网关,JWT_SECRET 与数据库密码使用密钥管理而非写在 compose 里,并定期备份 Postgres 数据卷。

常见问题

Hoppscotch 免费吗?可以自托管吗?

开源版 MIT 协议完全免费,可通过 Docker Compose 自托管到内网,含多用户与工作区协作。官方也提供云端托管版本,部分企业协作与高级能力需付费订阅。

Web 版调试本地接口报 CORS 错误怎么办?

这是浏览器同源策略导致的,不是接口坏了。改用桌面客户端即可绕过跨域限制;或让后端在本地开发环境放开 Access-Control-Allow-Origin。生产环境不要为此长期开放 CORS。

自托管后登录一直跳转或 404?

多半是 VITE_BASE_URL 配置错误,该值必须是前端能访问到的后端地址且以 /v1 结尾。同时确认 JWT_SECRET 已改为自定义值、Postgres 与 Redis 容器健康,改完需重新构建前端镜像。