对方服务下线我推荐ProxyServer继续开发!

当对方接口出现故障时,本文介绍了如何使用http-proxy-middleware这个NodeJS中间件创建一个ProxyServer来代理正常接口并模拟坏掉的接口,以便在开发中继续进行。通过创建代理和设置mock数据,实现了对接口的临时替代,确保项目开发不受影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

NodeJS 后端开发11 对方服务下线我推荐ProxyServer继续开发!

背景

搞开发的小白最近经常会碰到一个问题,对方的接口还没有准备好,或者对方的系统出bug导致一些接口没法用。
小白跟项目老大说了这个情况。
但是老总不管,说这不还有接口文档嘛,这个问题很简单,你搞不定嘛?搞不定明天不要来了!

小白硬着头皮过来请教学委,我说这还不简单。把对方接口或者整站Mock一下就搞定,这样就能联动调试

直接解决

这里使用 http-proxy-middleware, nodejs比较热门的http 代理中间件。

假设,我们要基于源数据网站: http://theRealSite:10010/
它有下面三个接口,两个接口坏了。

  • /realData 接口返回原数据,这个接口很复杂无法mock,但目前可用
  • /orders 订单数据接口,因为故障无法调用
  • /products 产品数据接口,因为故障无法调用

回到主题,ProxyServer,也就这下面使用这个中间件启的一个代理服务器。

我们需要代理原数据,然后mock另外两个不可用的接口。

读者将下面代码保存为mockServer.js

const express = require('express');
const cors = require('cors');
const { createProxyMiddleware } = require('http-proxy-middleware');
//雷学委-CSDN-代码Demo
const leiXueWeiApp = express();
leiXueWeiApp.use(cors());

//创建代理,把流量转发给源网站
leiXueWeiApp.use('/realData', createProxyMiddleware({target: 'http://theRealSite:10010/', changeOrigin: true}));

//01 需要mock的商品接口。
leiXueWeiApp.use('/products',function(req,res){
    console.log('雷学委:这里调用了我们代理接口:',req.originalUrl)
    res.status(200).send([{
       "name":"鸿星尔克",
       "desc":"非常好的鞋子,价格实惠"
    }]); // 这里随便整点啥都行
}) 

//省略一万行代码实现多个接口代理。

// 需要mock的第N个接口
leiXueWeiApp.use('/orders',function(req,res){
    console.log('雷学委:这里调用了我们代理接口:',req.originalUrl)
    res.status(200).send({"total":2,"bucket":["鸿星尔克“,"汇源果汁“]}); // 这里随便整点啥都行
}) 

leiXueWeiApp.listen(10010);

效果如下:

正常获取数据的接口

这个接口代理了源数据网站,把原始服务的数据原样返回: http://theRealSite:10010/

在这里插入图片描述

下面两个接口就是通过我们进行mock的接口。

展示/products 接口

在这里插入图片描述

展示/orders 接口

在这里插入图片描述

通过代理接口,把业务需要的数据生成,继续本项目开发,完全没有问题。

好了,小白,你回去看看有哪些接口,照着mock就行了。

学委之前写过一篇mock接口的各种模拟代理的方式,学会了可以去看这个 依赖服务故障怎么办?几百万的项目明天要路演Demo了

对了,学委还有这个可以关注长期阅读 =>雷学委趣味编程故事汇编
或者=> 雷学委NodeJS系列

持续学习持续开发,我是雷学委!
编程很有趣,关键是把技术搞透彻讲明白。
创作不易,请多多支持,点赞收藏支持学委吧!

更多代码可以查看/Star: LearnNodeJS代码下载

评论 49
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雷学委

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值