接口调用方法、装置及计算机可读存储介质与流程

文档序号:16692656发布日期:2019-01-22 19:03阅读:160来源:国知局
接口调用方法、装置及计算机可读存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种接口调用方法、装置及计算机可读存储介质。



背景技术:

报表管理系统用于报表bi(businessintelligence,商业智能)数据源管理、报表管理、任务管理、日志管理等功能;报表下发系统用于报表数据的查询、下载、定时采集任务数据的下发。报表管理系统为分布式系统,当报表下发系统需要从报表管理系统调用bi源、报表等数据时,通过报表管理系统提供给外部的接口实现数据的获取。

常规的做法是:报表管理系统通过servlet提供接口给外部调用;报表下发系统通过httpclient调用报表管理系统提供的接口返回需要的数据。这种方法的缺点在于:当报表下发系统频繁调用报表管理系统的多个接口时,报表管理系统需要提供多个接口,报表下发系统需要频繁的写方法利用httpclient去调用接口,导致报表管理系统处代码冗余,且对于报表下发系统的接口调用的处理效率低下。



技术实现要素:

本发明提供一种接口调用方法、装置及计算机可读存储介质,其主要目的在于解决报表管理系统处代码冗余,且对于报表下发系统的接口调用的处理效率低下的技术问题。

为实现上述目的,本发明还提供一种接口调用方法,该方法包括:

所述报表下发系统从所述报表管理系统获取通用servlet接口的路径信息;

所述报表下发系统确定待调用的方法,创建该方法的动态代理基类,并实例化所述动态代理基类;

根据所述路径信息调用所述通用servlet接口,将实例化后的动态代理基类发送至所述通用servlet接口;

所述报表管理系统通过所述通用servlet接口获取实例化的动态代理基类,根据所述实例化的动态代理基类执行所述待调用的方法,将执行结果发送至所述报表下发系统。

可选地,所述报表下发系统确定待调用的方法,创建该方法的动态代理基类,并实例化所述动态代理基类的步骤包括:

所述报表下发系统确定待调用的方法;

创建该方法的动态代理基类,并在所述动态代理基类中为所述方法添加预先创建的自定义注解;

根据所述自定义注解将所述动态代理基类实例化。

可选地,所述根据所述自定义注解将所述动态代理基类实例化的步骤包括:

所述报表下发系统初始化httpclientbean,对所述httpclientbean中所有方法字段进行扫描,以确定添加了所述自定义注解的方法;

为添加了所述自定义注解的方法的动态代理基类设置实例参数,以将所述动态代理基类实例化,所述实例参数包括方法名、参数值和参数类型。

可选地,所述报表管理系统通过所述通用servlet接口获取实例化的动态代理基类,根据所述实例化的动态代理基类执行所述待调用的方法,将执行结果发送至所述报表下发系统的步骤包括:

所述报表管理系统通过所述通用servlet接口获取实例化的动态代理基类,获取所述待调用的方法的参数,其中,所述方法的参数包括方法名、参数值和参数类型;

根据获取的方法的参数执行对应的方法,将执行结果发送至所述报表下发系统。

可选地,所述报表下发系统从所述报表管理系统获取通用servlet接口的路径信息的步骤包括:

所述报表下发系统向所述报表管理系统发送接口信息获取请求;

所述报表管理系统根据所述接口信息获取请求,将所述接口配置文件下发至所述报表下发系统;

所述报表下发系统根据所述接口配置文件获取所述报表管理系统的通用servlet接口的路径信息。

此外,为实现上述目的,本发明还提供一种接口调用装置,该装置包括存储器和处理器,所述存储器中存储有可在所述处理器上运行的接口调用程序,所述接口调用程序被所述处理器执行时实现如下步骤:

从所述报表管理系统获取通用servlet接口的路径信息;

确定待调用的方法,创建该方法的动态代理基类,并实例化所述动态代理基类;

根据所述路径信息调用所述通用servlet接口,将实例化后的动态代理基类发送至所述通用servlet接口,以供所述报表管理系统通过所述通用servlet接口获取实例化的动态代理基类,并根据所述实例化的动态代理基类执行所述待调用的方法,将执行结果发送至所述接口调用装置;

