一种应用编程接口的调用方法及装置与流程

文档序号:12718718阅读:265来源:国知局
一种应用编程接口的调用方法及装置与流程

本申请涉及信息技术领域,尤其涉及一种应用编程接口的调用方法及装置。



背景技术:

应用编程接口(Application Programming Interface,API)是电脑操作系统或程序库提供给应用程序访问使用的代码,其主要目的是让应用程序开发人员得以访问一组例程功能,而无须考虑其底层的源代码为何、或理解其内部工作机制的细节。在互联网时代,将软件系统的服务封装成一系列计算机易识别的数据接口开放出去,供第三方开发者使用,这种行为被称为开放API,提供开放API的平台被称为开放平台。

开放平台上存放有大量API,每个API所实现的功能不同,基于开放平台开发的各种各样的第三方应用通过调用特定功能的API来实现自身的功能。为了保障开放平台的安全性,需要严格管理不同的第三方应用对API的调用权限,拦截一些第三方应用超越权限的非法调用。

为此,现有的API调用方法要求各种第三方应用在开放平台上注册并获取用户标识,第三方应用的用户可通过其注册的用户标识与开放平台签约,以约定该第三方应用可以调用的API,签约后,开放平台则建立该第三方应用可以调用的每个API与该第三方应用的用户标识之间的对应关系。当第三方应用向开放平台发起API调用请求时,需要表明其所要调用的是哪个API,开放平台查询该API所对应的所有用户标识中是否包括该第三方应用的用户标识,如果包括,便允许调用,否则,不允许调用。

但是,随着开放平台的快速发展,每一个API上都对应有数量巨大的用户标识,开放平台不仅需要保存大量的API与用户标识的对应关系,而且对每一个调用API的请求都需要遍历此用户标识对应的所有API后,才能判断该调用请求是否合法,这占用了开放平台服务器大量的资源。并且,随着基于开放平台开发的第三方应用数量越来越多以及各种第三方应用被越来越多的使用,开放平台往往在短时间内会频繁收到大量的API调用请求,倘若对每一个API调用请求都需要遍历该用户标识关联的所有API,开放平台的服务器很容易拥堵,甚至宕机。

可见,现有技术中对API的调用方法会对服务器造成很大压力。



技术实现要素:

本申请实施例提供了一种应用编程接口的调用方法及装置,用于解决现有的API调用技术对服务器造成很大压力的问题。

本申请实施例提供的一种应用编程接口的调用方法,包括:

接收应用编程接口API调用请求;

提取所述API调用请求中携带的用户标识、API标识以及API集合标识,其中,每个API集合标识均对应一个预先划分的API集合,每个API集合中至少包含一个API;

当确定出所述API调用请求中携带的API集合标识与所述用户标识具有对应关系,且,所述API调用请求中携带的API集合标识对应的API集合中包括所述API标识对应的API时,允许调用所述API标识对应的API;

当确定出所述API调用请求中携带的API集合标识与所述用户标识不具有对应关系,或,所述API调用请求中携带的API集合标识对应的API集合中不包括所述API标识对应的API时,拒绝调用所述API标识对应的API。

本申请实施例提供的一种应用编程接口的调用装置,包括:

接收模块,接收应用编程接口API调用请求;

提取模块,提取所述API调用请求中携带的用户标识、API标识以及API集合标识,其中,每个API集合标识均对应一个预先划分的API集合,每个API集合中至少包含一个API;

处理模块,当确定出所述API调用请求中携带的API集合标识与所述用户标识具有对应关系,且,所述API调用请求中携带的API集合标识对应的API集合中包括所述API标识对应的API时,允许调用所述API标识对应的API;当确定出所述API调用请求中携带的API集合标识与所述用户标识不具有对应关系,或,所述API调用请求中携带的API集合标识对应的API集合中不包括所述API标识对应的API时,拒绝调用所述API标识对应的API。

本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:

将开放平台上的API划分为若干个API集合,并建立每个API集合标识与第三方应用的用户标识的对应关系,由于API集合的数量远小于API的数量,因此开放平台上保存的对应关系得到极大的简化,而且,当第三方应用发起API调用请求时,开放平台只需判断所要调用的API所在的API集合与用户标识是否具有对应关系即可,这大大降低了服务器需要处理的数据量,进而减轻了服务器的压力。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是本申请实施例提供的一种应用编程接口的调用方法流程图;

图2是本申请实施例提供的一种应用编程接口的调用装置示意图;

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

以下结合附图,详细说明本申请各实施例提供的技术方案。

图1是本申请实施例提供的一种应用编程接口的调用方法流程图,包括以下步骤:

S101:接收应用编程接口API调用请求。

在本申请实施例中,可由开放平台的服务器接收API调用请求,也可由操作系统(如Windows操作系统、IOS操作系统等)接收API调用请求,凡是能够提供开放API的功能单元都可以是本申请技术方案的实施主体,本申请对此不作限制。为了方便描述,本申请实施例中的各步骤以开放平台为例。

在本申请实施例中,请求调用开放平台提供的API的可以是第三方web应用,也可以是第三方客户端应用以及其他可以利用API进行编程以实现功能的应用,本申请对此不作限制。

S102:提取所述API调用请求中携带的用户标识、API标识以及API集合标识,其中,每个API集合标识均对应一个预先划分的API集合,每个API集合中至少包含一个API。

在本申请实施例中,第三方应用可根据其要实现的功能,向开放平台发送携带有用户标识、API标识以及API集合标识的API调用请求。其中,所述用户标识可以是第三方应用预先在开放平台注册而获取的用户标识,也可以是第三方应用的地址信息。具体的,当第三方应用为WEB应用时,可将该WEB应用的URL地址作为其用户标识,当第三方应用为客户端应用时,可将该客户端应用的IP地址作为其用户标识,所述的用户标识只要能够唯一标识第三方应用即可,本申请对此不作限制。

在本申请实施例中,所述API标识可以是所述第三方应用请求调用的API在开放平台服务器中的存储地址,也可以是所述第三方应用请求调用的API在开放平台上的编号,所述的API标识只要能够唯一标识API即可,本申请对此亦不作限制。

在本申请实施例中,可以将开放平台上所有或者部分API划分为若干个API集合,每个API集合中至少包括一个API,可为每个API集合分配API集合标识。其中,可以将功能相近的API划分为一个API集合,还可以将组合后实现某一完整功能的API划分为一个API集合,本申请对具体的划分标准不作限制。

在本申请实施例中,可以将每个API集合视为一个应用服务产品,第三方应用的开发者根据需要,可向开放平台申请授予其对某个API集合的调用权限,一旦第三方应用被授予了对某个API集合的调用权限,则该第三方应用就可调用该API集合中的所有API。具体而言,第三方应用可以与开发平台签约,约定其拥有对指定的一个或数个API集合的调用权限,开放平台根据签约关系,建立该第三方应用的用户标识和与该第三方应用签约的各API集合的API集合标识的对应关系。

此外,各API集合之间可以存在交集,也可以不存在交集。

S103:判断所述API调用请求中携带的API集合标识与所述用户标识是否具有对应关系,若是,执行步骤S204,否则,执行步骤S206。

S104:判断所述API调用请求中携带的API集合标识对应的API集合中是否包括所述API标识对应的API,若是,执行步骤S205,否则,执行步骤S206。

S105:允许调用所述API标识对应的API。

S106:拒绝调用所述API标识对应的API。

在本申请实施例中,当确定出所述API调用请求中携带的API集合标识与所述用户标识具有对应关系,且,所述API调用请求中携带的API集合标识对应的API集合中包括所述API标识对应的API时,允许调用所述API标识对应的API;当确定出所述API调用请求中携带的API集合标识与所述用户标识不具有对应关系,或,所述API调用请求中携带的API集合标识对应的API集合中不包括所述API标识对应的API时,拒绝调用所述API标识对应的API。

也即,开放平台需要验证第三方应用是否签约了其告知的API集合标识对应的API集合,还需要验证其告知的API集合标识对应的API集合中是否包含其所要调用的API,当两次验证均通过时,才允许其调用API,当至少一次验证不通过时,则直接拒绝其调用API。其中,对两次验证的执行顺序不作限制。

