掌桥专利:专业的专利平台
掌桥专利
首页

接口参数校验方法、装置、设备及存储介质

文献发布时间:2023-06-19 09:46:20


接口参数校验方法、装置、设备及存储介质

技术领域

本发明涉及大数据技术的风险管控领域,尤其涉及一种接口参数校验方法、装置、设备及存储介质。

背景技术

在业务需求的开发过程中,往往都需要与其他系统进行交互。而接口参数文档就是系统间交互的一个标准,服务方需要根据接口参数文档开发接口,而消费方则需要根据接口参数文档来开编写代码进行调用。服务方在接收到调用请求的时候,需要对接口入参进行校验,例如,必填字段是否缺失、字段类型是否正确、字符串长度是否超长。

现有的接口校验方法,一般仅校验必填字段,对其他内容并不会进行校验。例如,因字段超长而保存到数据库失败的异常,并不会被识别,导致存储数据库失败。而为每个接口添加一个数据传输对象(data transfer object,DTO),再通过自定义注解,把注解写在DTO中每个字段上,指定其是否必填、字段类型、字段长度信息,最后在接收到请求时,通过反射方法解析这些属性进行校验。但该种方法对每个接口都添加相应的DTO,并为每个字段添加注解,存在校验代码冗余的问题,如果参数字段数量多,存在添加注解的效率低以及校验效率低的问题。

发明内容

本发明提供了一种接口参数校验方法、装置、设备及存储介质,用于提高接口参数校验效率,以及降低接口参数校验代码的冗余性。

为实现上述目的,本发明第一方面提供了一种接口参数校验方法,包括:当接收到文件上传请求时,按照所述文件上传请求获取多个接口参数文档,基于每个接口参数文档的参数配置信息确定每个接口参数文档对应的已验证参数信息,得到多个参数验证信息,并对所述多个参数验证信息进行缓存;当接收到规则配置请求时,根据所述规则配置请求确定多个目标接口标识信息,并通过面向切面编程对所述多个目标接口标识信息分别设置参数校验规则;当接收到接口调用请求时,利用所述接口调用请求确定目标调用接口和待校验入参信息,通过所述面向切面编程拦截所述目标调用接口,并获取所述目标调用接口对应的目标参数验证信息;通过所述参数校验规则和所述目标参数验证信息对所述待校验入参信息进行参数校验,得到校验结果,当所述校验结果为校验通过时,执行所述目标调用接口对应的待调用函数,得到执行结果,并将所述执行结果发送至目标终端。

可选的,在本发明第一方面的第一种实现方式中,所述当接收到文件上传请求时,按照所述文件上传请求获取多个接口参数文档,基于每个接口参数文档的参数配置信息确定每个接口参数文档对应的已验证参数信息,得到多个参数验证信息,并对所述多个参数验证信息进行缓存,包括:当接收到文件上传请求时,解析所述文件上传请求,得到多个接口参数文档,并将所述多个接口参数文档存储至预设验证队列中,每个接口参数文档包括对应的接口标识信息;通过所述预设验证队列按照队列顺序读取每个接口参数文档,并调用与每个接口参数文档匹配的参数模板,对每个接口参数文档中的参数配置信息进行解析验证,得到多个验证结果;当任意一个验证结果为验证不通过时,确定文件上传失败,并将验证未通过的接口参数文档记录到关系数据库中;当所述多个验证结果为全部校验通过时,从每个接口参数文档的参数配置信息中获取每个接口参数文档对应的已验证参数信息;按照预设数据格式对每个接口参数文档对应的已验证参数信息进行数据封装,得到多个接口参数文档对应的封装参数信息;对所述多个接口参数文档对应的封装参数信息与所述对应的接口标识信息进行映射,得到多个参数验证信息,将所述多个参数验证信息更新至预设数据库中,所述预设数据库包括内存数据库和关系数据库。

可选的,在本发明第一方面的第二种实现方式中,所述当接收到规则配置请求时,根据所述规则配置请求确定多个目标接口标识信息,并通过面向切面编程对所述多个目标接口标识信息分别设置参数校验规则,包括:当接收到规则配置请求时,对所述规则配置请求进行参数解析,得到接口存储目录信息,并按照所述接口存储目录信息从所述预设数据库中查询多个目标接口标识信息和参数校验规则;通过面向切面编程创建框架切面,并将所述目标接口标识信息与所述参数校验规则关联配置在所述spring切面中。