接收所述报表管理系统发送的执行结果。

可选地,所述确定待调用的方法,创建该方法的动态代理基类,并实例化所述动态代理基类的步骤包括:

确定待调用的方法;

创建该方法的动态代理基类,并在所述动态代理基类中为所述方法添加预先创建的自定义注解;

根据所述自定义注解将所述动态代理基类实例化。

可选地,所述根据所述自定义注解将所述动态代理基类实例化的步骤包括:

初始化httpclientbean,对所述httpclientbean中所有方法字段进行扫描,以确定添加了所述自定义注解的方法;

为添加了所述自定义注解的方法的动态代理基类设置实例参数,以将所述动态代理基类实例化,所述实例参数包括方法名、参数值和参数类型。

可选地,所述从所述报表管理系统获取通用servlet接口的路径信息的步骤包括:

向所述报表管理系统发送接口信息获取请求,其中,所述报表管理系统根据所述接口信息获取请求,将所述接口配置文件下发至所述报表下发系统;

根据所述接口配置文件获取所述报表管理系统的通用servlet接口的路径信息。

此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有接口调用程序,所述接口调用程序可被一个或者多个处理器执行,以实现如上所述的接口调用方法的步骤。

本发明提出的接口调用方法、装置及计算机可读存储介质,报表下发系统从报表管理系统获取通用servlet接口的路径信息;报表下发系统确定待调用的方法,创建该方法的动态代理基类,并实例化动态代理基类;根据路径信息调用通用servlet接口,将实例化后的动态代理基类发送至通用servlet接口;报表管理系统通过通用servlet接口获取实例化的动态代理基类,根据实例化的动态代理基类执行待调用的方法,将执行结果发送至报表下发系统。本发明的方案中,报表管理系统不需要实现多个接口方法,只需要实现一个通用servlet接口即可,报表下发系统获取到该接口的路径信息,根据路径信息访问该接口,并通过动态代理的方式将要调用的具体的方法的相关参数上传到该接口,进而实现方法执行结果的获取,不需要频繁的写httpclient调用远程接口具体实现方法,不仅简化了代码,而且提高了接口调用的处理效率。

附图说明

图1为本发明一实施例提供的接口调用方法的流程示意图;

图2为本发明一实施例提供的接口调用装置的内部结构示意图;

图3为本发明一实施例提供的接口调用装置中接口调用程序的模块示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供一种接口调用方法。参照图1所示,为本发明一实施例提供的接口调用方法的流程示意图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。

在本实施例中,接口调用方法包括:

步骤s10,所述报表下发系统从所述报表管理系统获取通用servlet接口的路径信息。

本发明实施例中主要包括报表管理系统和报表下发系统,报表管理系统和报表下发系统之间建立远程通讯连接,其中,报表管理系统主要用于报表bi数据源管理、报表管理、任务管理、日志管理等功能。报表下发系统主要用于报表数据的查询、下载、定时采集任务数据的下发。报表管理系统为分布式系统,当报表下发系统需要从报表管理系统调用bi数据源、报表等数据时,通过报表管理系统提供给外部的接口实现数据的获取。

报表管理系统配置好通用servlet接口以及接口配置文件;通过接口配置文件配置相应的servlet请求对应的路径信息。该路径信息主用于表下发系统调用远程报表管理系统的接口方法时能找到报表管理系统通用的动态代理处理方法,报表下发系统根据暴露的接口的路径信息查找对应的上述通用servlet接口。其中,报表管理系统可以主动将该接口配置文件下发到报表下发系统,报表下发系统从该文件中获取路径信息。或者,在其他实施例中,报表下发系统从所述报表管理系统获取通用servlet接口的路径信息的步骤包括:所述报表下发系统向所述报表管理系统发送接口信息获取请求;所述报表管理系统根据所述接口信息获取请求,将所述接口配置文件下发至所述报表下发系统;所述报表下发系统根据所述接口配置文件获取所述报表管理系统的通用servlet接口的路径信息。具体地,报表下发系统通过httpclient访问报表管理系统的通用servlet接口的配置文件,以获取该通用servlet接口的路径信息,通过路径信息调用报表管理系统的servlet方法。

