news 2026/7/31 4:49:17

后端接口挂了,前端怎么继续干活?这个 Chrome 扩展让我再也没等过后端

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
后端接口挂了,前端怎么继续干活?这个 Chrome 扩展让我再也没等过后端

一个零依赖、纯浏览器的响应改写工具,让你的页面数据随时可控。


你有没有过这样的经历——

下午三点,后端同事说"接口马上好",你对着浏览器里的 500 干瞪眼。UI 写好了,逻辑写好了,就差数据联调,偏偏卡在这一步。要么等,要么临时写一堆if (!data) return mockData的脏代码,回头还得记得删。

我之前也是这样。直到我受不了了,写了一个 Chrome 扩展:ResponseRewriter

它做了什么?

一句话:你在浏览器里看到的任何 XHR/Fetch 请求的返回值,都可以被接管、替换、改写。

不需要改一行后端代码,不需要起 Mock 服务,不需要配 hosts 或者代理。装好扩展,写一条 JSON 规则,刷新页面——页面里展示的,就是你想让它展示的数据。

四个场景,四种用法

1. 后端接口挂了 → 整段替换

最常见的场景。后端 500,前端没法继续调。在 ResponseRewriter 里新建一条规则:

  • URL 匹配方式选"包含",填/api/user/profile
  • 响应处理选"整段替换"
  • 内容填{"code":0,"data":{"name":"张三","role":"admin"}}

刷新页面,你的前端收到的就是这段 JSON。跟真实接口返回的一模一样。

2. 只想改几个字段 → JSON 合并

有时候接口能通,但你想看看某个字段改成极端值会不会崩溃。比如把balance改成-1,把status改成999

JSON 合并模式只覆盖你指定的字段,其余原样保留。不用拷贝整个响应体再改,一个对象写清楚要覆盖什么就够了。

3. 想根据原响应动态计算 → JS 转换

某些场景下,你想基于原始返回值做逻辑处理——加密、拼接、条件替换。JS 转换模式给你完整的脚本能力:

constdata=JSON.parse(originalResponse);// 根据请求参数动态调整if(context.url.includes('vip')){data.level='premium';}returndata;

你能拿到originalResponsecontext(包含 URL、方法等请求信息),想怎么算怎么算。

4. 接口还没写好 → Mock 拦截

最爽的功能。Fetch 请求直接在浏览器层面被拦截,连网络请求都不会发出。DevTools 的 Network 面板里根本看不到这条请求。就像这个接口从来没被调用过——页面直接拿到了你预设的返回值。

后端连接口定义都还没出的阶段,前端就能把整个页面调通。

为什么不用 Postman Mock / Whistle / Charles?

这些工具都很优秀,但 ResponseRewriter 解决了一个根本差异:

零切换。

Postman Mock 需要你在 Postman 和浏览器之间来回切;Whistle 和 Charles 要配代理、装证书;Mock 服务要起一个额外的进程。

ResponseRewriter 就在你调试的页面里工作。页面代码感知到的就是改写后的数据,跟真实网络返回没有任何区别。你不需要离开当前页面,不需要改系统设置。

而且,规则就是一条 JSON——你可以导出、发到群里、存到 Git 仓库。队友导入就能用,零配置。

几个我特别满意的细节

  • 拦截日志 + 命中对比:每次命中都有完整的原始→改写对比记录,JSON 自动格式化去噪。改了哪里,一目了然。不用再对着控制台猜"现在用的是真实数据还是 mock 数据"。

  • 规则执行顺序可拖拽排序:多条规则命中同一个请求时,按列表顺序依次处理。上下拖动就能调整优先级,或者按键Alt+↑/↓

  • URL 匹配三种模式:精确匹配、包含匹配、正则匹配。而且全部自动忽略 URL 参数——不用担心?v=123导致匹配失败。

  • 暗黑模式 + 四国语言:中日英韩完整翻译,浅色/暗黑主题切换。对深夜加班的同学比较友好。

  • 纯原生实现,零 npm 依赖:整个项目没有node_modulesnode --test直接跑 69 项测试。不装 Node 也能用——clone 下来直接加载到 Chrome。

  • 隐私优先:扩展首次启用拦截前会明确说明并征得同意。所有数据只存在本机chrome.storage.local,日志最多存 100 条,没有任何数据会发出去。