可选的,在本发明第一方面的第三种实现方式中,所述当接收到接口调用请求时,利用所述接口调用请求确定目标调用接口和待校验入参信息,通过所述面向切面编程拦截所述目标调用接口,并获取所述目标调用接口对应的目标参数验证信息,包括:当接收到接口调用请求时,解析所述接口调用请求,得到目标调用接口和待校验入参信息;在所述spring切面中拦截所述目标调用接口对应的待调用函数,并从所述内存数据库中查询所述目标调用接口对应的初始参数验证信息;判断所述初始参数验证信息是否为空值;若所述初始参数验证信息为空值,则从所述关系数据库中读取所述目标调用接口对应的目标参数配置信息,并将所述目标参数配置信息缓存至所述内存数据库中;若所述初始参数验证信息不为空值,则将所述初始参数验证信息设置为所述目标调用接口对应的目标参数配置信息。

可选的,在本发明第一方面的第四种实现方式中,所述通过所述参数校验规则和所述目标参数验证信息对所述待校验入参信息进行参数校验,得到校验结果,当所述校验结果为校验通过时,执行所述目标调用接口对应的待调用函数,得到执行结果,并将所述执行结果发送至目标终端,包括:对所述待校验入参信息按照预设数据格式进行数据解析,得到多个键值对信息;调用所述参数校验规则,按照所述目标参数验证信息分别对每个键值对信息进行入参校验;当任意一个键值对信息校验不通过时,则生成提示信息,并向目标终端返回提示信息,所述提示信息用于提示目标调用接口的入参配置存在异常;当所述多个键值对信息全部校验通过时,通过所述面向切面编程执行所述目标调用接口对应的待调用函数,得到执行结果,并将所述执行结果发送至目标终端。

可选的,在本发明第一方面的第五种实现方式中,在所述当接收到文件上传请求时,按照所述文件上传请求获取多个接口参数文档,基于每个接口参数文档的参数配置信息确定每个接口参数文档对应的已验证参数信息,得到多个参数验证信息,并对所述多个参数验证信息进行缓存之前,所述接口参数校验方法还包括:接收接口参数配置请求,从所述接口参数配置请求中提取待配置参数信息;对所述待配置参数信息进行数据解析封装,得到已转换的参数数据集,并基于所述已转换的参数数据集生成导出文件。

可选的,在本发明第一方面的第六种实现方式中,在所述通过所述参数校验规则和所述目标参数验证信息对所述待校验入参信息进行参数校验,得到校验结果,当所述校验结果为校验通过时,执行所述目标调用接口对应的待调用函数,得到执行结果,并将所述执行结果发送至目标终端之后,所述接口参数校验方法还包括:当所述执行结果为执行失败时,按照预设重试次数重新执行所述目标调用接口对应的待调用函数,得到重试结果,并将所述重试结果发送至所述目标终端;从所述执行结果或者所述重试结果中获取执行失败信息,并对所述执行失败信息记录到预设的操作日志中。

本发明第二方面提供了一种接口参数校验装置,包括:获取模块,当接收到文件上传请求时,用于按照所述文件上传请求获取多个接口参数文档,基于每个接口参数文档的参数配置信息确定每个接口参数文档对应的已验证参数信息,得到多个参数验证信息,并对所述多个参数验证信息进行缓存;设置模块,当接收到规则配置请求时,用于根据所述规则配置请求确定多个目标接口标识信息,并通过面向切面编程对所述多个目标接口标识信息分别设置参数校验规则;拦截模块,当接收到接口调用请求时,用于利用所述接口调用请求确定目标调用接口和待校验入参信息,通过所述面向切面编程拦截所述目标调用接口,并获取所述目标调用接口对应的目标参数验证信息;校验模块,用于通过所述参数校验规则和所述目标参数验证信息对所述待校验入参信息进行参数校验,得到校验结果,当所述校验结果为校验通过时,执行所述目标调用接口对应的待调用函数,得到执行结果,并将所述执行结果发送至目标终端。

可选的,在本发明第二方面的第一种实现方式中,所述获取模块具体用于:当接收到文件上传请求时,解析所述文件上传请求,得到多个接口参数文档,并将所述多个接口参数文档存储至预设验证队列中,每个接口参数文档包括对应的接口标识信息;通过所述预设验证队列按照队列顺序读取每个接口参数文档,并调用与每个接口参数文档匹配的参数模板,对每个接口参数文档中的参数配置信息进行解析验证,得到多个验证结果;当任意一个验证结果为验证不通过时,确定文件上传失败,并将验证未通过的接口参数文档记录到关系数据库中;当所述多个验证结果为全部校验通过时,从每个接口参数文档的参数配置信息中获取每个接口参数文档对应的已验证参数信息;按照预设数据格式对每个接口参数文档对应的已验证参数信息进行数据封装,得到多个接口参数文档对应的封装参数信息;对所述多个接口参数文档对应的封装参数信息与所述对应的接口标识信息进行映射,得到多个参数验证信息,将所述多个参数验证信息更新至预设数据库中,所述预设数据库包括内存数据库和关系数据库。