进一步地,在执行步骤S105之前,即允许调用所述API标识对应的API之前,还可以先行判断所述API调用请求中携带的API集合标识与所述用户标识的对应关系是否在有效期之内,如果在有效期之内,则允许调用该API标识对应的API,如果不在有效期之内,则拒绝调用该API标识对应的API。

具体而言,可以在执行步骤S104之前,即,判断所述API调用请求中携带的API集合标识对应的API集合中是否包括所述API标识对应的API之前,先判断所述API调用请求中携带的API集合标识与所述用户标识的对应关系是否在有效期之内,也可以在执行步骤S103时,即,判断所述API调用请求中携带的API集合标识与所述用户标识是否具有对应关系,附带判断所述API调用请求中携带的API集合标识与所述用户标识的对应关系是否在有效期之内,还可以在执行完步骤S104之后,判断所述API调用请求中携带的API集合标识与所述用户标识的对应关系是否在有效期之内。只要上述两次验证都通过,且,包含所要调用的API的API集合与用户标识的对应关系尚在有效期以内,就允许第三方应用调用该API;只要上述至少一次验证不通过,或者,包含所要调用的API的API集合与用户标识的对应关系不在有效期以内,就拒绝第三方应用调用该API。

值得说明的是,上述的有效期可以是开放平台与第三方应用开发者预先针对签约的API集合约定的有效期,例如,第三方应用开发者根据需要,可与开放平台就包含有API1、API5、API30的API集合签约,签约有效期为2015年12月1日0点至2016年6月1日0点。

进一步地,在本申请实施例中,由于开放平台预先保存了用户标识与API集合标识的对应关系,在第三方应用发起API调用请求时,该API调用请求可以不携带API集合标识,仅携带用户标识和API标识。这样以来,开放平台根据该用户标识,确定出该用户标识对应的API集合标识,然后再判断确定出的API集合标识对应的API集合是否包括所述API标识对应的API,如果包括,就允许调用,否则,就拒绝调用。类似的,在允许调用之前,也可以先行判断判断所述API调用请求中携带的API集合标识与所述用户标识的对应关系是否在有效期之内,在此不再赘述。

通过如图1所示的方法,将开放平台上存放的全部API划分为至少一个API集合,为每一个API集合分配标识和为每一个第三方应用分配用户标识,并且建立各API集合标识与各用户标识的对应关系,这样以来,在接收到API调用请求时,开放平台仅需判断用户标识与API调用请求中携带的API集合标识是否具有对应关系以及API调用请求中携带的API集合标识对应的API集合是否包括请求调用的API即可。由于API集合的数量远小于API的数量,开放平台服务器所需处理的对应关系得到极大简化。本方案显著减少了开放平台服务器处理的数据量,减轻了服务器的压力。

基于图1所示的应用编程接口的调用方法,本申请实施例还对应提供一种应用编程接口的调用装置,如图2所示。

图2是本申请实施例提供的另一种应用编程接口的调用装置示意图,包括:

接收模块201,接收应用编程接口API调用请求;

提取模块202,提取所述API调用请求中携带的用户标识、API标识以及API集合标识,其中,每个API集合标识均对应一个预先划分的API集合,每个API集合中至少包含一个API;

处理模块203,当确定出所述API调用请求中携带的API集合标识与所述用户标识具有对应关系,且,所述API调用请求中携带的API集合标识对应的API集合中包括所述API标识对应的API时,允许调用所述API标识对应的API;当确定出所述API调用请求中携带的API集合标识与所述用户标识不具有对应关系,或,所述API调用请求中携带的API集合标识对应的API集合中不包括所述API标识对应的API时,拒绝调用所述API标识对应的API。

其中,不同的API集合之间存在交集或不存在交集。

此外,所述装置还包括:时效控制模块204,在所述处理模块203允许调用所述API标识对应的API之前,确定所述API调用请求中携带的API集合标识与所述用户标识的对应关系在有效期之内。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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