一种应用接口管理方法和装置与流程

文档序号:12119840阅读:307来源:国知局
一种应用接口管理方法和装置与流程

本申请涉及计算机领域,尤其涉及一种应用接口管理方法和装置。



背景技术:

现有的信息系统除了完成自身服务的需求,一般还需要设定对外开放的接口,以实现通过API(应用程序编程接口,Application Programming Interface)的方式对外提供服务,对外提供服务过程中伴随着相应指标数据的返回;其中,指标一般是指接口调用所返回的数据类别。为了数据的安全,一般需要对调用方的身份进行检验,同时需要根据调用方的身份对返回的指标粒度进行控制。

现有技术在进行调用方鉴权和指标过滤时,一般通过在接口的具体实现代码上增加相应的逻辑,进行硬编码。这种做法在项目前期可以达到较好的维护,但到了后期,由于所开的接口过多,当修改现有代码逻辑的时候,无法保证现有服务的稳定。同时,对于之前没有进行接口管理的代码,如果需要增加该功能,则涉及到大规模代码的修改。



技术实现要素:

本申请的一个目的是提供一种应用接口管理方法和装置,以解决在不大规模更改现有代码或不对代码主体逻辑进行改动时,实现应用接口调用管理的问题。

根据本申请的一个方面,提供了一种应用接口管理方法,其中,所述方法包括:

拦截对应用接口的调用请求;

获取所述应用接口的注解信息;

根据所述注解信息和所述调用请求对所述应用接口的调用进行管理。

根据本申请的另一个方面,提供了一种应用接口管理装置,其中,所述装置包括:

拦截模块,用于拦截对应用接口的调用请求;

获取模块,用于获取所述应用接口的注解信息;

调用管理模块,用于根据所述注解信息和所述调用请求对所述应用接口的调用进行管理。

与现有技术相比,本申请提供的应用接口管理方法和装置,由于注解信息的增加不会对应用接口的已有代码的执行逻辑造成影响,不需要大规模更改现有代码或者对代码主体逻辑进行改动,只需要在现有应用接口上增加注解信息,并相应的引入额外的处理逻辑,就可以对开放出的每个接口进行不同粒度的接口管理,从而减少代码维护带来的价值开销。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:

图1示出根据本申请一个方面的应用接口管理方法的流程示意图;

图2示出根据本申请又一个方面的应用接口管理方法的流程示意图;

图3示出根据本申请一个方面的应用接口管理装置的结构示意图;

图4示出根据本申请又一个方面的应用接口管理装置的结构示意图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本申请作进一步详细描述。

图1示出根据本申请一个方面的应用接口管理方法的流程示意图。如图1所示,该应用接口管理方法包括:

步骤S101,拦截对应用接口的调用请求;

步骤S102,获取所述应用接口的注解信息;

步骤S103,根据所述注解信息和所述调用请求对所述应用接口的调用进行管理。

其中,应用接口指API接口。API接口预先添加有注解信息,例如Java语言提供的Annotation注解信息,注解信息内包含有对API接口调用的管 理信息,例如调用鉴权、指标过滤的管理信息。当接收到对API接口的调用请求时,拦截调用请求并获取该API接口的注解信息,然后根据注解信息内的调用鉴权信息进行调用鉴权管理,对API接口的调用方,即服务使用方,进行身份控制;或者根据注解信息内的指标过滤信息,对API接口返回的指标粒度进行控制管理。可以通过AOP(Aspect Oriented Programming,面向切面编程)技术,对注解信息进行处理,以控制API接口的调用。注解信息的增加不会对应用接口的已有代码的执行逻辑造成影响,因此,对应用接口调用进行管理时,不需要大规模更改现有代码或者对代码主体逻辑进行改动,仅需要通过独立增设的应用接口管理代码,根据注解信息进行处理即可实现对每个应用接口的调用管理,从而减少代码维护带来的价值开销,例如避免因主体逻辑的修改而带来的服务失效。