可选的,在本发明第二方面的第二种实现方式中,所述设置模块具体用于:当接收到规则配置请求时,对所述规则配置请求进行参数解析,得到接口存储目录信息,并按照所述接口存储目录信息从所述预设数据库中查询多个目标接口标识信息和参数校验规则;通过面向切面编程创建框架切面,并将所述目标接口标识信息与所述参数校验规则关联配置在所述spring切面中。

可选的,在本发明第二方面的第三种实现方式中,所述拦截模块具体用于:当接收到接口调用请求时,解析所述接口调用请求,得到目标调用接口和待校验入参信息;在所述spring切面中拦截所述目标调用接口对应的待调用函数,并从所述内存数据库中查询所述目标调用接口对应的初始参数验证信息;判断所述初始参数验证信息是否为空值;若所述初始参数验证信息为空值,则从所述关系数据库中读取所述目标调用接口对应的目标参数配置信息,并将所述目标参数配置信息缓存至所述内存数据库中;若所述初始参数验证信息不为空值,则将所述初始参数验证信息设置为所述目标调用接口对应的目标参数配置信息。

可选的,在本发明第二方面的第四种实现方式中,所述校验模块具体用于:对所述待校验入参信息按照预设数据格式进行数据解析,得到多个键值对信息;调用所述参数校验规则,按照所述目标参数验证信息分别对每个键值对信息进行入参校验;当任意一个键值对信息校验不通过时,则生成提示信息,并向目标终端返回提示信息,所述提示信息用于提示目标调用接口的入参配置存在异常;当所述多个键值对信息全部校验通过时,通过所述面向切面编程执行所述目标调用接口对应的待调用函数,得到执行结果,并将所述执行结果发送至目标终端。

可选的,在本发明第二方面的第五种实现方式中,所述接口参数校验装置还包括:提取模块,用于接收接口参数配置请求,从所述接口参数配置请求中提取待配置参数信息;导出模块,用于对所述待配置参数信息进行数据解析封装,得到已转换的参数数据集,并基于所述已转换的参数数据集生成导出文件。

可选的,在本发明第二方面的第六种实现方式中,所述接口参数校验装置还包括:重试模块,当所述执行结果为执行失败时,用于按照预设重试次数重新执行所述目标调用接口对应的待调用函数,得到重试结果,并将所述重试结果发送至所述目标终端;记录模块,用于从所述执行结果或者所述重试结果中获取执行失败信息,并对所述执行失败信息记录到预设的操作日志中。

本发明第三方面提供了一种接口参数校验设备,包括:存储器和至少一个处理器,所述存储器中存储有指令;所述至少一个处理器调用所述存储器中的所述指令,以使得所述接口参数校验设备执行上述的接口参数校验方法。

本发明的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述的接口参数校验方法。

本发明提供的技术方案中,当接收到文件上传请求时,按照所述文件上传请求获取多个接口参数文档,基于每个接口参数文档的参数配置信息确定每个接口参数文档对应的已验证参数信息,得到多个参数验证信息,并对所述多个参数验证信息进行缓存;当接收到规则配置请求时,根据所述规则配置请求确定多个目标接口标识信息,并通过面向切面编程对所述多个目标接口标识信息分别设置参数校验规则;当接收到接口调用请求时,利用所述接口调用请求确定目标调用接口和待校验入参信息,通过所述面向切面编程拦截所述目标调用接口,并获取所述目标调用接口对应的目标参数验证信息;通过所述参数校验规则和所述目标参数验证信息对所述待校验入参信息进行参数校验,得到校验结果,当所述校验结果为校验通过时,执行所述目标调用接口对应的待调用函数,得到执行结果,并将所述执行结果发送至目标终端。本发明实施例中,通过解析多个接口参数文档以获取接口的参数配置信息,通过面向切面编程,对多个接口设置统一的接口参数校验规则,实现对接口参数校验和接口开发的标准化处理,同时将异常的参数进行拦截,避免参数异常导致代码运行错误,便于接口参数的维护和管理,提高了接口参数的校验效率与维护效率,并降低了接口参数校验代码的冗余性。