关于报表管理系统设置的通用servlet接口,此处可以理解为接口的代理,在确定方法名、参数类型以及参数值后,就可以通过反射机制在报表下发系统调用远程服务器端的具体方法,并由远程服务器端返回执行具体方法的结果数据给报表下发系统。

步骤s20,所述报表下发系统确定待调用的方法,创建该方法的动态代理基类,并实例化所述动态代理基类。

步骤s30,根据所述路径信息调用所述通用servlet接口,将实例化后的动态代理基类发送至所述通用servlet接口。

具体地,报表下发系统确定待调用的方法,创建该方法的动态代理基类,并实例化所述动态代理基类的步骤包括:所述报表下发系统确定待调用的方法;创建该方法的动态代理基类,并在所述动态代理基类中为所述方法添加预先创建的自定义注解;根据所述自定义注解将所述动态代理基类实例化。

报表下发系统预先自定义注解@httpservice。在需要向报表管理系统请求执行具体的方法时,先确定待调用的具体方法,创建该方法的动态代理基类serviceproxydto,并在动态代理基类中为所述方法添加预先创建的自定义注解@httpservice,基于spring框架创建httpclientbean,spring的后置处理器httpservicebeanproxyprocessor将其初始化,然后对httpclientbean中的所有方法字段进行扫描,判断方法是否添加了上述自定义注解@httpservice,当通过扫描找到添加了自定义注解@httpservice的方法后,实例化该方法的动态基类serviceproxydto的实例名,方法名,参数值,参数类型等具体实例参数值。将实例化后的动态代理基类serviceproxydto作为参数,通过httpclient传到报表管理系统的通用servlet接口里面去。

步骤s40,所述报表管理系统通过所述通用servlet接口获取实例化的动态代理基类,根据所述实例化的动态代理基类执行所述待调用的方法,将执行结果发送至所述报表下发系统。

报表管理系统通过servlet接口获取到报表下发系统传入的实例化后的动态代理基类serviceproxydto,通过实例化后的动态代理基类serviceproxydto获取需要调用的方法名,参数类型以及参数值;然后基于获取的上述数据,通过反射method.invoke方法调用执行报表管理系统对应的具体方法,并实现该具体方法,将执行的具体结果返回到报表下发系统。从上述方案中可以看出报表管理系统处只需要设置一个通用的servlet接口即可,在需要调用报表管理系统处的具体的方法时,基于动态代理类将该方法的参数上传到上述通用的servlet接口,以实现调用报表管理系统的具体方法。报表管理系统无需维护过多接口的代码,报表下发系统不需要频繁的写方法利用httpclient去调用接口,提高了接口调用的处理效率。

本实施例提出的接口调用方法,报表下发系统从报表管理系统获取通用servlet接口的路径信息;报表下发系统确定待调用的方法,创建该方法的动态代理基类,并实例化动态代理基类;根据路径信息调用通用servlet接口,将实例化后的动态代理基类发送至通用servlet接口;报表管理系统通过通用servlet接口获取实例化的动态代理基类,根据实例化的动态代理基类执行待调用的方法,将执行结果发送至报表下发系统。本发明的方案中,报表管理系统不需要实现多个接口方法,只需要实现一个通用servlet接口即可,报表下发系统获取到该接口的路径信息,根据路径信息访问该接口,并通过动态代理的方式将要调用的具体的方法的相关参数上传到该接口,进而实现方法执行结果的获取,不需要频繁的写httpclient调用远程接口具体实现方法,不仅简化了代码,而且提高了接口调用的处理效率。

本发明还提供一种接口调用装置。参照图2所示,为本发明一实施例提供的接口调用装置的内部结构示意图。

在本实施例中,接口调用装置1可以是pc(personalcomputer,个人电脑),也可以是智能手机、平板电脑、便携计算机等终端设备。该接口调用装置1至少包括存储器11、处理器12,网络接口13以及通信总线。