可选地,所述注解信息包含调用鉴权信息;

根据所述注解信息和所述调用请求对所述应用接口的调用进行管理还包括:

根据所述调用鉴权信息对所述调用请求进行调用鉴权;

在所述调用鉴权通过后,执行对所述应用接口的调用;

在所述调用鉴权没有通过时,返回错误提示信息。

在此,调用鉴权分为两种结果,调用鉴权通过,此时执行对API接口的调用;调用鉴权没有通过,例如调用者的身份不符合API接口的调用权限,此时根据返回值类型,包装错误提示信息后直接返回。

可选地,根据所述注解信息和所述调用请求对所述应用接口的调用进行管理还包括:

在进行调用鉴权之前,判断是否需要进行调用鉴权;

当不需要进行调用鉴权时,直接执行对所述应用接口的调用。

在此,如果预先设定不需要对该API接口的调用进行调用鉴权时,对于该API接口的调用者,不进行调用鉴权,直接执行API接口调用。

可选地,所述注解信息还包含指标过滤信息;

根据所述注解信息和所述调用请求对所述应用接口的调用进行管理还包括:

根据所述指标过滤信息对执行所述应用接口调用后的返回结果进行指标过滤;

将经过所述指标过滤的返回结果进行返回。

在此,当API接口预设为需要指标过滤时,可以将直接执行API接口调用而获取的返回结果,或者,将调用鉴权通过后执行API接口调用而获取的返回结果,经过指标过滤后再进行返回。

可选地,根据所述注解信息和所述调用请求对所述应用接口的调用进行管理还包括:

在进行指标过滤之前,判断是否需要进行指标过滤;

当不需要进行指标过滤时,直接对执行所述应用接口调用后的返回结果进行返回。

在此,当API接口预设为不需要指标过滤时,可以将直接执行API接口调用而获取的返回结果,或者,将调用鉴权通过后执行API接口调用而获取的返回结果,不进行指标过滤,直接进行返回并结束整个流程。

可选地,所述方法还包括:

对所述应用接口添加所述注解信息;

创建对所述注解信息进行处理的类。优选地,可以通过面向切面的方式创建对所述注解信息进行处理的类。

在此,注解信息采用Java语言提供的Annotation机制预先进行添加,通过Annotation增加的注解信息不会对已有代码的执行逻辑造成影响。面向切面的方式指AOP(面向切面编程,Aspect Oriented Programming),即通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。用于对注解信息进行处理的类是新增加的,不需要更改现有应用接口的具体实现逻辑类。

图2示出根据本申请又一个方面的应用接口管理方法的流程示意图。如图2所示,该应用接口调用方法包括:

步骤S201,对应用接口添加所述注解信息。

在此,注解信息采用Java语言提供的Annotation机制进行添加,通过Annotation增加的注解信息不会对已有代码的执行逻辑造成影响。注解信 息包含调用鉴权信息和指标过滤信息,此外,还可以包含是否需要进行接口管理的信息,例如,是否需要对该API接口进行调用鉴权的信息,或者,是否需要对调用该API接口的返回结果进行指标过滤的信息。其中,调用鉴权信息可以包含鉴权处理对象等信息,指标过滤信息可以包含指标过滤对象等信息。此处,指标可以指接口调用API接口所返回的数据类别。

步骤S202,创建对所述注解信息进行处理的类。

在此,可以通过面向切面的方式创建对所述注解信息进行处理的类,面向切面的方式指AOP方式。用于对注解信息进行处理的类是新增加的,不需要更改现有应用接口的具体实现逻辑类。

步骤S203,拦截应用接口的调用请求并获取所述应用接口的注解信息。

在此,服务请求方,即API接口调用方,发起调用请求。通过AOP拦截该调用请求,同时解析API接口已经添加的Annotation注解信息,以获取后续API接口调用管理所需的数据信息。

步骤S204,判断是否需要进行调用鉴权。