附图说明

图1为本发明实施例中接口参数校验方法的一个实施例示意图;

图2为本发明实施例中接口参数校验方法的另一个实施例示意图;

图3为本发明实施例中接口参数校验装置的一个实施例示意图;

图4为本发明实施例中接口参数校验装置的另一个实施例示意图;

图5为本发明实施例中接口参数校验设备的一个实施例示意图。

具体实施方式

本发明实施例提供了一种接口参数校验方法、装置、设备及存储介质,用于通过解析多个接口参数文档以获取接口的参数配置信息,通过面向切面编程,对多个接口设置统一的接口参数校验规则,提高了接口参数的校验效率与接口维护效率。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”或“具有”及其任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为便于理解,下面对本发明实施例的具体流程进行描述,请参阅图1,本发明实施例中接口参数校验方法的一个实施例包括:

101、当接收到文件上传请求时,按照文件上传请求获取多个接口参数文档,基于每个接口参数文档的参数配置信息确定每个接口参数文档对应的已验证参数信息,得到多个参数验证信息,并对多个参数验证信息进行缓存。

其中,各接口参数文档为预先按照预置文档参数模板设置的参数校验场景定义文件,包括对应的接口入参参数信息,也就是对应的参数配置信息,包括字段标识、字段名称、字段类型、字段长度以及是否为必填项,还可以包括其他参数项,具体此处不做限定。各接口参数文档的文件扩展名可以为.xls,也可以为.xlsx,具体此处不做限定。

具体的,服务器接收多个接口参数文档上传请求,并按照多个接口参数文档上传请求分别解析对应的接口参数文档,得到对应的参数配置信息;服务器获取预设的参数模板,并按照预设的参数模板对每个接口参数文档的参数配置信息进行参数格式和空值验证,当确定对应的参数配置信息全部正确时,得到多个参数验证信息,并将多个参数验证信息存储至内存数据库中,内存数据库可以为远程服务字典redis或者映射map,以键值对形式进行数据存储,还可以为其他数据库,具体此处不做限定。

可以理解的是,本发明的执行主体可以为接口参数校验装置,还可以是终端或者服务器,具体此处不做限定。本发明实施例以服务器为执行主体为例进行说明。

102、当接收到规则配置请求时,根据规则配置请求确定多个目标接口标识信息,并通过面向切面编程对多个目标接口标识信息分别设置参数校验规则。

其中,面向切面编程(aspect oriented programming,AOP)用于按照预编译方式和运行期动态代理实现程序功能的统一维护。在日常开发当中经常用来记录日志、函数跟踪、事务和权限。不需要为每个接口都添加相同的校验函数,减少冗余代码。

具体的,当接收到规则配置请求时,服务器从规则配置请求中确定多个目标接口标识信息;服务器按照多个目标接口标识信息从预设配置信息表中获取多个预设接口;服务器通过面向切面编程创建框架spring切面,并将多个预设接口分别对应的相同校验代码设置在spring切面中,得到参数校验规则。

103、当接收到接口调用请求时,利用接口调用请求确定目标调用接口和待校验入参信息,通过面向切面编程拦截目标调用接口,并获取目标调用接口对应的目标参数验证信息。

其中,接口调用请求与目标接口一一对应的,调用接口请求中可以包括目标接口的标识信息,例如,调用接口请求包括目标接口的名称信息或者目标接口的地址信息,具体此处不做限定。具体的,当服务器接收到接口调用请求时,服务器解析接口调用请求,得到目标调用接口和待校验入参信息;服务器通过面向切面编程拦截目标调用接口;服务器从内存数据库中读取与目标调用接口对应的目标参数验证信息。需要说明的是,服务器根据接口调用请求从内存数据库中读取目标接口对应的参数配置信息,提高了数据处理效率。

104、通过参数校验规则和目标参数验证信息对待校验入参信息进行参数校验,得到校验结果,当校验结果为校验通过时,执行目标调用接口对应的待调用函数,得到执行结果,并将执行结果发送至目标终端。

其中,待校验入参信息可以采用预设数据格式进行组装,预设数据格式可以为JS对象简谱(javascript object notation,JSON)格式,也可以为另一种标记语言YAML格式,具体此处不做限定。