你可能会关心的问题

安全吗?扩展只申请了storage<all_urls>两个权限——一个存数据,一个让注入脚本能在调试页面运行。不读浏览历史,不碰 Cookie。JS 转换脚本在页面上下文执行,请只用自己的可信脚本。隐私政策完整透明,代码在 GitHub 开源。

能改二进制数据吗?不能。目前定位是文本响应(JSON / XML / HTML 等),二进制文件(图片、视频、字体)不适合用这个工具改。

适合线上用吗?这是一个开发测试工具,不建议在包含敏感数据的生产页面上持续启用。用完就关。

装一个试试?

开源地址:https://github.com/FutaoSmile/ResponseRewriter

安装方式:clone 项目 → Chrome 打开chrome://extensions/→ 开启开发者模式 → 加载已解压的扩展程序 → 选择项目目录。首次安装会自动带入 4 条示例规则和示例日志,不配也能看懂用法。

Chrome 114+ 可用,MIT 开源。


前端开发最大的时间浪费之一,就是在等后端接口。把这个等待时间彻底干掉,就是 ResponseRewriter 存在的理由。

不管你是前端开发、测试、还是偶尔需要改一下页面数据的任何角色,这个工具都值得装一个。

如果你觉得它有用,欢迎给个 Star ⭐,或者分享给你的队友们。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/31 4:48:30

Transformer架构解析:从原理到AI实践应用

1. 从图书馆到Transformer&#xff1a;用生活场景理解AI核心架构 第一次接触Transformer这个概念时&#xff0c;我被那些数学公式和术语搞得晕头转向。直到有一天在图书馆查资料&#xff0c;突然意识到这个场景完美诠释了Transformer的工作原理。就像图书管理员需要快速定位海量…

作者头像 李华
网站建设 2026/7/31 4:47:23

2、BellMan-Ford算法

2、Bellman-Ford算法&#xff1a;带你彻底搞懂负权边的最短路径 大家好&#xff0c;我是你的技术博主。今天我们来聊聊图论中一个非常重要的算法——Bellman-Ford算法。很多人在学习最短路径时&#xff0c;首先接触的是Dijkstra算法&#xff0c;但它有一个致命的弱点&#xff1…

作者头像 李华
网站建设 2026/7/31 4:44:47

濮阳工厂目视化设计5S管理落地完整方案

在当前制造业竞争日益激烈的环境下&#xff0c;濮阳工厂的目视化设计与 5S 管理落地方案在提升工厂效率、保障生产安全、降低成本等方面发挥着关键作用。系统性地了解相关产业格局&#xff0c;能够帮助工厂管理者在众多的服务商中做出更合适的选型决策。下面将从企业规模、质量…

作者头像 李华
网站建设 2026/7/31 4:43:28

Android面试核心:Handler、RecyclerView与内存泄漏实战解析

1. 项目概述&#xff1a;一份Android面试题的深度价值又到了招聘季&#xff0c;或者说&#xff0c;对于Android开发者而言&#xff0c;面试的“季节”似乎从未真正过去。无论是刚毕业的新人&#xff0c;还是寻求突破的资深工程师&#xff0c;面对面试官抛出的一个个问题&#x…

作者头像 李华
网站建设 2026/7/31 4:42:39

C++ string类完全指南:从基础使用到底层优化与性能陷阱

1. 从C风格字符串到C string&#xff1a;为什么我们需要它&#xff1f;如果你是从C语言转到C&#xff0c;或者刚开始学习C&#xff0c;第一次接触std::string时&#xff0c;可能会觉得有点“多此一举”。毕竟&#xff0c;在C语言里&#xff0c;我们用字符数组&#xff08;char …

作者头像 李华
网站建设 2026/7/31 4:41:07

macbook能玩steam里面的哪些游戏

MacBook 能玩 Steam 游戏吗&#xff1f;这份 Mac 玩家实用指南告诉你答案 很多入手 MacBook 的用户都问过同一个问题&#xff1a;MacBook 能玩 Steam 游戏吗&#xff1f;答案是肯定的&#xff0c;但前提是你要选对游戏&#xff0c;也要选对获取游戏的方式。今天就从 macOS 兼容…

作者头像 李华