业务请求的处理方法、装置、电子设备及计算机存储介质与流程

文档序号:20917448发布日期:2020-05-29 13:42阅读:127来源:国知局
业务请求的处理方法、装置、电子设备及计算机存储介质与流程
本申请涉及信息处理
技术领域
,具体而言,本申请涉及一种业务请求的处理方法、装置、电子设备及计算机可读存储介质。
背景技术
:api网关:api(applicationprogramminginterface,应用程序编程接口)是一些预先定义的函数,应用将自身的服务能力封装成api,并通过api网关开放给用户调用,现有的云服务系统都具有api(applicationprogramminginterface,应用程序接口)网关的能力。但是,api网关都是集成在云服务系统中的,用户只能通过外网或在各自的服务集群内部来访问云服务系统中的api网关,也就是说,用户想要调用api网关,只能通过外网来访问云服务系统,或者定制云服务系统,灵活性较差。同时,现有的云服务系统只能对个人用户进行授权管理,并不能对团队用户进行授权管理,管理能力具有局限性。而且,现有的api网关都是采用扁平化数据协议,导致多层级的数据无法通过数据协议进行描述,同时,对数据协议进行配置时,数据协议中只有部分参数可以在可视化界面中进行配置,导致针对无法在可视化界面中进行配置的参数,用户还需要学习配置方法,不仅提高了用户的学习成本,还降低了配置效率。技术实现要素:本申请提供了一种业务请求的处理的方法、装置、电子设备及计算机可读存储介质,可以解决现有技术中api网关存在的相关问题。所述技术方案如下:第一方面,提供了一种业务请求的处理的方法,该方法包括:当接收到业务请求时,校验所述业务请求的合法性;当所述业务请求合法时,对发起所述业务请求的请求方的身份信息进行验证;当验证通过时,基于所述身份信息获取所述请求方的授权标识;当获取成功时,响应于所述业务请求,得到对应的业务结果,并将所述业务结果发送至所述请求方。优选地,所述校验所述业务请求的合法性的步骤,包括:对所述业务请求进行解析得到对应的映射表;获取所述映射表的所有原始字段,以及各个原始字段分别对应的原始字段类型;校验预设的目标字段是否与所述所有原始字段其中之一匹配,以及所述目标字段类型是否符合所述所有原始字段其中之一的原始字段类型;若同时满足,则判定所述业务请求合法。优选地,所述获取所述映射表的所有原始字段,以及各个原始字段分别对应的原始字段类型的步骤,包括:获取所述映射表的所有当前原始字段,以及各个原始字段分别对应的当前目标字段类型;确定各个当前目标字段类型是否均为非对象类型;若是,将所有当前原始字段,以及各个当前原始字段分别对应的当前目标字段类型分别作为所述映射表的所有原始字段,以及各个原始字段分别对应的原始字段类型;若否,获取所述至少一个当前对象类型各自对应的子映射表,并将各个子映射表作为所述映射表,执行获取所述映射表的当前原始字段,以及各个原始字段分别对应的当前目标字段类型,和,获取所述至少一个当前对象类型各自对应的子映射表,并将各个子映射表作为所述映射表的步骤,直至所有当前目标字段类型均为非对象类型,执行将所有当前原始字段,以及各个当前原始字段分别对应的当前目标字段类型分别作为所述映射表的所有原始字段,以及各个原始字段分别对应的原始字段类型的步骤。优选地,对发起所述业务请求的请求方的身份信息进行验证,包括:获取所述业务请求中的身份信息、业务请求参数,以及原始请求方签名;基于所述身份信息和业务请求参数生成目标请求方签名;将所述原始请求方签名与所述目标请求方签名进行匹配,当匹配成功,则判定验证通过。优选地,基于所述身份信息获取所述请求方的授权标识,包括:基于业务请求参数确定出被请求接口的接口信息;基于所述接口信息和身份信息获取所述请求方的授权标识;所述授权标识用于表征所述请求方具有请求所述接口的授权。优选地,响应于所述业务请求,得到对应的业务结果,并将所述业务结果发送至所述请求方,包括:将所述业务请求转发至被请求的接口,以使得所述接口对所述业务请求进行相应处理,得到对应的业务结果,并接收所述接口反馈的所述业务结果;将所述业务结果发送至所述请求方。优选地,将所述业务请求转发至被请求的接口,包括:获取所述接口的调用频率和授权频率;当所述调用频率小于调用频率阈值,以及所述授权频率小于授权频率阈值时,将所述业务请求转发至所述接口。第二方面,提供了一种业务请求的处理的装置,该装置包括:接收模块,用于接收业务请求;校验模块,用于校验所述业务请求的合法性;验证模块,用于当所述业务请求合法时,对发起所述业务请求的请求方的身份信息进行验证;获取模块,用于当验证通过时,基于所述身份信息获取所述请求方的授权标识;处理模块,用于当获取成功时,响应于所述业务请求,得到对应的业务结果;发送模块,用于将所述业务结果发送至所述请求方。优选地,所述校验模块包括:解析子模块,用于对所述业务请求进行解析得到对应的映射表;第一获取子模块,用于获取所述映射表的所有原始字段,以及各个原始字段分别对应的原始字段类型;第一匹配子模块,用于校验预设的目标字段是否与所述所有原始字段其中之一匹配,以及所述目标字段类型是否符合所述所有原始字段其中之一的原始字段类型;判定子模块,用于若同时满足,则判定所述业务请求合法。优选地,所述第一获取子模块包括:第一获取单元,用于获取所述映射表的所有当前原始字段,以及各个原始字段分别对应的当前目标字段类型;判断子模块,用于确定各个当前目标字段类型是否均为非对象类型;第一处理单元,用于当各个目标字段类型均为非对象类型时,将所有当前原始字段,以及各个当前原始字段分别对应的当前目标字段类型分别作为所述映射表的所有原始字段,以及各个原始字段分别对应的原始字段类型;第二处理单元,用于当至少一个当前目标字段类型为对象类型时,获取所述至少一个当前对象类型各自对应的子映射表,并将各个子映射表作为所述映射表,调用获取单元和第二处理单元,直至所有当前目标字段类型均为非对象类型,调用第一处理单元。优选地,所述验证模块包括:第二获取子模块,用于获取所述业务请求中的身份信息、业务请求参数,以及原始请求方签名;生成子模块,用于基于所述身份信息和业务请求参数生成目标请求方签名;第二匹配子模块,用于将所述原始请求方签名与所述目标请求方签名进行匹配,当匹配成功,则判定验证通过。优选地,所述获取模块包括:接口信息确定子模块,用于基于业务请求参数确定出被请求接口的接口信息;授权标识获取子模块,用于基于所述接口信息和身份信息获取所述请求方的授权标识;所述授权标识用于表征所述请求方具有请求所述接口的授权。优选地,所述处理模块包括:发送子模块,用于将所述业务请求转发至被请求的接口,以使得所述接口对所述业务请求进行相应处理,得到对应的业务结果;接收子模块,用于接收所述接口反馈的所述业务结果。优选地,所述发送子模块包括:第二获取单元,用于获取所述接口的调用频率和授权频率;判定单元,用于当所述调用频率小于调用频率阈值,以及所述授权频率小于授权频率阈值时,将所述业务请求转发至所述接口。第三方面,提供了一种电子设备,该电子设备包括:处理器、存储器和总线;所述总线,用于连接所述处理器和所述存储器;所述存储器,用于存储操作指令;所述处理器,用于通过调用所述操作指令,可执行指令使处理器执行如本申请的第一方面所示的业务请求的处理的方法对应的操作。第四方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该程序被处理器执行时实现本申请第一方面所示的业务请求的处理的方法。本申请提供的技术方案带来的有益效果是:当api网关系统接收到业务请求时,校验业务请求的合法性,当业务请求合法时,对发起业务请求的请求方的身份信息进行验证,当验证通过时,基于身份信息获取请求方的授权标识,当获取成功时,响应于业务请求,得到对应的业务结果,并将业务结果发送至请求方。这样,api网关系统可以独立对请求方的业务请求进行处理,不需要依赖于外网或定制的云服务系统,使得用户可以将api网关系统部署在私有网络中,灵活性高。同时,api网关系统还可以对请求方的授权标识进行管理,而请求方不仅包括个人用户,还包括团队用户,解决了现有技术中api网关不支持团队用户的授权管理的问题,克服了api网关系统管理能力的局限性。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。图1为本申请一个实施例提供的一种业务请求的处理方法的流程示意图;图2为本申请中网关系统的结构示意图;图3为本申请中获取请求方授权标识时app、permission、interface的交互示意图;图4为本申请又一实施例提供的一种业务请求的处理装置的结构示意图;图5为本申请又一实施例提供的一种业务请求的处理的电子设备的结构示意图。具体实施方式下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。本
技术领域
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。本申请提供的业务请求的处理方法、装置、电子设备和计算机可读存储介质,旨在解决现有技术的如上技术问题。下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。在一个实施例中提供了一种业务请求的处理的方法,如图1所示,该方法包括:步骤s101,当接收到业务请求时,校验业务请求的合法性;请求方可以通过终端向api网关系统发送业务请求,当api网关系统接收到业务请求时,可以校验该业务请求是否合法,如果不合法,则会将该业务请求丢弃。其中,请求方可以是个人用户,也可以是团队用户,业务请求可以采用http(hypertexttransferprotocol,超文本传输协议)。业务请求可以是json(javascriptobjectnotation,js对象简谱)数据,json数据可以包含多个key/value(键/值)对,key对应字段,value为字段对应的值,比如,key为“name”,value为“小王”。步骤s102,当业务请求合法时,对发起业务请求的请求方的身份信息进行验证;如果业务请求合法,那么可以对发起该业务请求的请求方的身份信息进行验证,也就是说,验证请求方是不是真正的请求方,而不是他人假冒的。步骤s103,当验证通过时,基于身份信息获取请求方的授权标识;在实际应用中,api网关系统需要将请求方的业务请求转发至服务方对应的业务接口,使得服务方对业务请求进行相应的处理,比如,请求方发起“1+1=?”的业务请求,那么api网关系统接收到业务请求后,需要将该业务请求发送至服务方的“计算接口”,服务器通过“计算接口”接收到业务请求后进行计算处理,从而得到“2”的业务结果。但是,在本申请中,api网关系统将业务请求发送至业务接口之前,还需要得知该请求方是否有权调用对应的业务接口,如果没有,那么就可以拒绝该业务请求,比如,请求方发起“1+1=?”的业务请求,但是该请求方并没有授权可以调用“计算接口”,那么该业务请求就会被拒绝。其中,服务方用于提供与业务请求对应的相关服务,比如,如果请求方的业务请求为计算处理,那么服务方提供的相关服务可以是计算服务;如果请求方的业务请求为获取资源,那么服务方提供的相关服务可以是数据传输等等。进一步,每种相关服务分别具有对应的业务接口,通过调用不同的业务接口实现服务方提供不同的相关服务。步骤s104,当获取成功时,响应于业务请求,得到对应的业务结果,并将业务结果发送至请求方。如果请求方具有授权标识,那么该请求方就可以调用被请求的业务接口,api网关系统就可以响应于该业务请求,得到对应的业务结果,并将该业务结果发送至请求方。如果请求方没有授权标识,那么该请求方就无法调用被请求的业务接口,业务请求即被拒绝。在本发明实施例中,当api网关系统接收到业务请求时,校验业务请求的合法性,当业务请求合法时,对发起业务请求的请求方的身份信息进行验证,当验证通过时,基于身份信息获取请求方的授权标识,当获取成功时,响应于业务请求,得到对应的业务结果,并将业务结果发送至请求方。这样,api网关系统可以独立对请求方的业务请求进行处理,不需要依赖于外网或定制的云服务系统,使得用户可以将api网关系统部署在私有网络中,灵活性高。同时,api网关系统还可以对请求方的授权标识进行管理,而请求方不仅包括个人用户,还包括团队用户,解决了现有技术中api网关不支持团队用户的授权管理的问题,克服了api网关系统管理能力的局限性。在另一个实施例中继续对如图1所示的一种业务请求的处理方法进行详细说明。具体而言,本申请可以应用于api网关系统中,该api网关系统可以包括网关、辅助工具,以及网关配置平台。如图2所示,api网关系统可以与外部系统进行数据交互,外部系统包括请求方和服务方,是平台用户自己的系统。比如,外部系统中的请求方可以向api网关系统发送业务请求,api网关系统将业务请求转发至服务方,服务方对业务请求进行相应处理得到业务结果后,将业务结果发送给api网关系统,api网关系统将业务结果转发至请求方;同时,api网关系统也具有网关存储,可以在网关存储中存储api网关系统的配置信息等数据。其中,网关可以包括如下模块:1)结构化协议检查模块:系统支持结构化协议,此检查模块根据aip网关系统的接口配置,检查一个业务请求是否符合协议,预先排除错误或恶意请求;2)http服务及转发模块:网关本身也是一个服务,接受请求方的请求后,转发给服务方;3)请求鉴权模块:鉴别请求者的身份,检查其是否具有此接口的调用权限;网关可以拒绝恶意或未授权的请求;4)频率限制模块:每个接口都有自己总频率限制,同时,一个接口授权给一个请求方(包括个人和团队)也会有授权频率;频率限制负责处理这部分事项,保证接口及授权不超频。辅助工具可以包括如下模块:1)多维监控模块:多个维度监控系统信息,比如,[每个接口/接口的每次授权/团队作为服务方总体发生/团队作为请求方总体使用]的[请求量/成功量/失败量/各种失败原因];2)配置缓存模块:将配置信息缓存下来,供网关和配置平台快速调用;3)在线测试模块:可以在网页上模拟一次请求,帮助接入者快速上手。网关配置平台可以包括如下模块:1)接口配置模块:负责录入接口的基本信息,[名称/网关路径/后端地址/频率限制/结构化请求协议/响应协议]等等;2)个人/团队模块:负责维护用户和团队信息,接口资源整合及授权都是以团队为单位来执行,更加易于协作;3)授权管理模块:能以团队身份申请某个接口的使用权限,可以作为接口管理员审批其他团队的申请,能看到自己的资源正在被哪些团队使用,以及自己的团队正在使用哪些外部资源。进一步,网关配置平台可以包括如下数据协议结构:schema、field、user、interface、permission、app。schema的结构可以如表1所示:表1字段类型含义namestring数据协议名称descstring数据协议描述fields[]field数据协议字段配置field的结构可以如表2所示:表2在实际应用中,现有的网关都采用扁平化协议,不支持结构化协议,但本申请中的schema中可以包括field,同时,field中也可以包括schema,这样就形成了结构化协议。比如,现有的网关协议结构描述某个工作组的信息为:这种结构只能描述工作组的名称和成员人数,无法进一步描述各个成员人员的具体信息,而采用结构化协议可以描述为:这样不仅描述了工作组的名称和成员人数,还进一步描述了各个成员人员的具体信息。进一步,user的结构可以如表3所示:表3字段类型含义useridstring用户标识namestring用户名称interface的结构可以如表4所示:表4字段类型含义interfaceidstring接口标识namestring接口名称appidstring所属团队pathstring网关路径backendurlstring后端转发地址requestschema请求协议responseschema响应协议freqint接口总频率permission的结构可以如表5所示:表5字段类型含义interfaceidstring授权接口标识appidstring授权团队标识messagestring授权信息freqint授权频率app的结构可以如表6所示:表6字段类型含义appidstring团队标识namestring团队名称admin[]string团队管理员其中,一个schema可以包含多个field(如user包含name和age),同时其field本身可以是object对象,又有自己的协议,schema和field共同描述了一个结构化的数据协议。app表示团队,可以配置多个user作为管理员。interface表示接口,接口的请求协议/响应协议用schema描述,从而支持了结构化。permission表示授权通过interfaceid(接口标识)/appid(团队标识)关联到接口和应用。进一步,各个数据协议结构支持可视化界面配置,比如,用户可以在可视化界面中配置field的各个字段,以及各个字段对应的字段类型。需要说明的是,上述各个数据协议结构所包含的字段、类型、含义仅仅是举例说明,在实际应用中可以根据需求进行调整,本申请对此不作限制。进一步,现有技术中只能对个人用户进行管理,无法对团队用户进行管理,而本申请通过配置app即可实现对团队的管理,所以,本申请以对团队用户的业务请求进行处理为例进行举例说明,对个人用户的业务请求的处理与团队用户的原理相同,本申请就不赘述了。以下对基于结构化的数据协议的业务请求的处理进行详细说明。步骤s101,当接收到业务请求时,校验业务请求的合法性;请求方可以通过终端向api网关系统发送业务请求,当api网关系统接收到业务请求时,可以校验该业务请求是否合法,如果不合法,则会将该业务请求丢弃。其中,请求方可以是个人用户,也可以是团队用户,业务请求可以采用http(hypertexttransferprotocol,超文本传输协议);终端可以具有如下特点:(1)在硬件体系上,设备具备中央处理器、存储器、输入部件和输出部件,也就是说,设备往往是具备通信功能的微型计算机设备。另外,还可以具有多种输入方式,诸如键盘、鼠标、触摸屏、送话器和摄像头等,并可以根据需要进行调整输入。同时,设备往往具有多种输出方式,如受话器、显示屏等,也可以根据需要进行调整;(2)在软件体系上,设备必须具备操作系统,如windowsmobile、symbian、palm、android、ios等。同时,这些操作系统越来越开放,基于这些开放的操作系统平台开发的个性化应用程序层出不穷,如通信簿、日程表、记事本、计算器以及各类游戏等,极大程度地满足了个性化用户的需求;(3)在通信能力上,设备具有灵活的接入方式和高带宽通信性能,并且能根据所选择的业务和所处的环境,自动调整所选的通信方式,从而方便用户使用。设备可以支持gsm(globalsystemformobilecommunication,全球移动通信系统)、wcdma(widebandcodedivisionmultipleaccess,宽带码分多址)、cdma2000(codedivisionmultipleaccess,码分多址)、tdscdma(timedivision-synchronouscodedivisionmultipleaccess,时分同步码分多址)、wi-fi(wireless-fidelity,无线保真)以及wimax(worldwideinteroperabilityformicrowaveaccess,全球微波互联接入)等,从而适应多种制式网络,不仅支持语音业务,更支持多种无线数据业务;(4)在功能使用上,设备更加注重人性化、个性化和多功能化。随着计算机技术的发展,设备从“以设备为中心”的模式进入“以人为中心”的模式,集成了嵌入式计算、控制技术、人工智能技术以及生物认证技术等,充分体现了以人为本的宗旨。由于软件技术的发展,设备可以根据个人需求调整设置,更加个性化。同时,设备本身集成了众多软件和硬件,功能也越来越强大。在本发明一种实施例中,校验业务请求的合法性的步骤,包括:对业务请求进行解析得到对应的映射表;获取映射表的所有原始字段,以及各个原始字段分别对应的原始字段类型;校验预设的目标字段是否与所述所有原始字段其中之一匹配,以及所述目标字段类型是否符合所述所有原始字段其中之一的原始字段类型;若同时满足,则判定业务请求合法。具体而言,业务请求可以是json(javascriptobjectnotation,js对象简谱)数据,json数据可以包含多个key/value(键/值)对,key对应字段,value为字段对应的值,比如,key为“name”,value为“小王”。在本发明实施例中,可以针对各个数据协议结构分别预设对应的映射表,并存储在api网关系统中,在api网关系统在接收到业务请求后,可以将业务请求解析到映射表中,比如将业务请求解析到schema中,从而得到该业务请求中的所有原始字段,以及各个原始字段分别对应的原始字段类型,然后将解析到的schema与预设schema进行对比,检测解析到的schema与预设schema中的所有字段是否完全相同,如果有至少一个字段不相同,则判定该业务请求不合法。进一步,如果所有字段完全相同,可以判断所有原始字段分别对应的原始字段类型与预设schema中各个字段类型是否完全相同,如果有至少一个字段类型不相同,则判定该业务请求不合法。比如,某个业务请求解析到的schema包括“name”、“desc”两个字段,但是预设schema包括“name”、“desc”、“age”三个字段,那么解析到的schema就缺少了“age”字段,则判定该业务请求不合法。再比如,某个业务请求解析到的schema包括“name”、“desc”、“age”三个字段,预设schema包括“name”、“desc”、“age”三个字段,但是解析到的schema中三个字段的类型分别为“string”、“string”、“string”,而预设schema中三个字段的类型分别为“string”、“string”、“int”,则也判定该业务请求不合法。其中,获取映射表的所有原始字段,以及各个原始字段分别对应的原始字段类型的步骤,包括:获取映射表的所有当前原始字段,以及各个当前原始字段分别对应的当前目标字段类型;确定各个当前目标字段类型是否均为非对象类型;若是,将所有当前原始字段,以及各个当前原始字段分别对应的当前目标字段类型分别作为映射表的所有原始字段,以及各个原始字段分别对应的原始字段类型;若否,获取至少一个当前对象类型各自对应的子映射表,并将各个子映射表作为映射表,执行获取映射表的当前原始字段,以及各个原始字段分别对应的当前目标字段类型,和,,获取至少一个当前对象类型各自对应的子映射表,并将各个子映射表作为映射表的步骤,直至所有当前目标字段类型均为非对象类型,执行将所有当前原始字段,以及各个当前原始字段分别对应的当前目标字段类型分别作为所述映射表的所有原始字段,以及各个原始字段分别对应的原始字段类型的步骤。具体而言,在本申请中,schema中可以包括field,同时,field中也可以包括schema,所以会出现映射表中包括对象类,也就是映射表中继续包括映射表的情况。因此,针对这种情况,本申请将业务请求解析到映射表后,得到该映射表的所有当前原始字段,以及各个当前原始字段分别对应的当前目标字段类型,如果各个当前目标字段类型均为非对象类型时,那么就可以将所有当前原始字段,以及各个当前原始字段分别对应的当前目标字段类型作为该映射表的所有原始字段,以及各个原始字段分别对应的原始字段类型。比如,某个业务请求解析到的schema包括“name”、“desc”、“age”三个字段,并不包括field字段,所以,“name”、“desc”、“age”三个字段就是该业务请求的所有原始字段,各个原始字段分别对应的类型为原始字段类型。如果至少一个当前目标字段类型为对象类型,那么就获取各个当前对象类型各自对应的子映射表,并对各个子映射表重复执行上述步骤,直至所有当前目标字段类型均为非对象类型。比如,某个业务请求解析到的schema包括“name”、“desc”、“field”三个字段,那么就继续获取field的映射表中的各个字段,如果field中不包括schema字段,那么就将field和schema中的全部字段作为该业务请求的所有原始字段,各个原始字段分别对应的原始字段类型作为该业务请求的所有原始字段类型。如果field中还包括schema字段,那么就将业务请求解析到的schema、field以及field中的schema三者中的全部字段作为该业务请求的所有原始字段,各个原始字段分别对应的原始字段类型作为该业务请求的所有原始字段类型,依此类推。步骤s102,当业务请求合法时,对发起业务请求的请求方的身份信息进行验证;如果业务请求合法,那么可以对发起该业务请求的请求方的身份信息进行验证,也就是说,验证请求方是不是真正的请求方,而不是他人假冒的。在本发明一种实施例中,对发起业务请求的请求方的身份信息进行验证,包括:获取业务请求中的身份信息、业务请求参数,以及原始请求方签名;基于身份信息和业务请求参数生成目标请求方签名;将原始请求方签名与目标请求方签名进行匹配,当匹配成功,则判定验证通过。具体而言,接收到业务请求后,获取业务请求中的业务请求参数,包括但不限于:urlquery和body,然后根据urlquery中的appid获取发起业务请求的团队的身份信息,然后利用api网关系统中的clientkey(属于app,表6中未示出)、身份信息,以及业务请求参数生成目标请求方签名,然后将目标请求方签名与业务请求中的原始请求方签名进行对比,如果完全相同,则判定请求方的身份信息验证通过。步骤s103,当验证通过时,基于身份信息获取请求方的授权标识;在实际应用中,api网关系统需要将请求方的业务请求转发至服务方对应的业务接口,使得服务方对业务请求进行相应的处理,比如,请求方发起“1+1=?”的业务请求,那么api网关系统接收到业务请求后,需要将该业务请求发送至服务方的“计算接口”,服务器通过“计算接口”接收到业务请求后进行计算处理,从而得到“2”的业务结果。但是,在本申请中,api网关系统将业务请求发送至业务接口之前,还需要得知该请求方是否有权调用对应的业务接口,如果没有,那么就可以拒绝该业务请求,比如,请求方发起“1+1=?”的业务请求,但是该请求方并没有授权可以调用“计算接口”,那么该业务请求就会被拒绝。在本发明一种实施例中,基于身份信息获取请求方的授权标识,包括:基于业务请求参数确定出被请求接口的接口信息;基于接口信息和身份信息获取请求方的授权标识;授权标识用于表征请求方具有请求接口的授权。具体而言,业务请求中还包括请求的域名(比如dns(domainnamesystem,域名系统))和路径(urlpath),则可以根据域名和路径确定出被请求的业务接口,并获取该业务接口的接口信息,然后通过该接口信息和请求方的身份信息获取该请求方的授权标识。进一步,图3展示了在获取请求方的授权标识时app、permission、interface三者之间的交互过程:1)通过app中的appid(也就是业务请求中的身份信息)获取interface中的appid;2)通过interface中的appid获取interface中的interfaceid;3)通过interface中的interfaceid获取permission中的interfaceid;4)permission中的interfaceid获取permission中的appid。步骤s104,当获取成功时,响应于业务请求,得到对应的业务结果,并将业务结果发送至请求方。如果请求方对应的appid具有授权标识,那么该请求方就可以调用被请求的业务接口,api网关系统就可以响应于该业务请求,得到对应的业务结果,并将该业务结果发送至请求方。如果请求方对应的appid没有授权标识,那么该请求方就无法调用被请求的业务接口,业务请求即被拒绝。在本发明一种实施例中,响应于业务请求,得到对应的业务结果,并将业务结果发送至请求方,包括:将业务请求转发至被请求的接口,以使得接口对业务请求进行相应处理,得到对应的业务结果,并接收接口反馈的业务结果;将业务结果发送至请求方。具体而言,如果请求方对应的appid具有授权标识,那么该请求方就可以调用被请求的业务接口,api网关系统就可以将该业务请求发送至该业务接口,以使得服务方通过业务接口接收业务请求,将针对业务请求执行相应的业务处理,得到业务结果,然后通过业务接口发送至api网关系统,api网关系统再将业务结果发送至请求方。如果请求方对应的appid没有授权标识,那么该请求方就无法调用被请求的业务接口,业务请求即被拒绝。其中,将业务请求转发至被请求的接口,包括:获取接口的调用频率和授权频率;当调用频率小于调用频率阈值,以及授权频率小于授权频率阈值时,将业务请求转发至接口。具体而言,业务接口设置有调用频率,对应于interface中的freq,以及授权频率,对应于permission中的freq。调用频率为任一业务接口每秒被调用的总次数,授权频率为每个appid每秒可以调用任一业务接口的次数,当某个业务请求有权调用某个业务接口时,还需要判断该业务接口的调用频率和授权频率是否都超过了上限,若时,则拒绝该业务请求。比如,业务接口a每秒可以总共被调用10次,app01每秒可调用5次,app02每秒可调用3次,app03每秒可调用2次,app04可调用4次。某个时刻app03调用业务接口a,如果此时业务接口a已经被调用了10次,或者,app03在包含该时刻的一秒内已经2次调用了业务接口a(当前调用为第3次),那么app03都无法再调用业务接口a了。进一步,api网关系统将业务请求发送至业务接口时,可以使用serverkey(app中的字段,表6中未示出)生成api网关系统的签名,然后将签名和业务请求一起发送至业务接口,这样,服务方可以通过签名来验证发送业务请求的api网关系统是不是真正的api网关系统,提高了安全性。服务方在接收到签名和业务请求后,先对签名进行验证,如果验证通过,则对业务请求进行业务处理;如果验证失败,则向api网关系统发送验证失败的信息,api网关系统更换serverkey再进行验证,如果验证通过,则服务方对业务请求进行处理,如果验证仍然失败,则可以重复上述步骤,当连续失败的次数超过一定次数时,则可以判定api网关系统或者服务方存在故障。在本发明实施例中,当api网关系统接收到业务请求时,校验业务请求的合法性,当业务请求合法时,对发起业务请求的请求方的身份信息进行验证,当验证通过时,基于身份信息获取请求方的授权标识,当获取成功时,响应于业务请求,得到对应的业务结果,并将业务结果发送至请求方。这样,api网关系统可以独立对请求方的业务请求进行处理,不需要依赖于外网或定制的云服务系统,使得用户可以将api网关系统部署在私有网络中,灵活性高。同时,api网关系统还可以对请求方的授权标识进行管理,而请求方不仅包括个人用户,还包括团队用户,解决了现有技术中api网关不支持团队用户的授权管理的问题,克服了api网关系统管理能力的局限性。进一步,本发明实施例可以配置结构化数据协议,而且,在配置结构化数据协议的参数时,所有的参数都可以在可视化界面中进行配置,不仅可以通过结构化数据协议对多层级的数据进行描述,还可以预先校验业务请求是否符合结构化数据协议,实现了预先排除不合法的业务请求,而且针对无法在可视化界面中配置的参数,还使得用户可以不需要学习配置方法,降低了用户的学习成本,提高了配置效率。图4为本申请又一实施例提供的一种业务请求的处理装置的结构示意图,如图4所示,本实施例的装置可以包括:接收模块401,用于接收业务请求;校验模块402,用于校验业务请求的合法性;验证模块403,用于当业务请求合法时,对发起业务请求的请求方的身份信息进行验证;获取模块404,用于当验证通过时,基于身份信息获取请求方的授权标识;处理模块405,用于当获取成功时,响应于业务请求,得到对应的业务结果;发送模块406,用于将业务结果发送至请求方。在本发明一种实施例中,校验模块包括:解析子模块,用于对业务请求进行解析得到对应的映射表;第一获取子模块,用于获取映射表的所有原始字段,以及各个原始字段分别对应的原始字段类型;第一匹配子模块,用于校验预设的目标字段是否与所述所有原始字段其中之一匹配,以及所述目标字段类型是否符合所述所有原始字段其中之一的原始字段类型;判定子模块,用于若同时满足,则判定业务请求合法。在本发明一种实施例中,第一获取子模块包括:第一获取单元,用于获取映射表的所有当前原始字段,以及各个原始字段分别对应的当前目标字段类型;判断子模块,用于确定各个当前目标字段类型是否均为非对象类型;第一处理单元,用于当各个目标字段类型均为非对象类型时,将所有当前原始字段,以及各个当前原始字段分别对应的当前目标字段类型分别作为映射表的所有原始字段,以及各个原始字段分别对应的原始字段类型;第二处理单元,用于当至少一个当前目标字段类型为对象类型时,获取至少一个当前对象类型各自对应的子映射表,并将各个子映射表作为映射表,调用获取单元和第二处理单元,直至所有当前目标字段类型均为非对象类型,调用第一处理单元。在本发明一种实施例中,验证模块包括:第二获取子模块,用于获取业务请求中的身份信息、业务请求参数,以及原始请求方签名;生成子模块,用于基于身份信息和业务请求参数生成目标请求方签名;第二匹配子模块,用于将原始请求方签名与目标请求方签名进行匹配,当匹配成功,则判定验证通过。在本发明一种实施例中,获取模块包括:接口信息确定子模块,用于基于业务请求参数确定出被请求接口的接口信息;授权标识获取子模块,用于基于接口信息和身份信息获取请求方的授权标识;授权标识用于表征请求方具有请求接口的授权。在本发明一种实施例中,处理模块包括:发送子模块,用于将业务请求转发至被请求的接口,以使得接口对业务请求进行相应处理,得到对应的业务结果;接收子模块,用于接收接口反馈的业务结果。在本发明一种实施例中,发送子模块包括:第二获取单元,用于获取接口的调用频率和授权频率;判定单元,用于当调用频率小于调用频率阈值,以及授权频率小于授权频率阈值时,将业务请求转发至接口。本实施例的业务请求的处理装置可执行本申请第一个实施例、第二个实施例所示的业务请求的处理方法,其实现原理相类似,此处不再赘述。在本发明实施例中,当api网关系统接收到业务请求时,校验业务请求的合法性,当业务请求合法时,对发起业务请求的请求方的身份信息进行验证,当验证通过时,基于身份信息获取请求方的授权标识,当获取成功时,响应于业务请求,得到对应的业务结果,并将业务结果发送至请求方。这样,api网关系统可以独立对请求方的业务请求进行处理,不需要依赖于外网或定制的云服务系统,使得用户可以将api网关系统部署在私有网络中,灵活性高。同时,api网关系统还可以对请求方的授权标识进行管理,而请求方不仅包括个人用户,还包括团队用户,解决了现有技术中api网关不支持团队用户的授权管理的问题,克服了api网关系统管理能力的局限性。进一步,本发明实施例可以配置结构化数据协议,而且,在配置结构化数据协议的参数时,所有的参数都可以在可视化界面中进行配置,不仅可以通过结构化数据协议对多层级的数据进行描述,还可以预先校验业务请求是否符合结构化数据协议,实现了预先排除不合法的业务请求,而且针对无法在可视化界面中配置的参数,还使得用户可以不需要学习配置方法,降低了用户的学习成本,提高了配置效率。本申请的又一实施例中提供了一种电子设备,该电子设备包括:存储器和处理器;至少一个程序,存储于存储器中,用于被处理器执行时,与现有技术相比可实现:当api网关系统接收到业务请求时,校验业务请求的合法性,当业务请求合法时,对发起业务请求的请求方的身份信息进行验证,当验证通过时,基于身份信息获取请求方的授权标识,当获取成功时,响应于业务请求,得到对应的业务结果,并将业务结果发送至请求方。这样,api网关系统可以独立对请求方的业务请求进行处理,不需要依赖于外网或定制的云服务系统,使得用户可以将api网关系统部署在私有网络中,灵活性高。同时,api网关系统还可以对请求方的授权标识进行管理,而请求方不仅包括个人用户,还包括团队用户,解决了现有技术中api网关不支持团队用户的授权管理的问题,克服了api网关系统管理能力的局限性。进一步,本发明实施例可以配置结构化数据协议,而且,在配置结构化数据协议的参数时,所有的参数都可以在可视化界面中进行配置,不仅可以通过结构化数据协议对多层级的数据进行描述,还可以预先校验业务请求是否符合结构化数据协议,实现了预先排除不合法的业务请求,而且针对无法在可视化界面中配置的参数,还使得用户可以不需要学习配置方法,降低了用户的学习成本,提高了配置效率。在一个可选实施例中提供了一种电子设备,如图5所示,图5所示的电子设备5000包括:处理器5001和存储器5003。其中,处理器5001和存储器5003相连,如通过总线5002相连。可选地,电子设备5000还可以包括收发器5004。需要说明的是,实际应用中收发器5004不限于一个,该电子设备5000的结构并不构成对本申请实施例的限定。处理器5001可以是cpu,通用处理器,dsp,asic,fpga或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器5001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。总线5002可包括一通路,在上述组件之间传送信息。总线5002可以是pci总线或eisa总线等。总线5002可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。存储器5003可以是rom或可存储静态信息和指令的其他类型的静态存储设备,ram或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom、cd-rom或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器5003用于存储执行本申请方案的应用程序代码,并由处理器5001来控制执行。处理器5001用于执行存储器5003中存储的应用程序代码,以实现前述任一方法实施例所示的内容。其中,电子设备包括但不限于:移动电话、笔记本电脑、数字广播接收器、pda(个人数字助理)、pad(平板电脑)、pmp(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字tv、台式计算机等等的固定终端。本申请的又一实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当其在计算机上运行时,使得计算机可以执行前述方法实施例中相应内容。与现有技术相比,当api网关系统接收到业务请求时,校验业务请求的合法性,当业务请求合法时,对发起业务请求的请求方的身份信息进行验证,当验证通过时,基于身份信息获取请求方的授权标识,当获取成功时,响应于业务请求,得到对应的业务结果,并将业务结果发送至请求方。这样,api网关系统可以独立对请求方的业务请求进行处理,不需要依赖于外网或定制的云服务系统,使得用户可以将api网关系统部署在私有网络中,灵活性高。同时,api网关系统还可以对请求方的授权标识进行管理,而请求方不仅包括个人用户,还包括团队用户,解决了现有技术中api网关不支持团队用户的授权管理的问题,克服了api网关系统管理能力的局限性。进一步,本发明实施例可以配置结构化数据协议,而且,在配置结构化数据协议的参数时,所有的参数都可以在可视化界面中进行配置,不仅可以通过结构化数据协议对多层级的数据进行描述,还可以预先校验业务请求是否符合结构化数据协议,实现了预先排除不合法的业务请求,而且针对无法在可视化界面中配置的参数,还使得用户可以不需要学习配置方法,降低了用户的学习成本,提高了配置效率。应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。以上所述仅是本发明的部分实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1