在此,根据注解信息包含的是否需要进行接口管理的信息进行判断。例如根据预先对该API接口设定的是否需要进行调用鉴权的信息,进行判断。

步骤S205,当不需要进行调用鉴权时,直接执行对所述应用接口的调用。

在此,如果预先设定不需要对该API接口的调用进行调用鉴权时,对于该API接口的调用者,不进行调用鉴权,直接执行API接口调用。执行API接口调用并获取返回结果后,可以跳转至步骤S209,判断是否需要对该返回结果进行指标过滤。

步骤S206,当需要进行调用鉴权时,根据所述调用鉴权信息对所述调用请求进行调用鉴权。

在此,调用鉴权分为两种结果,调用鉴权通过,此时跳转至步骤S208进行处理;调用鉴权没有通过,例如调用者的身份不符合API接口的调用权限,此时跳转至步骤S207进行处理。

步骤S207,在所述调用鉴权没有通过时,返回错误提示信息。

在此,根据返回值类型,包装错误提示信息后直接返回并结束整个流程。

步骤S208,在所述调用鉴权通过后,执行对所述应用接口的调用。

在此,调用者身份符合API接口的调用权限设置,调用鉴权允许通过。执行API接口调用并获取返回结果后,进入步骤S209进行判断。

步骤S209,判断是否需要进行指标过滤。

在此,根据注解信息包含的是否需要进行接口管理的信息进行判断。例如根据预先对该API接口设定的是否需要进行指标过滤的信息,进行判断。判断分为两种结果,不需要进行指标过滤,跳转至步骤S210进行处理;需要进行指标过滤,跳转至步骤S211进行处理。

步骤S210,当不需要进行指标过滤时,直接对执行调用后的返回结果进行返回。

在此,当API接口预设为不需要指标过滤时,可以将步骤S205直接执行API接口调用而获取的返回结果,或者,将步骤S208调用鉴权通过后执行API接口调用而获取的返回结果,不进行指标过滤,直接进行返回并结束整个流程。

步骤S211,当需要进行指标过滤时,根据所述指标过滤信息对执行调用后的返回结果进行指标过滤。

步骤S212,将经过所述指标过滤的返回结果进行返回。

在此,当API接口预设为需要指标过滤时,可以将步骤S205直接执行API接口的调用而获取的返回结果,或者,将步骤S208调用鉴权通过后执行API接口调用而获取的返回结果,经过指标过滤后再进行返回并结束整个流程,可以实现根据调用方的身份对返回的指标粒度进行控制。

通过本申请的应用接口管理方法,只需要在现有接口上增加注解信息,并相应的引入额外的处理逻辑类,就可以达到不修改已有逻辑的前提下对开放出的每个接口进行不同粒度的接口管理。

图3示出根据本申请一个方面的应用接口管理装置的结构示意图。如图3所示,该应用接口管理装置3包括:拦截模块31、获取模块32和调 用管理模块33。

其中,拦截模块31,用于拦截对应用接口的调用请求;获取模块32,用于获取所述应用接口的注解信息;调用管理模块33,用于根据所述注解信息和所述调用请求对所述应用接口的调用进行管理。

在此,拦截模块31拦截调用方发送的对API接口的调用请求,并发送至调用管理模块33进行处理;获取模块32从该API接口获取预先添加的注解信息,并发送至调用管理模块33进行处理。API接口预先添加有注解信息,例如Java语言提供的Annotation注解信息,注解信息内包含有对API接口调用的管理信息,例如调用鉴权、指标过滤的管理信息。调用管理模块33根据注解信息内的调用鉴权信息进行调用鉴权管理,对API接口的调用方,即服务使用方,进行身份控制;或者根据注解信息内的指标过滤信息,对API接口返回的指标粒度进行控制管理。

