接口调用的方法和装置制造方法及图纸

技术编号:23890129 阅读:33 留言:0更新日期:2020-04-22 06:07
本发明专利技术公开了接口调用的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取本地系统的请求任务,并在服务注册模块中获取请求任务对应的目标服务方法的唯一标识;根据目标服务方法的唯一标识,判断本地系统是否提供目标服务方法;若是,则执行本地接口调用,若否,则发起远程接口调用。该实施方式依靠API通用组件的服务注册模块查询请求的目标服务方法的唯一标识,然后根据查询结果判定本地系统是否提供目标服务方法,借助API通用组件实现具体服务方法的接口调用,从而可以解决系统依赖外部的APIJAR包的问题,降低本地系统与外部系统API的耦合性,减小外部系统接口更改对本地系统的影响。

Methods and devices for interface calls

【技术实现步骤摘要】
接口调用的方法和装置
本专利技术涉及计算机
,尤其涉及一种接口调用的方法和装置。
技术介绍
在开发应用程序的工程越来越大,参与的人员也越来越多时,将工程根据功能、业务拆分成一个个系统,因此开发一个应用程序需要由多个系统协同工作,而系统间的协作又离不开接口调用。目前接口调用有HTTP调用(即,基于超文本传输协议HTTP协议的应用程序界面调用)和RPC调用(即,RemoteProcedureCall远程过程调用,它通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术)两种调用方式,但是基于效率考虑,应用程序中通常采用RPC调用。现有技术RPC调用的调用方依赖接口定义的APIJAR包,最常用的依赖方式为直接引入外部的APIJAR包。其中,API的全称是ApplicationProgrammingInterface,应用程序编程接口,是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。JAR包是计算机语言Java的归档文件,它允许将许多文件组合成一个压缩文件,JAR包不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和虚拟机这样的工具直接使用。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:一、现有技术RPC调用的方法中,如果依赖的接口众多,会引入较多的外部JAR包,增加应用程序包的大小,并且由于引入外部JAR包容易造成代码冲突;二、如果外部APIJAR包的接口定义发生变化需要升级,系统需要重新引入外部JAR包并上线。
技术实现思路
有鉴于此,本专利技术实施例提供一种接口调用的方法和装置,能够解决系统依赖外部的APIJAR包的问题,降低本地系统与外部系统API的耦合性,减小外部系统接口更改对本地系统的影响。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种接口调用的方法。本专利技术实施例的一种接口调用的方法,包括:获取本地系统的请求任务,并在服务注册模块中获取所述请求任务对应的目标服务方法的唯一标识;根据所述目标服务方法的唯一标识,判断所述本地系统是否提供所述目标服务方法;若是,则执行本地接口调用,若否,则发起远程接口调用。可选地,在获取本地系统的请求任务,并在服务注册模块中获取所述请求任务对应的目标服务方法的唯一标识之前,所述方法还包括:获取应用程序提供的服务方法;获取应用程序提供的所有服务方法;针对每个服务方法,确定提供所述服务方法的模块、所述模块对应的服务实现类、以及所述服务方法对应的请求行为;根据所述服务实现类动态发布所述服务方法的远程接口的提供方;将所述模块的唯一标识与所述服务实现类的对应关系存储至所述服务注册模块中;将所述模块的唯一标识和所述请求行为与所述服务方法的对应关系存储至所述服务注册模块中。可选地,获取本地系统的请求任务,并在服务注册模块中获取所述请求任务对应的目标服务方法的唯一标识,包括:根据所述请求任务,确定所述请求任务的目标模块的唯一标识和目标请求行为,在所述服务注册模块中查询所述目标模块的唯一标识和所述目标请求行为对应的目标服务方法,并获取所述目标服务方法的唯一标识。可选地,根据所述目标服务方法的唯一标识,判断所述本地系统是否提供所述目标服务方法,包括:根据所述目标服务方法的唯一标识,确定提供所述目标服务方法的系统,并判断所述系统是否是所述本地系统,若是,则认为所述本地系统提供所述目标服务方法,否则,认为所述本地系统不提供所述目标服务方法。可选地,执行本地接口调用包括:在所述服务注册模块中,查询所述请求任务的目标模块的唯一标识对应的目标服务实现类;根据所述目标服务方法的唯一标识,将所述请求任务的参数信息转换成所述目标服务方法的参数格式;基于反射技术,根据所述目标服务实现类和所述目标服务方法的参数格式,调用所述目标服务方法,并接收返回的调用结果。可选地,发起远程接口调用包括:在所述服务注册模块中,查询所述请求任务的目标模块的唯一标识对应的目标服务实现类,并根据所述目标服务实现类查找所述目标服务方法的远程接口的提供方;根据所述请求任务的目标模块的唯一标识,动态生成远程接口的调用方,向所述提供方发起远程接口调用,并接收返回的调用结果。为实现上述目的,根据本专利技术实施例的另一方面,提供了一种接口调用的装置。本专利技术实施例的一种接口调用的装置,包括:获取单元,用于获取本地系统的请求任务,并在服务注册模块中获取所述请求任务对应的目标服务方法的唯一标识;判断单元,用于根据所述目标服务方法的唯一标识,判断所述本地系统是否提供所述目标服务方法;调用单元,用于若是,则执行本地接口调用,若否,则发起远程接口调用。可选地,所述装置还包括存储单元,用于:获取应用程序提供的服务方法;针对每个服务方法,确定提供所述服务方法的模块、所述模块对应的服务实现类、以及所述服务方法对应的请求行为;根据所述服务实现类动态发布所述服务方法的远程接口的提供方;将所述模块的唯一标识与所述服务实现类的对应关系存储至所述服务注册模块中;将所述模块的唯一标识和所述请求行为与所述服务方法的对应关系存储至所述服务注册模块中。可选地,所述获取单元还用于:根据所述请求任务,确定所述请求任务的目标模块的唯一标识和目标请求行为,在所述服务注册模块中查询所述目标模块的唯一标识和所述目标请求行为对应的目标服务方法,并获取所述目标服务方法的唯一标识。可选地,所述判断单元还用于:根据所述目标服务方法的唯一标识,确定提供所述目标服务方法的系统,并判断所述系统是否是所述本地系统,若是,则认为所述本地系统提供所述目标服务方法,否则,认为所述本地系统不提供所述目标服务方法。可选地,所述调用单元还用于:在所述服务注册模块中,查询所述请求任务的目标模块的唯一标识对应的目标服务实现类;根据所述目标服务方法的唯一标识,将所述请求任务的参数信息转换成所述目标服务方法的参数格式;基于反射技术,根据所述目标服务实现类和所述目标服务方法的参数格式,调用所述目标服务方法,并接收返回的调用结果。可选地,所述调用单元还用于:在所述服务注册模块中,查询所述请求任务的目标模块的唯一标识对应的目标服务实现类,并根据所述目标服务实现类查找所述目标服务方法的远程接口的提供方;根据所述请求任务的目标模块的唯一标识,动态生成远程接口的调用方,向所述提供方发起远程接口调用,并接收返回的调用结果。为实现上述目的,根据本专利技术实施例的再一方面,提供了一种电子设备。本专利技术实施例的一种电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现本专利技术实施例的接口调用的方法。为实现上述目的,根据本专利技术实施例的又一方面,提供了一种计算机可读介质。本专利技术实施例的一种计算机可读介质,其上存储有计算机程序,程序被处理器执行时实现本专利技术实施例的接口调用的方法。上述专利技术中的一个实施例具有如下优点或有益效果:自定义通用本文档来自技高网
...