具体的,服务器通过参数校验规则将目标参数验证信息和待校验入参信息进行参数一一比对,得到校验结果;当任意一个参数校验失败时,服务器确定校验结果为校验未通过;当全部参数校验成功时,服务器确定校验结果为校验通过,当校验结果为校验通过时,执行目标调用接口对应的待调用函数,得到执行结果;服务器对执行结果进行数据封装,得到已封装数据;服务器调用预设的接口,并将已封装数据发送至目标终端。

本发明实施例中,通过解析多个接口参数文档以获取接口的参数配置信息,通过面向切面编程,对多个接口设置统一的接口参数校验规则,实现对接口参数校验和接口开发的标准化处理,同时将异常的参数进行拦截,避免参数异常导致代码运行错误,便于接口参数的维护和管理,提高了接口参数的校验效率与维护效率,并降低了接口参数校验代码的冗余性。

请参阅图2,本发明实施例中接口参数校验方法的另一个实施例包括:

201、当接收到文件上传请求时,按照文件上传请求获取多个接口参数文档,基于每个接口参数文档的参数配置信息确定每个接口参数文档对应的已验证参数信息,得到多个参数验证信息,并对多个参数验证信息进行缓存。

其中,各接口参数文档为对应的参数配置信息为预先设置的字段定义信息,各接口参数文档的每行对应一个入参字段。可选的,各接口参数文档中的第一列为字段标识,字段标识对应的属性值可以为单层结构,也可以为多层结构,多层结构用“.”进行字符串拼接。比如busiData.records.idNo;各接口参数文档中的第二列为字段名称,字段名称对应的属性值可以为中文字符,也可以为英文字符,例如,字段名称为“授权代码”。各接口参数文档中的第三列为字段类型,比如字符串string、整型integer、浮点型float、时间戳类型timestamp、布尔型boolean。各接口参数文档中的第四列为字段长度(最大长度),若字段类型为string,则需填写该列。各接口参数文档中的第五列为约束,也就是必填标识(是否必填)。例如,服务器可采用R表示必填,服务器可采用O表示非必填。各接口参数文档还可以为包括说明信息,用于描述各参数(字段)的详情,具体此处不做限定。

可选的,当接收到文件上传请求时,服务器解析文件上传请求,得到多个接口参数文档,并将多个接口参数文档存储至预设验证队列中,每个接口参数文档包括对应的接口标识信息;服务器通过预设验证队列按照队列顺序读取每个接口参数文档,并调用与每个接口参数文档匹配的参数模板,对每个接口参数文档中的参数配置信息进行解析验证,得到多个验证结果;当任意一个验证结果为验证不通过时,服务器确定文件上传失败,并将验证未通过的接口参数文档记录到关系数据库中;当多个验证结果为全部校验通过时,服务器从每个接口参数文档的参数配置信息中获取每个接口参数文档对应的已验证参数信息;服务器按照预设数据格式对每个接口参数文档对应的已验证参数信息进行数据封装,得到多个接口参数文档对应的封装参数信息;服务器对多个接口参数文档对应的封装参数信息与对应的接口标识信息进行映射,得到多个参数验证信息,将多个参数验证信息更新至预设数据库中,预设数据库包括内存数据库和关系数据库。

进一步地,服务器获取匹配的参数模板,服务器校验对应的参数配置信息中的表头名称与表头顺序是否分别与匹配的参数模板一致,当校验对应的参数配置信息中的表头名称与表头顺序分别与匹配的参数模板一致时,遍历对应的参数配置信息,服务器判断对应的参数配置信息是否存在异常配置信息,当对应的参数配置信息不存在异常配置信息时,服务器确定对应的参数配置信息全部正确,得到多个参数验证信息,服务器将多个参数验证信息存储到内存数据库中。其中,内存数据库可以为redis,也可以为memcache,具体此处不做限定。进一步地,服务器还可以存储在关系型数据库中,具体此处不做限定。

进一步地,服务器接收接口参数配置请求,服务器从接口参数配置请求中提取待配置参数信息;服务器对待配置参数信息进行数据解析封装,得到已转换的参数数据集,并基于已转换的参数数据集生成导出文件(包括多个接口参数文档)。

202、当接收到规则配置请求时,根据规则配置请求确定多个目标接口标识信息,并通过面向切面编程对多个目标接口标识信息分别设置参数校验规则。

其中,对于规则配置请求,多个目标接口标识信息设置相同的参数校验规则,降低了校验代码冗余性。可选的,当服务器接收到规则配置请求时,服务器对规则配置请求进行参数解析,得到接口存储目录信息,并按照接口存储目录信息从预设数据库中查询多个目标接口标识信息和参数校验规则;服务器通过面向切面编程创建框架切面,并将目标接口标识信息与参数校验规则关联配置在spring切面中。

