HTTP请求多业务数据的处理

系统间采用HTTP请求完成数据交互,可以使用不同的URL定义不同的业务对接,但是一旦业务功能交互较多,需要定义的URL就会非常多,URL与相应业务的对应关系不好管理,一种常用的方式是只提供唯一的URL,在协议格式中定义业务类型,根据类型确定具体的业务,并完成相应的处理规则,当然前提是所有业务接口必须保有相同的协议格式,如下:
{
“dataType”:“personInfo”,
“p”:[
{
“code”:“p101001”,
“name”:“test”
}
]
}

其中dataType属性定义此协议是人员数据,p属性定义接口参数
1、定义接收Controller类
在这里插入图片描述
在ReceiveController 类中根据请求数据类型dataType获取具体的处理类,其中DataUtils类作为工具类,实现如下:
在这里插入图片描述
在DataTypeUtil类中定义serviceMap对象,用于保存请求类型和处理类型的键值对。
2、定义实现,如下:
在这里插入图片描述
在这里插入图片描述
PersonDealServiceImpl类和MoneyDealServiceImpl类都实现IDealService接口,IDealService接口描述如下:
在这里插入图片描述
IDealService接口定义display方法和getDataType方法,其中display方法用于描述具体的业务处理逻辑,getDataType方法用于定义请求类型。
在两个实现方法中,分别定义getDataType的返回值为moneyInfo何personInfo,并且在构造方法之后完成请求类型和处理对象的注册:
在这里插入图片描述
一旦实现类完成初始化,serviceMap中就保存了请求类型和实现对象的键值对。
结束语:此种请求模式比较常见,处理难度是对于不同业务类型数据的统一处理模式,较为笨拙的做法是使用if-else的处理逻辑。而处理此种模式的经典方法是统一接口,将请求类型和接口实现进行绑定,在数据接收入口,根据请求类型获取具体的接口实现,不同业务数据的处理逻辑交由不同的实现类完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值