对方服务下线我推荐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了

目录
相关文章
|
22天前
|
存储 Kubernetes API
K8S上生产环境后,90%都会遇到这个故障
K8S上生产环境后,90%都会遇到这个故障
28 0
|
28天前
|
Java 测试技术 开发者
ChaosBlade常见问题之故障编排如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
26 1
|
1月前
|
分布式计算 DataWorks 监控
Dataphin常见问题之生产环境任务无法下线如何解决
Dataphin是阿里云提供的一站式数据处理服务,旨在帮助企业构建一体化的智能数据处理平台。Dataphin整合了数据建模、数据处理、数据开发、数据服务等多个功能,支持企业更高效地进行数据治理和分析。
|
28天前
|
Kubernetes 监控 测试技术
ChaosBlade常见问题之演练故障添加如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
26 0
|
4月前
|
运维 DataWorks 调度
DataWorks运维中心提供了下线节点、优雅下线和下线任务三种下线方式
DataWorks运维中心提供了下线节点、优雅下线和下线任务三种下线方式
79 2
|
5月前
|
JSON Kubernetes 应用服务中间件
二进制 k8s 集群下线 master 组件流程分析和实践
二进制 k8s 集群下线 master 组件流程分析和实践
75 0
|
5月前
|
Kubernetes 调度 容器
二进制 k8s 集群下线 worker 组件流程分析和实践
二进制 k8s 集群下线 worker 组件流程分析和实践
63 0
|
6月前
|
canal 缓存 Dubbo
zookeeper恢复了,线上微服务却全部掉线了,怎么回事?
zookeeper恢复了,线上微服务却全部掉线了,怎么回事?
65 0
|
Dubbo Java 应用服务中间件
发布稳定性-优雅下线
最近负责的项目已经到达10万 QPS的大关了,这么高的QPS,对系统的稳定性要求也更高了。之前QPS小的时候,系统更新部署很简单,现在不行了,一部署起来,上游应用方就找过来了,说你这应用咋回事,怎么突然抖动厉害了。。。
215 0
发布稳定性-优雅下线
|
负载均衡 算法 Java
实现服务下线动态感知|学习笔记
快速学习实现服务下线动态感知
128 0