其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是接口调用装置1的内部存储单元,例如该接口调用装置1的硬盘。存储器11在另一些实施例中也可以是接口调用装置1的外部存储设备,例如接口调用装置1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,存储器11还可以既包括接口调用装置1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于接口调用装置1的应用软件及各类数据,例如接口调用程序01的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行接口调用程序01等。

网络接口13可选的可以包括标准的有线接口、无线接口(如wi-fi接口),通常用于在该装置1与其他电子设备之间建立通信连接。

通信总线用于实现这些组件之间的连接通信。

可选地,该装置1还可以包括用户接口,用户接口可以包括显示器(display)、输入单元比如键盘(keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在接口调用装置1中处理的信息以及用于显示可视化的用户界面。

图2仅示出了具有组件11-13以及接口调用程序01的接口调用装置1,本领域技术人员可以理解的是,图1示出的结构并不构成对接口调用装置1的限定,可以包括比图示更少或者更多的部件,或者组合某些部件,或者不同的部件布置。

在图2所示的装置1实施例中,存储器11中存储有接口调用程序01;处理器12执行存储器11中存储的接口调用程序01时实现如下步骤:

所述报表下发系统从所述报表管理系统获取通用servlet接口的路径信息。

所述报表下发系统确定待调用的方法,创建该方法的动态代理基类,并实例化所述动态代理基类。

根据所述路径信息调用所述通用servlet接口,将实例化后的动态代理基类发送至所述通用servlet接口。

所述报表管理系统通过所述通用servlet接口获取实例化的动态代理基类,根据所述实例化的动态代理基类执行所述待调用的方法,将执行结果发送至所述报表下发系统。

本发明实施例中主要包括报表管理系统和报表下发系统,报表管理系统和报表下发系统之间建立远程通讯连接,其中,报表管理系统主要用于报表bi数据源管理、报表管理、任务管理、日志管理等功能。报表下发系统主要用于报表数据的查询、下载、定时采集任务数据的下发。报表管理系统为分布式系统,当报表下发系统需要从报表管理系统调用bi数据源、报表等数据时,通过报表管理系统提供给外部的接口实现数据的获取。

报表管理系统配置好通用servlet接口以及接口配置文件;通过接口配置文件配置相应的servlet请求对应的路径信息。该路径信息主用于表下发系统调用远程报表管理系统的接口方法时能找到报表管理系统通用的动态代理处理方法,报表下发系统根据暴露的接口的路径信息查找对应的上述通用servlet接口。其中,报表管理系统可以主动将该接口配置文件下发到报表下发系统,报表下发系统从该文件中获取路径信息。或者,在其他实施例中,报表下发系统从所述报表管理系统获取通用servlet接口的路径信息的步骤包括:所述报表下发系统向所述报表管理系统发送接口信息获取请求;所述报表管理系统根据所述接口信息获取请求,将所述接口配置文件下发至所述报表下发系统;所述报表下发系统根据所述接口配置文件获取所述报表管理系统的通用servlet接口的路径信息。具体地,报表下发系统通过httpclient访问报表管理系统的通用servlet接口的配置文件,以获取该通用servlet接口的路径信息,通过路径信息调用报表管理系统的servlet方法。

关于报表管理系统设置的通用servlet接口,此处可以理解为接口的代理,在确定方法名、参数类型以及参数值后,就可以通过反射机制在报表下发系统调用远程服务器端的具体方法,并由远程服务器端返回执行具体方法的结果数据给报表下发系统。

具体地,报表下发系统确定待调用的方法,创建该方法的动态代理基类,并实例化所述动态代理基类的步骤包括:所述报表下发系统确定待调用的方法;创建该方法的动态代理基类,并在所述动态代理基类中为所述方法添加预先创建的自定义注解;根据所述自定义注解将所述动态代理基类实例化。

报表下发系统预先自定义注解@httpservice。在需要向报表管理系统请求执行具体的方法时,先确定待调用的具体方法,创建该方法的动态代理基类serviceproxydto,并在动态代理基类中为所述方法添加预先创建的自定义注解@httpservice,基于spring框架创建httpclientbean,spring的后置处理器httpservicebeanproxyprocessor将其初始化,然后对httpclientbean中的所有方法字段进行扫描,判断方法是否添加了上述自定义注解@httpservice,当通过扫描找到添加了自定义注解@httpservice的方法后,实例化该方法的动态基类serviceproxydto的实例名,方法名,参数值,参数类型等具体实例参数值。将实例化后的动态代理基类serviceproxydto作为参数,通过httpclient传到报表管理系统的通用servlet接口里面去。

报表管理系统通过servlet接口获取到报表下发系统传入的实例化后的动态代理基类serviceproxydto,通过实例化后的动态代理基类serviceproxydto获取需要调用的方法名,参数类型以及参数值;然后基于获取的上述数据,通过反射method.invoke方法调用执行报表管理系统对应的具体方法,并实现该具体方法,将执行的具体结果返回到报表下发系统。

从上述方案中可以看出报表管理系统处只需要设置一个通用的servlet接口即可,在需要调用报表管理系统处的具体的方法时,基于动态代理类将该方法的参数上传到上述通用的servlet接口,以实现调用报表管理系统的具体方法。报表管理系统无需维护过多接口的代码,报表下发系统不需要频繁的写方法利用httpclient去调用接口,提高了接口调用的处理效率。

本实施例提出的接口调用装置,报表下发系统从报表管理系统获取通用servlet接口的路径信息;报表下发系统确定待调用的方法,创建该方法的动态代理基类,并实例化动态代理基类;根据路径信息调用通用servlet接口,将实例化后的动态代理基类发送至通用servlet接口;报表管理系统通过通用servlet接口获取实例化的动态代理基类,根据实例化的动态代理基类执行待调用的方法,将执行结果发送至报表下发系统。本发明的方案中,报表管理系统不需要实现多个接口方法,只需要实现一个通用servlet接口即可,报表下发系统获取到该接口的路径信息,根据路径信息访问该接口,并通过动态代理的方式将要调用的具体的方法的相关参数上传到该接口,进而实现方法执行结果的获取,不需要频繁的写httpclient调用远程接口具体实现方法,不仅简化了代码,而且提高了接口调用的处理效率。

可选地,在其他的实施例中,接口调用程序还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由一个或多个处理器(本实施例为处理器12)所执行以完成本发明,本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段,用于描述接口调用程序在接口调用装置中的执行过程。

例如,参照图3所示,为本发明接口调用装置一实施例中的接口调用程序的程序模块示意图,该实施例中,接口调用程序可以被分割为信息获取模块10、动态代理模块20、请求发送模块30和数据接收模块40,示例性地:

信息获取模块10用于:从所述报表管理系统获取通用servlet接口的路径信息;

动态代理模块20用于:确定待调用的方法,创建该方法的动态代理基类,并实例化所述动态代理基类;

请求发送模块30用于:根据所述路径信息调用所述通用servlet接口,将实例化后的动态代理基类发送至所述通用servlet接口,以供所述报表管理系统通过所述通用servlet接口获取实例化的动态代理基类,并根据所述实例化的动态代理基类执行所述待调用的方法,将执行结果发送至所述接口调用装置;

数据接收模块40用于:接收所述报表管理系统发送的执行结果。

上述信息获取模块10、动态代理模块20、请求发送模块30和数据接收模块40等程序模块被执行时所实现的功能或操作步骤与上述实施例大体相同,在此不再赘述。

此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有接口调用程序,所述接口调用程序可被一个或多个处理器执行,以实现如下操作:

所述报表下发系统从所述报表管理系统获取通用servlet接口的路径信息;

所述报表下发系统确定待调用的方法,创建该方法的动态代理基类,并实例化所述动态代理基类;

根据所述路径信息调用所述通用servlet接口,将实例化后的动态代理基类发送至所述通用servlet接口;

所述报表管理系统通过所述通用servlet接口获取实例化的动态代理基类,根据所述实例化的动态代理基类执行所述待调用的方法,将执行结果发送至所述报表下发系统。

本发明计算机可读存储介质具体实施方式与上述接口调用装置和方法各实施例基本相同,在此不作累述。

需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1