【技术保护点】
1.一种接口调用的方法,其特征在于,包括:/n获取本地系统的请求任务,并在服务注册模块中获取所述请求任务对应的目标服务方法的唯一标识;/n根据所述目标服务方法的唯一标识,判断所述本地系统是否提供所述目标服务方法;/n若是,则执行本地接口调用,若否,则发起远程接口调用。/n

【技术特征摘要】
1.一种接口调用的方法,其特征在于,包括:
获取本地系统的请求任务,并在服务注册模块中获取所述请求任务对应的目标服务方法的唯一标识;
根据所述目标服务方法的唯一标识,判断所述本地系统是否提供所述目标服务方法;
若是,则执行本地接口调用,若否,则发起远程接口调用。


2.根据权利要求1所述的方法,其特征在于,在获取本地系统的请求任务,并在服务注册模块中获取所述请求任务对应的目标服务方法的唯一标识之前,所述方法还包括:
获取应用程序提供的服务方法;
针对每个服务方法,确定提供所述服务方法的模块、所述模块对应的服务实现类、以及所述服务方法对应的请求行为;
根据所述服务实现类动态发布所述服务方法的远程接口的提供方;
将所述模块的唯一标识与所述服务实现类的对应关系存储至所述服务注册模块中;
将所述模块的唯一标识和所述请求行为与所述服务方法的对应关系存储至所述服务注册模块中。


3.根据权利要求2所述的方法,其特征在于,获取本地系统的请求任务,并在服务注册模块中获取所述请求任务对应的目标服务方法的唯一标识,包括:
根据所述请求任务,确定所述请求任务的目标模块的唯一标识和目标请求行为,在所述服务注册模块中查询所述目标模块的唯一标识和所述目标请求行为对应的目标服务方法,并获取所述目标服务方法的唯一标识。


4.根据权利要求1所述的方法,其特征在于,根据所述目标服务方法的唯一标识,判断所述本地系统是否提供所述目标服务方法,包括:
根据所述目标服务方法的唯一标识,确定提供所述目标服务方法的系统,并判断所述系统是否是所述本地系统,若是,则认为所述本地系统提供所述目标服务方法,否则,认为所述本地系统不提供所述目标服务方法。


5.根据权利要求2所述的方法,其特征在于,执行本地接口调用包括:
在所述服务注册模块中,查询所述请求任务的目标模块的唯一标识对应的目标服务实现类;
根据所述目标服务方法的唯一标识,将所述请求任务的参数信息转换成所述目标服务方法的参数格式;
基于反射技术,根据所述目标服务实现类和所述目标服务方法的参数格式,调用所述目标服务方法,并接收返回的调用结果。


6.根据权利要求2所述的方法,其特征在于,发起远程接口调用包括:
在所述服务注册模块中,查询所述请求任务的目标模块的唯一标识对应的目标服务实现类,并根据所述目标服务实现类查找所述目标服务方法的远程接口的提供方;
根据所述请求任务的目标模块的唯一标识,动态生成远程接口的调用方,向所述提供方发起远程接口调用,并接收返回的调用结果。


7.一种接口调用的装置,其特征在于,包括:
获取单元,用于获取本地系统的请求任务,并在服务注...

【专利技术属性】
技术研发人员:刘小云
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1