正文
做了这么多年后端,接口调试工具几乎是每天打开时间最长的软件之一。但这两年我越来越觉得不顺手:
- 客户端越做越重,动不动就要登录、同步,启动慢,吃内存;
- 核心功能开始收费,团队协作、定时监控(Monitor)、私有化部署,基本都是企业版才有的能力;
- 内网项目没法用:公司项目部署在内网,数据不能出网,云同步的工具直接劝退;
- 新协议支持跟不上:AI 应用火了之后,SSE 流式接口、WebSocket 越来越多,很多老工具测起来很别扭。
既然现有工具都不太对味,我就自己动手,做了一个纯浏览器端、可以私有化部署的团队 API 平台 ,取名 NBA-API。今天正式开源,把它分享给大家。
应用名称:NBA-API(牛B啊API) 哈哈~~
项目地址:https://gitee.com/fusheng_zhang/NBA-API
在线试用:http://182.92.210.97/scmp/static/index.html#/request/api

它是什么?
一句话:测接口、写文档、定时调度、AI 助手、群聊,全部在浏览器里一站搞定。
整个左侧导航就是一个完整的工作闭环:
API 管理 · Swagger 管理 · 组合文档 · 定时任务 · AI 助手 · 群聊 · 配置 · 使用帮助
底栏:数据统计
后端是一个 Spring Boot(2.7.x)工程,JDK8 就能跑;发布包包含主程序 scmp.jar、随包的 lib 依赖目录、static 静态资源和 SQLite 数据库文件,解压后用一条 java -jar 即可启动。数据库默认 SQLite,也支持 MySQL8。前端是纯浏览器页面,部署到内网服务器后,团队成员浏览器打开就能用,不用逐台安装客户端。
核心能力盘点
1. HTTP / SSE / WebSocket 全协议覆盖
这是我最在意的一点。常规的 GET/POST/PUT/DELETE、RESTFUL 路径参数(/user/{id})自然不用多说;
- SSE 流式接口:在 Api Detail 打开「SSEReq」标记后执行,结果区的 Data 里会实时刷出流式数据,对接大模型、实时推送非常直观;
- WebSocket:浏览器直连 ws(s),支持连接/关闭、多次收发;子协议通过 Header 表勾选行的"参数值"映射(Sec-WebSocket-Protocol),Token 鉴权推荐放在 URL Query 或首条消息(浏览器 WS 无法发送自定义 HTTP 头);Message 支持 json/text/xml/javascript;
- Body 支持 JSON5(可写注释)、multipart、表单、XML,文件下载可「点我保存」。

2. 定时任务,免费用 API 巡检
内置调度中心,支持 CRON / RRULE / 时间戳三种方式,直接关联远程 API 树里的接口。比如你想每 5 分钟探活一次核心接口、每天定时跑一遍冒烟用例,配置一下就行,不需要再单独写脚本。这一类能力在主流工具里多数需要付费版(如 Monitor),或得自己另写脚本。任务执行日志可查看、下载。
3. 内置 AI 助手,密钥只存本机
右侧抽屉里直接开 AI,支持 DeepSeek / 千问 / 千帆 / 本地兼容 OpenAI 的模型。写接口、拼参数、看不懂返回结果,边测边问。重点是密钥只保存在你自己的浏览器本机 ,不会上传到服务器。群里还能 @AI 助手 多轮对话,确认无误后再"发送到群"同步给大家。

4. 分享链接,对方零安装即测
单个接口、批量接口、甚至当前打开的标签页,都能生成分享链接。对方打开的是一个独立的分享页(可直接执行 / 执行 N 次,但不能存入团队库),能看到一模一样的接口并运行------排查问题时,再也不用截图 + 口述"你帮我调一下这个接口"。
5. 组合文档 + 多人协同
多个接口可以串成一篇基于 Markdown 的业务流程文档(比如"登录 → 下单 → 支付"整条链路),支持多人协同编辑、分享、下载,文档里还能直接打开关联的接口测试,比只读的 Swagger 更适合描述真实业务。
6. 批量压测 & 流程编排
单个接口可以"执行 N 次",每次对应一个独立结果 Tab,还能看请求耗时折线图;多个标签页支持顺序或并行执行(自动跳过 WS/SSE)。结果里的 Header 还能右键回填成请求头。
我自己最得意的一个设计:远程页面直连本机 localhost
这是个很实际的痛点:工具部署在公司的内网服务器上,但我要调的接口跑在我自己电脑的 localhost 上。 服务器上的页面当然访问不到我本机的服务,传统做法是配代理、做内网穿透,都很麻烦。
我的方案是:安装一个篡改猴(油猴)脚本,在"插件管理"里打开"自动启用插件"。之后,凡是发往本机地址(localhost / 127.0.0.1)的 HTTP 请求,都会自动通过浏览器插件从你本机发出,远程页面就这样"穿透"到了本机,无需任何代理。

说明:目前这个能力只针对 HTTP;WebSocket 始终由浏览器直连。
其他一些实用细节
- Fetch 一键导入 :浏览器 DevTools 里
Copy as fetch,粘进来直接转成 API; - Java8 代码转文档:上传带 Swagger 注解的 Java 类,自动生成字段文档和 JSON 示例;
- 脚本预处理 :
getVersion/buildParam/buildMessage动态改写参数,配合 Console 调试; - 版本快照:每次改动可回滚,开启自动保存后,请求成功即更新;
- 远程 + 本地双库:团队接口存服务器共享,私密接口(橘黄色)只存本机;
- 数据统计:底栏可看 API、组合文档近 30 天每日新增的柱状图(需远程服务);
- 暗色模式:熬夜党的基本尊严。
怎么部署?3 分钟跑起来
从仓库的 source 目录获取整套资源(scmp.jar 主程序、lib 依赖目录、sqlit-db.db 数据库、static 静态资源),保持目录结构,JDK8 环境下执行:
bash
java -jar scmp.jar \
--db.type=sqlit --sqlit.path=./sqlit-db.db \
--project.location-file-path=file:./static/ \
--project.socket.ports=3501 \
--spring.profiles.active=pro
启动后访问:
http://127.0.0.1:3500/scmp/static/index.html#/request/api
默认 SQLite,开箱即用;想要更稳定的生产环境,可以换 MySQL8。
坦诚说下短板
它不是万能的,也有明确不做或暂时弱的地方:
- 目前不支持 Mock、CI 集成(这块 Postman/Apifox 更成熟);
- 内置群聊面向"在线成员"的轻量协作:不做离线消息补传、不做历史漫游,离线期间的消息会错过,也没有服务端群权威库------需要长期归档的内容请用组合文档;
- 私有化部署目前是「解压后 java -jar」的方式,Docker 一键部署在规划中。
功能对比我在 README 里放了一张表,好的不好的都写清楚了,大家可以自己判断。
后续规划 (可能不存在)
- Docker / docker-compose 一键部署;
- Mock 能力;
- 更完善的 CI/CD 集成;
- 英文版文档、更多协议支持。
写在最后
这是一个项目,核心是想让自己和团队用得舒服一点。它完全免费、开源(AGPL-3.0),如果正好能解决你的痛点,欢迎:
- 到 Gitee/GitHub 点个 Star,对独立开发者是很大的鼓励;
- 提 Issue:bug、需求、建议都欢迎;
- 有能力的话,欢迎一起 PR 共建。
项目地址:https://gitee.com/fusheng_zhang/NBA-API
在线试用:http://182.92.210.97/scmp/static/index.html#/request/api
感谢读到这里,也欢迎在评论区聊聊你们平时都用什么工具调接口。