本申请的应用接口管理装置,不需要大规模更改现有代码或者对代码主体逻辑进行改动,仅需要通过独立增设的应用接口管理代码,根据注解信息进行处理即可实现对每个应用接口的调用管理,从而减少代码维护带来的价值开销,例如避免因主体逻辑的修改而带来的服务失效。

图4示出根据本申请又一个方面的应用接口管理装置的结构示意图。如图4所示,该应用接口管理装置4包括:图3所示的拦截模块31、获取模块32和调用管理模块33,以及添加注解模块41和处理类模块42。

其中,拦截模块31,用于拦截对应用接口的调用请求;获取模块32,用于获取所述应用接口的注解信息;调用管理模块33,用于根据所述注解信息和所述调用请求对所述应用接口的调用进行管理。

在此,拦截模块31拦截调用方发送的对API接口的调用请求,并发送至调用管理模块33进行处理;获取模块32从该API接口获取预先添加的注解信息,并发送至调用管理模块33进行处理。

其中,添加注解模块41,用于对所述应用接口添加所述注解信息。

在此,注解信息不会对已有代码的执行逻辑造成影响。注解信息包含调用鉴权信息和指标过滤信息,此外,还可以包含是否需要进行接口管理的信息,例如,是否需要对该API接口进行调用鉴权的信息,或者,是否 需要对调用该API接口的返回结果进行指标过滤的信息。其中,调用鉴权信息可以包含鉴权处理对象等信息,指标过滤信息可以包含指标过滤对象等信息。此处,指标可以指接口调用API接口所返回的数据类别。

其中,处理类模块42,用于创建对所述注解信息进行处理的类。优选地,所述处理类模块42还用于:通过面向切面的方式创建对所述注解信息进行处理的类。

在此,用于对注解信息进行处理的类是新增加的,不需要更改现有应用接口的具体实现逻辑类。

进一步,所述调用管理模块33还包括:鉴权模块331、执行调用模块332和第一判断模块333。

鉴权模块331,用于根据所述调用鉴权信息对所述调用请求进行调用鉴权;所述鉴权模块331还用于:在所述调用鉴权没有通过时,返回错误提示信息。

执行调用模块332,用于在所述调用鉴权通过后,执行对所述应用接口的调用。所述执行调用模块332还用于:当不需要进行调用鉴权时,直接执行对所述应用接口的调用。

第一判断模块333,用于在进行调用鉴权之前,判断是否需要进行调用鉴权。

在此,当不需要进行调用鉴权时,第一判断模块333通知执行调用模块332直接执行对所述应用接口的调用;当需要进行调用鉴权时,第一判断模块333通知鉴权模块331进行调用鉴权;当调用鉴权通过后,鉴权模块331通知执行调用模块332执行API接口调用;当调用鉴权没有通过时,鉴权模块331根据返回值类型,包装错误提示信息后直接返回。

进一步,所述调用管理模块33还包括:指标过滤模块334、返回模块335和第二判断模块336。

指标过滤模块334,用于根据所述指标过滤信息对执行所述应用接口调用后的返回结果进行指标过滤。

返回模块335,用于将经过所述指标过滤的返回结果进行返回。所述返回模块334还用于:当不需要进行指标过滤时,直接对执行所述应用接 口调用后的返回结果进行返回。

第二判断模块336,用于在进行指标过滤之前,判断是否需要进行指标过滤;

其中,当不需要进行指标过滤时,第二判断模块336通知返回模块334直接对执行调用模块332得出的返回结果进行返回。当需要进行指标过滤时,第二判断模块336通知指标过滤模块334对执行调用模块332得出的返回结果进行指标过滤,返回模块334将经过指标过滤模块334处理的返回结果进行返回。执行调用模块332的返回结果可以为直接执行API接口调用而得到,或者,调用鉴权通过后执行API接口调用而得到。

通过本申请的应用接口管理装置,只需要在现有接口上增加注解信息,并相应的引入额外的处理逻辑类,就可以在不修改已有逻辑的前提下,实现对开放出的每个应用接口进行不同粒度的接口管理。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

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