203、当服务器接收到接口调用请求时,利用接口调用请求确定目标调用接口和待校验入参信息,通过面向切面编程拦截目标调用接口,并获取目标调用接口对应的目标参数验证信息。

其中,接口调用请求包括接口标识信息、接口调用信息、接口地址信息、接口函数信息、接口入参信息和接口返回值信息,接口信息还可以包括其他信息,具体此处不做限定。可选的,当服务器接收到接口调用请求时,服务器解析接口调用请求,得到目标调用接口和待校验入参信息;服务器在spring切面中拦截目标调用接口对应的待调用函数,并从内存数据库中查询目标调用接口对应的初始参数验证信息,其中,对应的初始参数验证信息包括目标接口对应的所有已配置的字段信息,包括是否必填、字段类型和字段长度,还可以为自定义的其他配置信息,具体此处不做限定;服务器判断初始参数验证信息是否为空值;若初始参数验证信息为空值,则服务器从关系数据库中读取目标调用接口对应的目标参数配置信息,并将目标参数配置信息缓存至内存数据库中;若初始参数验证信息不为空值,则服务器将初始参数验证信息设置为目标调用接口对应的目标参数配置信息。

例如,已上传接口参数文档interface_document.xlsx,接口参数文档中的字段信息已预先保存在内存数据库中。当服务器接收到调用该目标调用接口的请求时,服务器先解析接口入参报文(例如,JSON格式),得到所有参数字段的键key和值value(待校验入参信息),其中,key包含父子机构关系,比如组织机构代码参数为header.orgCode;然后服务器将待校验入参信息存入内存map中;其次,服务器从预设数据库中读取出该目标调用接口对应的目标参数验证信息,也就是,上传的接口参数文档对应的已验证通过的参数配置信息。

204、通过参数校验规则和目标参数验证信息对待校验入参信息进行参数校验,得到校验结果,当校验结果为校验通过时,执行目标调用接口对应的待调用函数,得到执行结果,并将执行结果发送至目标终端。

其中,执行结果包括执行成功和执行失败。可选的,服务器对待校验入参信息按照预设数据格式进行数据解析,得到多个键值对信息;服务器调用参数校验规则,按照目标参数验证信息分别对每个键值对信息进行入参校验;当任意一个键值对信息校验不通过时,则服务器生成提示信息,并向目标终端返回提示信息,提示信息用于提示目标调用接口的入参配置存在异常;当多个键值对信息全部校验通过时,服务器通过面向切面编程执行目标调用接口对应的待调用函数,得到执行结果,并将执行结果发送至目标终端。需要说明的是,服务器获取将各键值对信息与对应的参数配置信息中各参数字段一一匹配。

例如,参数字段header.orgCode,为字符串string类型,长度为24,必填。首先,服务器在缓存的目标参数验证信息中查询是否有该参数字段;若目标参数验证信息中不存在该参数字段,则服务器确定header.orgCode的必填属性校验失败,进而服务器确定任意一个键值对信息校验不通过。若目标参数验证信息中存在该参数字段,则服务器从目标参数验证信息中读取其value,服务器采用预设关键字函数instance of校验value的类型是否为string类型;若value的类型不为string类型,则服务器确定参数类型校验失败;若value的类型为string类型,则服务器再进一步判断value的长度是否大于24;若参数value的长度大于24,则服务器确定参数长度校验失败。若校验成功,则服务器确定该参数字段校验通过。服务器继续按照这个校验逻辑逐个校验待校验入参信息中的其他参数字段。若所有参数字段都校验通过(多个键值对信息全部校验通过),则服务器确定该接口请求的入参校验通过。若存在一个校验失败,则服务确定接口入参校验失败(任意一个键值对信息校验不通过)。

进一步地,服务器在执行目标接口对应的待调用函数的过程中,服务器还可以通过面向切面编程从目标接口对应的待调用函数的返回数据中进行数据封装,得到成功报文此信息或者失败报文信息,得到执行结果,其中,执行结果包括执行成功和执行失败。当执行结果包括执行失败时,服务器执行步骤205。

205、当执行结果为执行失败时,按照预设重试次数重新执行目标调用接口对应的待调用函数,得到重试结果,并将重试结果发送至目标终端。

