一种移动端路由与服务调用方法、装置、电子设备及介质与流程
本技术属于移动终端应用开发,涉及一种移动端路由与服务调用方法、装置、电子设备及介质。
背景技术:
1、随着移动应用业务规模持续扩大,客户端开发逐渐采用组件化、模块化的架构模式,将不同业务功能划分为相对独立的业务单元。客户端路由作为跨业务单元页面跳转、资源访问及通信调度的重要基础能力,通常承担页面跳转、页面栈管理、路由拦截、服务注册及调用分发等处理。当前移动端路由技术主要依托操作系统原生路由能力或在原生能力基础上进行统一封装,并分别适配android、ios、鸿蒙等不同客户端运行环境,以满足多业务单元协同开发和页面访问需求。
2、现有移动端路由技术仍存在业务单元之间直接依赖、循环依赖及代码耦合度较高的问题,不同客户端操作系统之间的路由方式和实现机制缺乏统一性;同时,现有路由处理在业务级url统一分发、路由匹配规则配置、动态路由配置下发及跨端通用处理方面仍不完善,难以满足大型移动应用组件化架构下的统一路由管理和跨业务服务调用需求。
技术实现思路
1、本技术提供一种移动端路由与服务调用方法、装置、电子设备及介质,用于解决现有技术中移动端应用中外部拉起路由、内部调用路由及跨服务调用分别采用不同处理方式,容易造成路由协议处理分散、拦截与分发逻辑不同以及业务服务之间直接依赖的问题。
2、第一方面,本技术提供一种移动端路由与服务调用方法包括:
3、在客户端启动过程中,加载路由处理组件,建立路由处理环境,并基于服务发现机制将业务服务实现类与对应的公共服务接口关联注册至全局服务注册表,建立服务调用环境,得到客户端运行环境;
4、响应于在所述客户端运行环境下接收到路由请求数据,对所述路由请求数据执行请求来源识别,得到外部拉起路由数据或内部调用路由数据;
5、对所述外部拉起路由数据执行路由参数解析,将解析得到的应用标识和业务参数发送至服务端,并接收所述服务端反馈的内部应用数据,根据所述内部应用数据获取并解析目标路由协议数据;
6、或者,从所述内部调用路由数据中提取所述内部应用数据,根据所述内部应用数据获取并解析所述目标路由协议数据;
7、按照预设拦截顺序对所述目标路由协议数据执行拦截条件解析和拦截结果判定,得到待分发路由数据;
8、根据所述待分发路由数据中的路由类型和协议参数执行路由处理器匹配及路由参数解析,生成目标路由处理数据,并根据所述目标路由处理数据调用终端系统接口,得到路由执行结果;
9、响应于在所述客户端运行环境下接收到服务调用请求数据,根据所述服务调用请求数据以及所述全局服务注册表记录的关联关系确定目标服务实现类,将所述服务调用请求数据传递至所述目标服务实现类,并接收所述目标服务实现类返回的服务调用结果。
10、在第一方面的一种实现方式中,所述得到客户端运行环境,包括:
11、加载预设路由处理器和通用拦截器,建立路由处理环境;
12、基于服务发现机制扫描业务服务实现类,提取各业务服务实现类对应的公共服务接口信息;
13、将所述公共服务接口信息与对应的所述实现类位置信息关联写入全局服务注册表,建立服务调用环境;
14、基于所述路由处理环境和所述服务调用环境,得到客户端运行环境。
15、在第一方面的一种实现方式中,所述响应于在所述客户端运行环境下接收到路由请求数据,对所述路由请求数据执行请求来源识别,得到外部拉起路由数据或内部调用路由数据,包括:
16、从所述路由请求数据中提取请求来源信息和协议标识;
17、将所述协议标识与预设外部路由标识进行匹配;
18、响应于所述协议标识与任一所述预设外部路由标识匹配,确定所述路由请求数据为外部拉起路由数据;
19、响应于所述协议标识与各所述预设外部路由标识均不匹配,且所述请求来源信息表征所述路由请求数据由客户端内部发起,确定所述路由请求数据为内部调用路由数据。
20、在第一方面的一种实现方式中,所述对所述外部拉起路由数据执行路由参数解析,将解析得到的应用标识和业务参数发送至服务端,并接收所述服务端反馈的内部应用数据,或者,从所述内部调用路由数据中提取所述内部应用数据,根据所述内部应用数据获取并解析目标路由协议数据,包括:
21、对所述外部拉起路由数据执行分段解析,得到应用标识和业务参数,将所述应用标识和所述业务参数发送至服务端,并接收所述服务端反馈的内部应用标识和处理后的业务参数,得到内部应用数据;或者,从所述内部调用路由数据中提取内部应用标识和跳转参数,得到所述内部应用数据;
22、根据所述内部应用数据中的内部应用标识向内容配置平台发送路由配置请求,并接收所述内容配置平台反馈的路由协议;
23、对所述路由协议执行协议标识、路由类型、页面路径、业务参数和拦截控制参数解析,得到目标路由协议数据。
24、在第一方面的一种实现方式中,所述按照预设拦截顺序对所述目标路由协议数据执行拦截条件解析和拦截结果判定,得到待分发路由数据,包括:
25、从所述目标路由协议数据中提取拦截控制数据;
26、按照快速点击、功能状态、登录状态、灰度规则、白名单规则和业务权限的顺序,依次将对应的所述拦截控制数据与客户端状态数据或服务端反馈数据进行比较,得到各级拦截结果;
27、响应于各级所述拦截结果均表征通过拦截,将所述目标路由协议数据确定为待分发路由数据。
28、在第一方面的一种实现方式中,所述根据所述待分发路由数据中的路由类型和协议参数执行路由处理器匹配及路由参数解析,生成目标路由处理数据,并根据所述目标路由处理数据调用终端系统接口,得到路由执行结果,包括:
29、从所述待分发路由数据中提取路由类型、协议标识、页面路径和跳转参数;
30、按照预设处理器优先级,将所述路由类型、所述协议标识和所述页面路径与各路由处理器对应的匹配规则进行匹配,确定目标路由处理器;
31、采用所述目标路由处理器解析所述跳转参数,生成包含目标路由对象和路由执行参数的目标路由处理数据;
32、根据所述目标路由对象确定对应的终端系统接口,将所述路由执行参数传递至所述终端系统接口,并接收所述终端系统接口反馈的路由执行结果。
33、在第一方面的一种实现方式中,所述响应于在所述客户端运行环境下接收到服务调用请求数据,根据所述服务调用请求数据以及所述全局服务注册表记录的关联关系确定目标服务实现类,将所述服务调用请求数据传递至所述目标服务实现类,并接收所述目标服务实现类返回的服务调用结果,包括:
34、从所述服务调用请求数据中提取公共服务接口信息和业务调用数据;
35、根据所述公共服务接口信息查询所述全局服务注册表中记录的关联关系,得到与所述公共服务接口信息对应的实现类位置信息;
36、根据所述实现类位置信息确定目标服务实现类,并将所述业务调用数据传递至所述目标服务实现类;
37、接收所述目标服务实现类基于所述业务调用数据返回的服务调用结果。
38、第二方面,本技术提供一种移动端路由与服务调用装置。所述装置包括:
39、环境初始化模块,用于在客户端启动过程中,加载路由处理组件,建立路由处理环境,并基于服务发现机制将业务服务实现类与对应的公共服务接口关联注册至全局服务注册表,建立服务调用环境,得到客户端运行环境;
40、数据响应模块,用于响应于在所述客户端运行环境下接收到路由请求数据,对所述路由请求数据执行请求来源识别,得到外部拉起路由数据或内部调用路由数据;
41、数据解析模块,用于对所述外部拉起路由数据执行路由参数解析,将解析得到的应用标识和业务参数发送至服务端,并接收所述服务端反馈的内部应用数据,根据所述内部应用数据获取并解析目标路由协议数据;或者,从所述内部调用路由数据中提取所述内部应用数据,根据所述内部应用数据获取并解析所述目标路由协议数据;
42、数据拦截模块,用于按照预设拦截顺序对所述目标路由协议数据执行拦截条件解析和拦截结果判定,得到待分发路由数据;
43、结果获取模块,用于根据所述待分发路由数据中的路由类型和协议参数执行路由处理器匹配及路由参数解析,生成目标路由处理数据,并根据所述目标路由处理数据调用终端系统接口,得到路由执行结果;
44、服务调用模块,用于响应于在所述客户端运行环境下接收到服务调用请求数据,根据所述服务调用请求数据以及所述全局服务注册表记录的关联关系确定目标服务实现类,将所述服务调用请求数据传递至所述目标服务实现类,并接收所述目标服务实现类返回的服务调用结果。
45、第三方面,本技术提供一种电子设备。所述电子设备包括:存储器,用于存储计算机程序;处理器,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行如第一方面中任一项所述的移动端路由与服务调用方法。
46、第四方面,本技术提供一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现第一方面中任一项所述的移动端路由与服务调用方法。
47、如上所述,本技术所述的一种移动端路由与服务调用方法、装置、电子设备及介质,具有以下有益效果:
48、本技术在客户端启动过程中建立路由处理环境和服务调用环境,使路由请求处理与服务调用均复用同一客户端运行环境,减少请求到达后重复加载路由处理组件及重复建立服务注册关系的处理次数;
49、对于路由请求,通过请求来源识别将不同来源的请求归并为外部拉起路由或内部调用路由数据,并进一步形成内部应用数据、目标路由协议数据、待分发路由数据和目标路由数据,使每一处理阶段均具有明确的数据对象和处理依据;通过按照预设顺序执行拦截结果判定,可在路由分发前逐级筛除不满足条件的路由请求,减少无效请求进入处理器匹配及终端系统接口调用环节的次数;通过根据路由类型和协议参数匹配目标路由处理器,可将不同路由请求收敛至对应处理路径,减少处理器无序调用和重复解析;
50、对于服务调用请求,通过查询全局服务注册表中公共服务接口与业务服务实现类之间的关联关系,由一次接口关联查询确定目标服务实现类,并将业务调用数据定向传递至该实现类,减少业务调用方对具体实现类的直接依赖及多级查找过程。