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

简介: 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/

image.png

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

展示/products 接口

image.png

展示/orders 接口

image.png

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

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

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

目录
相关文章
|
数据中心 Anolis
性能优化特性之:LSE指令集编译优化
本文介绍了倚天实例上的编译优化特性:LSE,并从优化原理、使用方法进行了详细阐述。
|
8月前
|
人工智能
如何筛选高流量的AI模型?
我会定期查看huggingface.co/spaces和replicate.com排行榜,关注优质博主以了解最新实用模型。例如,根据排行榜趋势,我用两天时间创建了[grokghibli](https://grokghibli.pro/)。不过,自定义驱动视频失败率较高,模型还需优化。如有产品改进建议,请随时告诉我!期待与大家交流探讨。
|
机器学习/深度学习 人工智能 自然语言处理
LTX Video:Lightricks推出的开源AI视频生成模型
LTX Video是由Lightricks推出的开源AI视频生成模型,能够在4秒内生成5秒的高质量视频。该模型基于2亿参数的DiT架构,确保帧间平滑运动和结构一致性,支持长视频制作,适用于多种场景,如游戏图形升级和电子商务广告变体制作。
1008 1
LTX Video:Lightricks推出的开源AI视频生成模型
|
算法 数据可视化 数据库
python粗糙集简约算法+可视化界面
python粗糙集简约算法+可视化界面
460 0
|
安全 Linux 开发者
Windows系统历史版本简介
Windows系统历史版本简介
722 0
|
存储 编译器 C语言
C语言浮点型详解
C语言浮点型详解
579 0
|
供应链 安全 IDE
重磅发布|OpenSCA SaaS全新上线
OpenSCA SaaS全新上线!
276 0
|
机器学习/深度学习 人工智能 算法
机器学习与人工智能在物联网中的应用
【6月更文挑战第5天】在这个物联网时代,智能设备间的交互变得日益频繁。机器学习与人工智能赋予了这些设备学习和协作的能力,使它们能更好地理解和适应用户需求。例如,智能空调利用机器学习了解用户习惯,预调至适宜的温度;而人工智能在安防系统中通过视频分析识别异常行为,保障安全。此外,它们还应用于智能农业、交通、医疗等领域,如预测农作物生长、优化交通路线、提升医疗服务。一个简单的Python代码示例展示了如何用机器学习预测室内温度变化,揭示了其在物联网中的潜力。
328 1
|
Java Android开发 Spring
在 Eclipse 中安装 SpringTools 插件
在 Eclipse 中安装 SpringTools 插件
534 0
|
Java 调度
多线程学习之多线程的三种实现方式及应用
多线程学习之多线程的三种实现方式及应用