本发明涉及计算机,特别是涉及请求第三方资源的方法及装置。
背景技术:
1、目前,服务提供方经常需要依赖第三方资源以提升自身的服务质量,例如,极速版应用和常见后端服务器就需要依赖多种第三方资源,比如:数据库、缓存、第三方接口和第三方服务的sdk(software development kit,软件开发工具包)等,并且在请求第三方资源的过程中,还需要根据实际需求确定多个维度的请求参数。
2、现有的第三方资源请求方法需要将每一个调用第三方资源的请求,甚至是每一个操作都抽象为一个command(命令)进行处理,所以请求参数均通过重复代码写入这个command类进行实现。上层代码通过调用这个command类的command类对象,command类对象再通过对应sdk请求到对应资源。
3、这种方案的定制性很强,但是重复工作非常多,会增减开发量的同时,也会提高产生bug(错误)的可能性。
技术实现思路
1、本发明实施例的目的在于提供请求第三方资源的方法及装置,以实现对于第三方资源的差异化请求,提高开发效率,并减少产生bug的可能性。具体技术方案如下:
2、在本发明实施的第一方面,首先提供了一种请求第三方资源的方法,应用于第三方资源调用平台,所述第三方资源调用平台通过多个预先定义的适配类与多个第三方sdk分别对接,所述方法包括:
3、接收针对目标第三方资源的资源调用请求;所述资源调用请求中携带有请求参数注解;所述目标第三方资源与目标sdk对应;
4、基于所述请求参数注解,创建预先定义的proxy类的目标proxy类对象;所述proxy类用于调用所述适配类,所述目标proxy类对象为所述proxy类用于调用目标适配类的实例,所述目标适配类与所述目标sdk对应;
5、基于所述目标proxy类对象,通过所述目标适配类调用所述目标sdk,以获取所述目标第三方资源。
6、可选的,所述基于所述请求参数注解,创建预先定义的代理proxy类的目标proxy类对象的步骤,包括:
7、扫描所述资源调用请求,确定配置有所述请求参数注解的目标变量,提取所述请求参数注解内的请求参数;
8、创建所述proxy类的目标proxy类对象,将所述请求参数配置到所述目标proxy类对象的成员变量,并将所述目标proxy类对象赋值到所述目标变量。
9、可选的,所述基于所述目标proxy类对象,通过所述目标适配类调用所述目标sdk,以获取所述目标第三方资源的步骤,包括:
10、基于所述目标proxy类对象,初始化所述目标适配类的目标类对象;
11、基于所述目标类对象调用所述目标sdk,以获取所述目标第三方资源。
12、可选的,该方法还包括:
13、响应于配置中心内的请求参数变更,更新所述目标proxy类对象内配置的请求参数。
14、可选的,所述接收针对目标第三方资源的资源调用请求之后,还包括:
15、确定与所述资源调用请求对应的目标插件;所述目标插件用于扩充所述proxy类支持的配置维度;
16、所述基于所述请求参数注解,创建预先定义的proxy类的目标proxy类对象的步骤,包括:
17、调用所述目标插件,基于所述目标插件和所述请求参数注解创建所述proxy类的目标proxy类对象。
18、在本发明实施的第二方面,还提供了一种请求第三方资源的装置,应用于第三方资源调用平台,所述第三方资源调用平台通过多个预先定义的适配类与多个第三方sdk分别对接,包括:
19、接收模块,用于接收针对目标第三方资源的资源调用请求;所述资源调用请求中携带有请求参数注解;所述目标第三方资源与目标sdk对应;
20、创建模块,用于基于所述请求参数注解,创建预先定义的proxy类的目标proxy类对象;所述proxy类用于调用所述适配类,所述目标proxy类对象为所述proxy类用于调用目标适配类的实例,所述目标适配类与所述目标sdk对应;
21、调用模块,用于基于所述目标proxy类对象,通过所述目标适配类调用所述目标sdk,以获取所述目标第三方资源。
22、可选的,所述创建模块,具体用于:
23、扫描所述资源调用请求,确定配置有所述请求参数注解的目标变量,提取所述请求参数注解内的请求参数;
24、创建所述proxy类的目标proxy类对象,将所述请求参数配置到所述目标proxy类对象的成员变量,并将所述目标proxy类对象赋值到所述目标变量。
25、可选的,所述调用模块,具体用于:
26、基于所述目标proxy类对象,初始化所述目标适配类的目标类对象;
27、基于所述目标类对象调用所述目标sdk,以获取所述目标第三方资源。
28、在本发明实施的第三方面,还提供了一种一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
29、存储器,用于存放计算机程序;
30、处理器,用于执行存储器上所存放的程序时,实现上述任一项请求第三方资源的方法。
31、在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的请求第三方资源的方法。
32、在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的请求第三方资源的方法。
33、本发明实施例提供的请求第三方资源的方法,基于资源调用请求中携带的请求参数注解,创建proxy类的与该资源调用请求对应的proxy类对象,通过该proxy类对象调用与目标sdk对应的目标适配类,基于目标适配类实现对于目标第三方资源的请求。
34、可见,本发明实施例将请求第三方资源这一功能抽象为设置proxy类中变量的注解配置的方式,从而针对不同的第三方资源调用请求,开发者仅需定义注解中填充的配置,即注解中的请求参数,即可应用本发明实施例提供的请求第三方资源的方法,基于请求参数注解和proxy类动态生成与该资源调用请求相匹配的proxy类对象,基于proxy类对象请求第三方资源,实现对于第三方资源的差异化请求。相较于目前针对每个资源调用请求开发command类的第三方资源请求方法,本发明实施例中的一个类的代码被抽象后仅需要一行变量定义和一行注解即可实现,且无需针对每一资源调用请求定义功能相似的类,能够避免重复的开发工作,提高开发效率,也减少了产生bug的可能性。
1.一种请求第三方资源的方法,其特征在于,应用于第三方资源调用平台,所述第三方资源调用平台通过多个预先定义的适配类与多个第三方sdk分别对接,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述基于所述请求参数注解,创建预先定义的代理proxy类的目标proxy类对象的步骤,包括:
3.根据权利要求1所述的方法,其特征在于,所述基于所述目标proxy类对象,通过所述目标适配类调用所述目标sdk,以获取所述目标第三方资源的步骤,包括:
4.根据权利要求1所述的方法,其特征在于,还包括:
5.根据权利要求1所述的方法,其特征在于,所述接收针对目标第三方资源的资源调用请求之后,还包括:
6.一种请求第三方资源的装置,其特征在于,应用于第三方资源调用平台,所述第三方资源调用平台通过多个预先定义的适配类与多个第三方sdk分别对接,包括:
7.根据权利要求6所述的装置,其特征在于,所述创建模块,具体用于:
8.根据权利要求6所述的装置,其特征在于,所述调用模块,具体用于:
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。