其中,预设重试次数为正整数,例如,预设重试次数为3。也就是,当执行结果为执行失败时,服务器按照预设重试次数重新执行目标调用接口对应的待调用函数,直到预设重试次数大于预设次数阈值时,服务器确定重试流程结束,得到重试结果,并将重试结果发送至目标终端。进一步地,当重试结果为执行失败时,服务器生成并发送预警信息到目标终端。服务器调用重试策略提高了接口访问请求的成功率,以及减少拦截机制执行,提高了接口访问处理效率。

206、从执行结果或者重试结果中获取执行失败信息,并对执行失败信息记录到预设的操作日志中。

进一步地,在服务器检测到执行结果或者重试结果为执行失败时,服务器对调用接口请求进行报文打印,并生成对应的日志信息,记录对应的日志信息至预设的操作日志中,以使得目标人员按照对应的日志信息进行数据异常排查处理。

本发明实施例中,通过解析多个接口参数文档以获取接口的参数配置信息,通过面向切面编程,对多个接口设置统一的接口参数校验规则,实现对接口参数校验和接口开发的标准化处理,同时将异常的参数进行拦截,避免参数异常导致代码运行错误,便于接口参数的维护和管理,提高了接口参数的校验效率与维护效率,并降低了接口参数校验代码的冗余性。

上面对本发明实施例中接口参数校验方法进行了描述,下面对本发明实施例中接口参数校验装置进行描述,请参阅图3,本发明实施例中接口参数校验装置的一个实施例包括:

获取模块301,当接收到文件上传请求时,用于按照文件上传请求获取多个接口参数文档,基于每个接口参数文档的参数配置信息确定每个接口参数文档对应的已验证参数信息,得到多个参数验证信息,并对多个参数验证信息进行缓存;

设置模块302,当接收到规则配置请求时,用于根据规则配置请求确定多个目标接口标识信息,并通过面向切面编程对多个目标接口标识信息分别设置参数校验规则;

拦截模块303,当接收到接口调用请求时,用于利用接口调用请求确定目标调用接口和待校验入参信息,通过面向切面编程拦截目标调用接口,并获取目标调用接口对应的目标参数验证信息;

校验模块304,用于通过参数校验规则和目标参数验证信息对待校验入参信息进行参数校验,得到校验结果,当校验结果为校验通过时,执行目标调用接口对应的待调用函数,得到执行结果,并将执行结果发送至目标终端。

进一步地,将多个参数验证信息存储于区块链数据库中,具体此处不做限定。

本发明实施例中,通过解析多个接口参数文档以获取接口的参数配置信息,通过面向切面编程,对多个接口设置统一的接口参数校验规则,实现对接口参数校验和接口开发的标准化处理,同时将异常的参数进行拦截,避免参数异常导致代码运行错误,便于接口参数的维护和管理,提高了接口参数的校验效率与维护效率,并降低了接口参数校验代码的冗余性。

请参阅图4,本发明实施例中接口参数校验装置的另一个实施例包括:

获取模块301,当接收到文件上传请求时,用于按照文件上传请求获取多个接口参数文档,基于每个接口参数文档的参数配置信息确定每个接口参数文档对应的已验证参数信息,得到多个参数验证信息,并对多个参数验证信息进行缓存;

设置模块302,当接收到规则配置请求时,用于根据规则配置请求确定多个目标接口标识信息,并通过面向切面编程对多个目标接口标识信息分别设置参数校验规则;

拦截模块303,当接收到接口调用请求时,用于利用接口调用请求确定目标调用接口和待校验入参信息,通过面向切面编程拦截目标调用接口,并获取目标调用接口对应的目标参数验证信息;

校验模块304,用于通过参数校验规则和目标参数验证信息对待校验入参信息进行参数校验,得到校验结果,当校验结果为校验通过时,执行目标调用接口对应的待调用函数,得到执行结果,并将执行结果发送至目标终端。

可选的,获取模块301还可以具体用于:

当接收到文件上传请求时,解析文件上传请求,得到多个接口参数文档,并将多个接口参数文档存储至预设验证队列中,每个接口参数文档包括对应的接口标识信息;

通过预设验证队列按照队列顺序读取每个接口参数文档,并调用与每个接口参数文档匹配的参数模板,对每个接口参数文档中的参数配置信息进行解析验证,得到多个验证结果;

当任意一个验证结果为验证不通过时,确定文件上传失败,并将验证未通过的接口参数文档记录到关系数据库中;

当多个验证结果为全部校验通过时,从每个接口参数文档的参数配置信息中获取每个接口参数文档对应的已验证参数信息;

按照预设数据格式对每个接口参数文档对应的已验证参数信息进行数据封装,得到多个接口参数文档对应的封装参数信息;

对多个接口参数文档对应的封装参数信息与对应的接口标识信息进行映射,得到多个参数验证信息,将多个参数验证信息更新至预设数据库中,预设数据库包括内存数据库和关系数据库。

可选的,设置模块302还具体用于:

当接收到规则配置请求时,对规则配置请求进行参数解析,得到接口存储目录信息,并按照接口存储目录信息从预设数据库中查询多个目标接口标识信息和参数校验规则;

通过面向切面编程创建框架切面,并将目标接口标识信息与参数校验规则关联配置在spring切面中。

可选的,拦截模块303还具体用于:

当接收到接口调用请求时,解析接口调用请求,得到目标调用接口和待校验入参信息;

在spring切面中拦截目标调用接口对应的待调用函数,并从内存数据库中查询目标调用接口对应的初始参数验证信息;

判断初始参数验证信息是否为空值;

若初始参数验证信息为空值,则从关系数据库中读取目标调用接口对应的目标参数配置信息,并将目标参数配置信息缓存至内存数据库中;

若初始参数验证信息不为空值,则将初始参数验证信息设置为目标调用接口对应的目标参数配置信息。

可选的,校验模块304还可以具体用于:

对待校验入参信息按照预设数据格式进行数据解析,得到多个键值对信息;

调用参数校验规则,按照目标参数验证信息分别对每个键值对信息进行入参校验;

当任意一个键值对信息校验不通过时,则生成提示信息,并向目标终端返回提示信息,提示信息用于提示目标调用接口的入参配置存在异常;

当多个键值对信息全部校验通过时,通过面向切面编程执行目标调用接口对应的待调用函数,得到执行结果,并将执行结果发送至目标终端。

可选的,接口参数校验装置还包括:

提取模块305,用于接收接口参数配置请求,从接口参数配置请求中提取待配置参数信息;

导出模块306,用于对待配置参数信息进行数据解析封装,得到已转换的参数数据集,并基于已转换的参数数据集生成导出文件。

可选的,接口参数校验装置还包括:

重试模块307,当执行结果为执行失败时,用于按照预设重试次数重新执行目标调用接口对应的待调用函数,得到重试结果,并将重试结果发送至目标终端;

记录模块308,用于从执行结果或者所述重试结果中获取执行失败信息,并对执行失败信息记录到预设的操作日志中。

本发明实施例中,通过解析多个接口参数文档以获取接口的参数配置信息,通过面向切面编程,对多个接口设置统一的接口参数校验规则,实现对接口参数校验和接口开发的标准化处理,同时将异常的参数进行拦截,避免参数异常导致代码运行错误,便于接口参数的维护和管理,提高了接口参数的校验效率与维护效率,并降低了接口参数校验代码的冗余性。

上面图3和图4从模块化的角度对本发明实施例中的接口参数校验装置进行详细描述,下面从硬件处理的角度对本发明实施例中接口参数校验设备进行详细描述。

图5是本发明实施例提供的一种接口参数校验设备的结构示意图,该接口参数校验设备500可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)510(例如,一个或一个以上处理器)和存储器520,一个或一个以上存储应用程序533或数据532的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器520和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对接口参数校验设备500中的一系列指令操作。更进一步地,处理器510可以设置为与存储介质530通信,在接口参数校验设备500上执行存储介质530中的一系列指令操作。

接口参数校验设备500还可以包括一个或一个以上电源540,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口560,和/或,一个或一个以上操作系统531,例如Windows Serve,Mac OS X,Unix,Linux,FreeBSD等等。本领域技术人员可以理解,图5示出的接口参数校验设备结构并不构成对接口参数校验设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

本发明还提供一种计算机可读存储介质,该计算机可读存储介质可以为非易失性计算机可读存储介质,该计算机可读存储介质也可以为易失性计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行所述接口参数校验方法的步骤。

本发明还提供一种接口参数校验设备,所述接口参数校验设备包括存储器和处理器,存储器中存储有指令,所述指令被处理器执行时,使得处理器执行上述每个实施例中的所述接口参数校验方法的步骤。

进一步地,所述计算机可读存储介质可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据区块链节点的使用所创建的数据等。

本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明每个个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等每个种可以存储程序代码的介质。

以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述每个实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明每个实施例技术方案的精神和范围。

技术分类

06120112297212