CN116431379A - 一种数据校验方法及系统 - Google Patents
一种数据校验方法及系统 Download PDFInfo
- Publication number
- CN116431379A CN116431379A CN202210003125.4A CN202210003125A CN116431379A CN 116431379 A CN116431379 A CN 116431379A CN 202210003125 A CN202210003125 A CN 202210003125A CN 116431379 A CN116431379 A CN 116431379A
- Authority
- CN
- China
- Prior art keywords
- data
- verification
- interface
- rule
- parameter
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013524 data verification Methods 0.000 title claims abstract description 75
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000012795 verification Methods 0.000 claims abstract description 173
- 238000004458 analytical method Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 238000013507 mapping Methods 0.000 claims description 9
- 230000008878 coupling Effects 0.000 abstract description 11
- 238000010168 coupling process Methods 0.000 abstract description 11
- 238000005859 coupling reaction Methods 0.000 abstract description 11
- 238000012545 processing Methods 0.000 abstract description 9
- 238000012423 maintenance Methods 0.000 abstract description 8
- 238000011161 development Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000010200 validation analysis Methods 0.000 description 3
- 239000000470 constituent Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种数据校验方法及系统,该方法包括:通过目标数据接口,获取待校验参数;根据所述目标数据接口的接口信息,确定所述待校验参数对应的校验规则,其中,所述校验规则是由存储在中间件的校验规则数据生成的;根据所述校验规则,对所述待校验参数进行校验,得到数据校验结果。本发明通过将预先构建的校验规则存储入中间件,在接口请求时,通过对参数和接口进行解析,确定相应的校验规则对参数进行校验,降低了参数校验与业务处理之间的耦合性,降低了参数校验的复杂度,提高了业务开发和数据校验效率,减少了维护成本。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据校验方法及系统。
背景技术
在分布式系统中,各种应用程序接口(Application Programming Interface,简称API),如dubbo、RESTful等,为了避免出现脏数据和恶意攻击等情况,必须要把参数对象中的每个参数做校验,从而需要对接口参数设计必要的校验规则逻辑。
现有针对应用程序接口的数据校验存在多种方式,例如,dubbo接口需要在代码中,通过手动的方式,实现对必要参数设置校验逻辑;或者,在RESTful中,使用SpirngValidation对参数进行校验。
然而,在现有的数据校验方法中,手动实现逐个参数的校验,费时费力,且代码冗长,校验逻辑与业务逻辑强耦合,以至于项目难以维护;若使用Spirng Validation进行校验,则要求在每个实体对象中增加注解实现,但是分布式项目对于实体、业务是分模块管理的,且实体类大多具有通用特点,但是增加单个接口的注解校验,不具备通用特点。由此可知,现有应用程序接口的数据校验过程繁琐,且复杂度较高,导致数据校验效率降低。
发明内容
针对现有技术存在的问题,本发明提供一种数据校验方法及系统。
本发明提供一种数据校验方法,包括:
通过目标数据接口,获取待校验参数;
根据所述目标数据接口的接口信息,确定所述待校验参数对应的校验规则,其中,所述校验规则是由存储在中间件的校验规则数据生成的;
根据所述校验规则,对所述待校验参数进行校验,得到数据校验结果。
根据本发明提供的一种数据校验方法,所述校验规则通过以下步骤得到:
基于预设校验规则存储格式,根据每个数据接口的接口信息和每种业务对应参数的数据结构类型,构建校验规则数据;
根据所述校验规则数据,配置对应的预设校验规则;
将所述校验规则数据和所述预设校验规则存储至中间件,以使得所述中间件基于所述校验规则数据与预设校验规则之间的映射关系,为每个数据接口对应的业务配置校验规则。
根据本发明提供的一种数据校验方法,所述预设校验规则存储格式为JSON格式。
根据本发明提供的一种数据校验方法,所述根据所述目标数据接口的接口信息,确定所述待校验参数对应的校验规则,包括:
获取所述目标数据接口的接口信息,所述接口信息包括目标接口地址信息和目标接口类型信息;
获取待校验参数的目标数据结构类型;
将所述目标接口地址信息、所述目标接口类型信息和所述目标数据结构类型,与所述校验规则数据中的接口地址信息、接口类型信息和数据结构类型进行匹配,并通过匹配得到的校验规则数据,确定所述待校验参数对应的校验规则。
根据本发明提供的一种数据校验方法,所述方法还包括:
基于多种不同的数据接口,获取到多个相同的待校验参数;
根据每种数据接口的接口信息,确定多个不同的业务校验规则,其中,所述业务校验规则表示每个待校验参数对应不同数据接口的校验规则;
所述根据所述校验规则,对所述待校验参数进行校验,得到数据校验结果,包括:
根据不同数据接口对应的业务校验规则,对所述待校验参数进行校验,得到数据校验结果。
根据本发明提供的一种数据校验方法,在所述根据不同数据接口对应的业务校验规则,对所述待校验参数进行校验,得到数据校验结果之后,所述方法还包括:
若所有所述待校验参数通过校验,则判断所述待校验参数合法。
根据本发明提供的一种数据校验方法,所述中间件是通过Redis构建得到的。
本发明还提供一种数据校验系统,包括:
参数获取模块,用于通过目标数据接口,获取待校验参数;
校验规则解析模块,用于根据所述目标数据接口的接口信息,确定所述待校验参数对应的校验规则,其中,所述校验规则是由存储在中间件的校验规则数据生成的;
校验引擎模块,用于根据所述校验规则,对所述待校验参数进行校验,得到数据校验结果。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据校验方法的步骤。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据校验方法的步骤。
本发明提供的一种数据校验方法及系统,通过将预先构建的校验规则存储入中间件,在接口请求时,通过对参数和接口进行解析,确定相应的校验规则对参数进行校验,降低了参数校验与业务处理之间的耦合性,降低了参数校验的复杂度,提高了业务开发和数据校验效率,减少了维护成本。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的数据校验方法的流程示意图;
图2为本发明提供的数据校验方法的时序示意图;
图3为本发明提供的数据校验系统的结构示意图;
图4为本发明提供的数据校验系统的架构组件示意图;
图5为本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有参数校验插件,都是基于单体项目考虑设计的,对于实体和接口必须在同一项目中进行定义,如果分开定义,将会导致项目的依赖关系以及项目结构不清晰。而采用人工实现每个接口的校验逻辑设计,则会增加不必要的人工成本,且导致代码冗长,项目代码的耦合性大大增加,增加维护成本。
本发明通过基于JSON格式预先构建校验规则,并将校验规则数据存储入Redis中间件,在接口请求时,通过对参数和接口进行解析,确定相应的校验规则对参数进行校验。
图1为本发明提供的数据校验方法的流程示意图,如图1所示,本发明提供了一种数据校验方法,包括:
步骤101,通过目标数据接口,获取待校验参数。
在本发明中,以应用程序接口作为目标数据接口进行说明,应用程序接口又称为应用编程接口,是一组定义、程序及协议的集合,通过应用编程接口实现计算机软件之间的相互通信。应用编程接口的一个主要功能是提供通用功能集。良好的应用编程接口设计可以降低系统各部分的相互依赖,提高组成单元的内聚性,降低组成单元间的耦合程度,从而提高系统的可维护性和可扩展性。
进一步地,目标数据接口在接收到参数之后,需要对参数的合法性进行判断,因此将接收到的参数作为待校验参数进行校验,通过后续校验过程,在确定校验通过之后,才进一步完成业务调用。需要说明的是,本发明对校验规则的具体类型不作限定,可根据接口对应的相关业务进行设置,例如,对参数中的用户名、参数长度以及参数取值范围进行校验。
步骤102,根据所述目标数据接口的接口信息,确定所述待校验参数对应的校验规则,其中,所述校验规则是由存储在中间件的校验规则数据生成的。
在本发明中,首先确定目标数据接口的接口信息,包括但不限于接口地址信息和接口类型(例如,购物网站中卖家客户端和买家客户端的接口)等,并基于该接口信息以及待校验参数,与存储在中间件中的校验规则数据进行匹配。在本发明中,校验规则数据是根据已有校验规则解析得到的,通过解析,获取到相应的样本接口信息和样本参数,并将这些样本数据存储在中间件中,当目标数据接口接收到参数时,可根据存储在中间件中的校验规则与校验规则数据之间的映射关系,确定当前所需的校验规则。
步骤103,根据所述校验规则,对所述待校验参数进行校验,得到数据校验结果。
在本发明中,由于校验规则是通过中间件中配置文件获取得到的,实现了校验逻辑与业务代码的解耦,使得在对参数进行校验时,参数校验的代码与业务逻辑的代码不会混合在一起,从而根据该校验规则对参数进行校验,当校验通过之后,完成目标数据接口的业务调用。
本发明提供的数据校验方法,通过将预先构建的校验规则存储入中间件,在接口请求时,通过对参数和接口进行解析,确定相应的校验规则对参数进行校验,降低了参数校验与业务处理之间的耦合性,降低了参数校验的复杂度,提高了业务开发和数据校验效率,减少了维护成本。
在上述实施例的基础上,所述校验规则通过以下步骤得到:
基于预设校验规则存储格式,根据每个数据接口的接口信息和每种业务对应参数的数据结构类型,构建校验规则数据。
在本发明中,首先可通过接口开发人员以人工方式配置业务所需的预设校验规则,具体地,基于每个数据接口的接口地址信息、数据接口接收业务对应参数的数据结构类型(例如,参数长度、参数取值范围等),定义预期所需的校验规则数据。优选地,在上述实施例的基础上,所述预设校验规则存储格式为JSON格式,JSON格式作为一种轻量级的数据交换格式,在进行数据传输时具有更高的效率,降低网络的传输压力。
根据所述校验规则数据,配置对应的预设校验规则;
将所述校验规则数据和所述预设校验规则存储至中间件,以使得所述中间件基于所述校验规则数据与预设校验规则之间的映射关系,为每个数据接口对应的业务配置校验规则。
在本发明中,通过动态读取由接口开发人员预先配置的业务所需校验规则,解析该校验规则中的接口地址信息和业务对应参数的数据结构类型,通过对校验规则数据和预设校验规则进行映射关系配置,将得到的校验规则数据和对应的预设校验规则存储入中间件。优选地,在上述实施例的基础上,所述中间件是通过Redis构建得到的,Redis作为一种键值对数据库,支持多种数据结构,可满足分布式项目的要求,提供更加效率的集中存取,由于校验规则是通过Redis中间件获取得到的,使得校验代码与业务逻辑代码解耦,降低了参数校验与业务处理之间的耦合性。
在上述实施例的基础上,所述根据所述目标数据接口的接口信息,确定所述待校验参数对应的校验规则,包括:
获取所述目标数据接口的接口信息,所述接口信息包括目标接口地址信息和目标接口类型信息;
获取待校验参数的目标数据结构类型;
将所述目标接口地址信息、所述目标接口类型信息和所述目标数据结构类型,与所述校验规则数据中的接口地址信息、接口类型信息和数据结构类型进行匹配,并通过匹配得到的校验规则数据,确定所述待校验参数对应的校验规则。
在本发明中,在目标数据接口接收到参数之后,获取该接口的目标接口地址信息和目标接口类型信息,同时,获取待校验参数的目标数据结构类型;进一步地,通过对Redis中间件中已保存的预设校验规则进行解析,将解析得到校验规则数据中的接口地址信息、接口类型信息和数据结构类型,与目标数据接口处获取到的目标接口信息和目标数据结构类型进行匹配,若待校验参数的接口信息与数据结构类型,与中间件已保存的某个校验规则数据中的接口信息和数据结构类型相同,则选取这个校验规则数据对应的预设校验规则,确定为目标数据接口当前接收到的参数所需的校验规则。
在上述实施例的基础上,所述方法还包括:
基于多种不同的数据接口,获取到多个相同的待校验参数;
根据每种数据接口的接口信息,确定多个不同的业务校验规则,其中,所述业务校验规则表示每个待校验参数对应不同数据接口的校验规则;
所述根据所述校验规则,对所述待校验参数进行校验,得到数据校验结果,包括:
根据不同数据接口对应的业务校验规则,对所述待校验参数进行校验,得到数据校验结果。
在本发明中,分布式系统中存在多种应用程序接口,当进行业务调用时,可能存在多种不同的应用程序接口获取到业务实体是相同的,即每种应用程序接口接收到相同的参数,从而针对每种应用程序接口对这些相同参数进行校验。由于每种应用程序接口是不同的,因此,在数据入参时,检验过程也存在不同,由此得到的校验规则也是不同的,例如,从不同网上购物平台提供的应用程序接口调用相关商品数据时,请求调用参数需要满足不同平台的应用程序接口的校验规则,因此,确定了参数在不同接口的校验规则之后,集中对这些参数进行校验,在所有校验结果均通过之后,确定这一批参数存在合法性,最终完成业务调用。
本发明针对相同的业务实体对应的参数,当不同的数据接口接收这些参数时,基于Redis中间件,获取到每一种数据接口与相同参数之间对应的校验规则,使得多个项目对相同实体进行校验。
在上述实施例的基础上,在所述根据不同数据接口对应的业务校验规则,对所述待校验参数进行校验,得到数据校验结果之后,所述方法还包括:
若所有所述待校验参数通过校验,则判断所述待校验参数合法。
在本发明中,当不同的数据接口同时接收到相同的参数时,需要对所有的参数进行校验,基于每种数据接口的校验规则,当每个参数都通过校验之后,才能确定该参数的合法性。本发明通过统一的参数校验,使得业务系统的安全性也能得到提高。
图2为本发明提供的数据校验方法的时序示意图,可参考图2所示,步骤S1,应用程序接口开发人员,配置校验文件,并通过预设的规则存储方式将校验规则配置文件进行保存;
步骤S2,开启业务项目的参数校验;
步骤S3,通过对校验规则进行解析,读取并解析校验规则配置文件;
步骤S4,将解析结果存储入Redis中间件;
步骤S5,当业务应用程序接口调用时,通过应用程序接口接收参数之后,首先由业务应用程序接口调用校验引擎,并将业务参数传入;
步骤S6,校验引擎调用参数解析功能,将业务参数解析为特定的数据结构;
步骤S7,校验引擎调用规则解析功能,获取当前应用程序接口的校验规则;
步骤S8,在校验引擎内部,使用校验规则,校验参数,返回校验结果;需要说明的是,在本发明中,校验引擎可基于解析结果确定校验规则,除了本发明提供的存储在Redis中间件中由校验规则数据生成的校验规则,也可以通过解析结果,通过人工实现校验逻辑,或者采用Spring validation框架实现相应的校验规则;
步骤S9,在校验通过的情况下,应用程序接口可调用业务服务,执行具体业务。
本发明为满足分布式项目实体分模块管理、且实现对校验逻辑与业务代码之间的解耦,通过配置文件的方式实现了业务参数的校验。通过校验规则的简单配置,即可完成参数的校验,无论是自定义实体、或是单个参数,均可以使用,既没有对实体产生依赖,也不需要过多的人工校验逻辑,降低了参数校验与业务处理之间的耦合性,降低了参数校验的复杂度,提高了业务开发和数据校验效率,减少了维护成本。
下面对本发明提供的数据校验系统进行描述,下文描述的数据校验系统与上文描述的数据校验方法可相互对应参照。
图3为本发明提供的数据校验系统的结构示意图,如图3所示,本发明提供了一种数据校验系统,包括参数获取模块301、校验规则解析模块302和校验引擎模块303,其中,参数获取模块301用于通过目标数据接口,获取待校验参数;校验规则解析模块302用于根据所述目标数据接口的接口信息,确定所述待校验参数对应的校验规则,其中,所述校验规则是由存储在中间件的校验规则数据生成的;校验引擎模块303用于根据所述校验规则,对所述待校验参数进行校验,得到数据校验结果。
在本发明中,通过应用程序接口进行业务调用时,参数获取模块301从目标数据接口处获取待校验参数。然后,校验规则解析模块302确定目标数据接口的接口信息,包括但不限于接口地址信息和接口类型(例如,购物网站中卖家客户端和买家客户端的接口)等,并基于该接口信息以及待校验参数,与存储在中间件中的校验规则数据进行匹配。在本发明中,校验规则数据是根据已有校验规则解析得到的,通过解析,获取到相应的样本接口信息和样本参数,并将这些样本数据存储在中间件中,当目标数据接口接收到参数时,可根据存储在中间件中的校验规则与校验规则数据之间的映射关系,确定当前所需的校验规则。
进一步地,目标数据接口在接收到参数之后,校验引擎模块303需要对参数的合法性进行判断,因此校验引擎模块303将接收到的参数作为待校验参数进行校验,在确定校验通过之后,应用程序接口才进一步完成业务调用。需要说明的是,本发明对校验规则的具体类型不作限定,可根据接口对应的相关业务进行设置,例如,对参数中的用户名、参数长度以及参数取值范围进行校验。另外,在本发明中,由于校验规则是通过中间件中配置文件获取得到的,实现了校验逻辑与业务代码的解耦,使得在对参数进行校验时,参数校验的代码与业务逻辑的代码不会混合在一起,从而根据该校验规则对参数进行校验,当校验通过之后,完成目标数据接口的业务调用。
本发明提供的数据校验系统,通过将预先构建的校验规则存储入中间件,在接口请求时,通过对参数和接口进行解析,确定相应的校验规则对参数进行校验,降低了参数校验与业务处理之间的耦合性,降低了参数校验的复杂度,提高了业务开发和数据校验效率,减少了维护成本。
在上述实施例的基础上,所述系统还包括校验规则数据构建模块和规则存储模块,其中,校验规则数据构建模块用于基于预设校验规则存储格式,根据每个数据接口的接口信息和每种业务对应参数的数据结构类型,构建校验规则数据;规则关系配置模块,用于根据所述校验规则数据,配置对应的预设校验规则;规则存储模块用于将所述校验规则数据和所述预设校验规则存储至中间件,以使得到所述中间件基于所述校验规则数据与预设校验规则之间的映射关系,为每个数据接口对应的业务配置校验规则。
在本发明中,通过接口开发人员以人工方式配置业务所需的预设校验规则,然后,校验规则数据构建模块根据得到这些预设校验规则,基于每个数据接口的接口地址信息、数据接口接收业务对应参数的数据结构类型(例如,参数长度、参数取值范围等),定义预期所需的校验规则数据。优选地,在上述实施例的基础上,所述预设校验规则存储格式为JSON格式,JSON格式作为一种轻量级的数据交换格式,在进行数据传输时具有更高的效率,降低网络的传输压力。
进一步地,通过动态读取由接口开发人员预先配置的业务所需校验规则,解析该校验规则中的接口地址信息和业务对应参数的数据结构类型;然后,规则关系配置模块对校验规则数据和预设校验规则进行映射关系配置;最后,规则存储模块将得到的校验规则数据和对应的预设校验规则存储入中间件。优选地,在上述实施例的基础上,所述中间件是通过Redis构建得到的,Redis作为一种键值对数据库,支持多种数据结构,可满足分布式项目的要求,提供更加效率的集中存取,由于校验规则是通过Redis中间件获取得到的,使得校验代码与业务逻辑代码解耦,降低了参数校验与业务处理之间的耦合性。
在上述实施例的基础上,所述校验规则解析模块302包括第一解析单元、第二解析单元和第三解析单元,其中,第一解析单元用于获取所述目标数据接口的接口信息,所述接口信息包括目标接口地址信息和目标接口类型信息;第二解析单元用于获取待校验参数的目标数据结构类型;第三解析单元用于将所述目标接口地址信息、所述目标接口类型信息和所述目标数据结构类型,与所述校验规则数据中的接口地址信息、接口类型信息和数据结构类型进行匹配,并通过匹配得到的校验规则数据,确定所述待校验参数对应的校验规则。
在本发明中,在目标数据接口接收到参数之后,第一解析单元通过对数据接口相关信息进行解析,获取该接口的目标接口地址信息和目标接口类型信息;同时,第二解析单元对参数进行解析,获取待校验参数的目标数据结构类型;进一步地,第三解析单元通过对Redis中间件中已保存的预设校验规则进行解析,将解析得到校验规则数据中的接口地址信息、接口类型信息和数据结构类型,与目标数据接口处获取到的目标接口信息和目标数据结构类型进行匹配,若待校验参数的接口信息与数据结构类型,与中间件已保存的某个校验规则数据中的接口信息和数据结构类型相同,则选取这个校验规则数据对应的预设校验规则,确定为目标数据接口当前接收到的参数所需的校验规则。
在上述实施例的基础上,所述参数获取模块301还用于基于多种不同的数据接口,获取到多个相同的待校验参数;校验规则解析模块302还用于根据每种数据接口的接口信息,确定多个不同的业务校验规则,其中,所述业务校验规则表示每个待校验参数对应不同数据接口的校验规则;所述校验引擎模块303还用于:根据不同数据接口对应的业务校验规则,对所述待校验参数进行校验,得到数据校验结果。
在本发明中,分布式系统中存在多种应用程序接口,当进行业务调用时,可能存在多种不同的应用程序接口获取到业务实体是相同的,即每种应用程序接口接收到相同的参数,从而针对每种应用程序接口对这些相同参数进行校验。由于每种应用程序接口是不同的,因此,在数据入参时,检验过程也存在不同,由此得到的校验规则也是不同的,例如,从不同网上购物平台提供的应用程序接口调用相关商品数据时,请求调用参数需要满足不同平台的应用程序接口的校验规则,因此,确定了参数在不同接口的校验规则之后,集中对这些参数进行校验,在所有校验结果均通过之后,确定这一批参数存在合法性,最终完成业务调用。
在本发明中针对相同的业务实体对应的参数,当不同的数据接口接收这些参数时,参数获取模块301获取不同数据接口接收到的相同参数;然后,基于Redis中间件,校验引擎模块303获取到每一种数据接口与相同参数之间对应的校验规则,从而通过多个项目对相同实体进行校验。
在上述实施例的基础上,所述系统还包括:参数合法性判断模块,用于对数据校验结果进行判断,若所有所述待校验参数通过校验,则判断所述待校验参数合法。
在本发明中,当不同的数据接口同时接收到相同的参数时,参数合法性判断模块需要对所有的参数进行校验,基于每种数据接口的校验规则,当每个参数都通过校验之后,才能确定该参数的合法性。本发明通过统一的参数校验,使得业务系统的安全性也能得到提高。
图4为本发明提供的数据校验系统的架构组件示意图,可参考图4所示,校验规则需要接口开发人员预先进行人工配置,基于每个接口地址、参数(参数结构类型),定义预期的校验规则数据(校验规则数据与校验规则之间存在对应的映射关系),数据采用JSON格式;在某个业务项目启动时,规则解析器(通过校验规则解析模块中的第一解析单元)动态读取预先配置好的校验规则,解析与数据接口相关的接口地址,并通过参数解析器对接口对应接收到的参数进行解析(通过校验规则解析模块中的第二解析单元),通过校验规则数据构建模块生成校验规则数据,并将该校验规则数据存储入Redis中间件,需要说明的是,在本发明中,在校验规则数据生成过程和校验过程时,都需要通过规则解析器对校验规则进行解析;进一步地,通过规则存储模块将校验规则数据存储在Redis中间件,本发明采用Redis中间件,可满足分布式项目的要求,集中存取,以供多个项目对相同实体进行校验;接着,在数据接口接收到参数时,校验引擎模块供应用程序接口调用,通过传入接口地址,待校验参数,进而使得校验引擎模块调用规则解析器、参数解析器对参数完成校验,返回校验结果;当应用程序接口使用数据校验系统完成对参数的校验之后,若参数校验没有问题的前提下,应用程序接口调用业务服务完成业务处理。
分布式项目是以对复杂业务的解耦所产生的,分布式校验架构,是为了满足高内聚、低耦合的特点而产生的,当参数校验与业务代码耦合在一起时,会导致代码的复杂度增加,延长开发时间、系统维护时间。基于上述问题,本发明提供的数据校验系统,为满足分布式项目实体分模块管理、且实现对校验逻辑与业务代码之间的解耦,通过配置文件的方式实现了业务参数的校验。通过校验规则的简单配置,即可完成参数的校验,无论是自定义实体、或是单个参数,均可以使用,既没有对实体产生依赖,也不需要过多的人工校验逻辑,降低了参数校验与业务处理之间的耦合性,降低了参数校验的复杂度,提高了业务开发和数据校验效率,减少了维护成本。
本发明提供的系统是用于执行上述各方法实施例的,具体流程和详细内容请参照上述实施例,此处不再赘述。
图5为本发明提供的电子设备的结构示意图,如图5所示,该电子设备可以包括:处理器(processor)501、通信接口(CommunicationsInterface)502、存储器(memory)503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信。处理器501可以调用存储器503中的逻辑指令,以执行数据校验方法,该方法包括:通过目标数据接口,获取待校验参数;根据所述目标数据接口的接口信息,确定所述待校验参数对应的校验规则,其中,所述校验规则是由存储在中间件的校验规则数据生成的;根据所述校验规则,对所述待校验参数进行校验,得到数据校验结果。
此外,上述的存储器503中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的数据校验方法,该方法包括:通过目标数据接口,获取待校验参数;根据所述目标数据接口的接口信息,确定所述待校验参数对应的校验规则,其中,所述校验规则是由存储在中间件的校验规则数据生成的;根据所述校验规则,对所述待校验参数进行校验,得到数据校验结果。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的数据校验方法,该方法包括:通过目标数据接口,获取待校验参数;根据所述目标数据接口的接口信息,确定所述待校验参数对应的校验规则,其中,所述校验规则是由存储在中间件的校验规则数据生成的;根据所述校验规则,对所述待校验参数进行校验,得到数据校验结果。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据校验方法,其特征在于,包括:
通过目标数据接口,获取待校验参数;
根据所述目标数据接口的接口信息,确定所述待校验参数对应的校验规则,其中,所述校验规则是由存储在中间件的校验规则数据生成的;
根据所述校验规则,对所述待校验参数进行校验,得到数据校验结果。
2.根据权利要求1所述的数据校验方法,其特征在于,所述校验规则通过以下步骤得到:
基于预设校验规则存储格式,根据每个数据接口的接口信息和每种业务对应参数的数据结构类型,构建校验规则数据;
根据所述校验规则数据,配置对应的预设校验规则;
将所述校验规则数据和所述预设校验规则存储至中间件,以使得所述中间件基于所述校验规则数据与预设校验规则之间的映射关系,为每个数据接口对应的业务配置校验规则。
3.根据权利要求2所述的数据校验方法,其特征在于,所述预设校验规则存储格式为JSON格式。
4.根据权利要求2所述的数据校验方法,其特征在于,所述根据所述目标数据接口的接口信息,确定所述待校验参数对应的校验规则,包括:
获取所述目标数据接口的接口信息,所述接口信息包括目标接口地址信息和目标接口类型信息;
获取待校验参数的目标数据结构类型;
将所述目标接口地址信息、所述目标接口类型信息和所述目标数据结构类型,与所述校验规则数据中的接口地址信息、接口类型信息和数据结构类型进行匹配,并通过匹配得到的校验规则数据,确定所述待校验参数对应的校验规则。
5.根据权利要求1所述的数据校验方法,其特征在于,所述方法还包括:
基于多种不同的数据接口,获取到多个相同的待校验参数;
根据每种数据接口的接口信息,确定多个不同的业务校验规则,其中,所述业务校验规则表示每个待校验参数对应不同数据接口的校验规则;
所述根据所述校验规则,对所述待校验参数进行校验,得到数据校验结果,包括:
根据不同数据接口对应的业务校验规则,对所述待校验参数进行校验,得到数据校验结果。
6.根据权利要求5所述的数据校验方法,其特征在于,在所述根据不同数据接口对应的业务校验规则,对所述待校验参数进行校验,得到数据校验结果之后,所述方法还包括:
若所有所述待校验参数通过校验,则判断所述待校验参数合法。
7.根据权利要求1所述的数据校验方法,其特征在于,所述中间件是通过Redis构建得到的。
8.一种数据校验系统,其特征在于,包括:
参数获取模块,用于通过目标数据接口,获取待校验参数;
校验规则解析模块,用于根据所述目标数据接口的接口信息,确定所述待校验参数对应的校验规则,其中,所述校验规则是由存储在中间件的校验规则数据生成的;
校验引擎模块,用于根据所述校验规则,对所述待校验参数进行校验,得到数据校验结果。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述数据校验方法的步骤。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据校验方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210003125.4A CN116431379A (zh) | 2022-01-04 | 2022-01-04 | 一种数据校验方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210003125.4A CN116431379A (zh) | 2022-01-04 | 2022-01-04 | 一种数据校验方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116431379A true CN116431379A (zh) | 2023-07-14 |
Family
ID=87093068
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210003125.4A Pending CN116431379A (zh) | 2022-01-04 | 2022-01-04 | 一种数据校验方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116431379A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251460A (zh) * | 2023-08-10 | 2023-12-19 | 上海栈略数据技术有限公司 | 图数据库和关系数据库的数据一致性校验系统 |
CN117369866A (zh) * | 2023-09-22 | 2024-01-09 | 中科驭数(北京)科技有限公司 | 参数校验方法、装置、设备及存储介质 |
CN118069539A (zh) * | 2024-04-19 | 2024-05-24 | 建信金融科技有限责任公司 | 数据处理的方法、装置、电子设备和存储介质 |
-
2022
- 2022-01-04 CN CN202210003125.4A patent/CN116431379A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117251460A (zh) * | 2023-08-10 | 2023-12-19 | 上海栈略数据技术有限公司 | 图数据库和关系数据库的数据一致性校验系统 |
CN117251460B (zh) * | 2023-08-10 | 2024-04-05 | 上海栈略数据技术有限公司 | 图数据库和关系数据库的数据一致性校验系统 |
CN117369866A (zh) * | 2023-09-22 | 2024-01-09 | 中科驭数(北京)科技有限公司 | 参数校验方法、装置、设备及存储介质 |
CN118069539A (zh) * | 2024-04-19 | 2024-05-24 | 建信金融科技有限责任公司 | 数据处理的方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116431379A (zh) | 一种数据校验方法及系统 | |
US10348642B2 (en) | Custom resources in a resource stack | |
US9015670B2 (en) | Test automation tool for domain registration systems | |
CA2988434C (en) | Automatic recharging system, method and server | |
CN110798446B (zh) | 邮件批量授权方法、装置、计算机设备及存储介质 | |
US10656939B2 (en) | Modeling lifetime of hybrid software application using application manifest | |
US11245577B2 (en) | Template-based onboarding of internet-connectible devices | |
CN103036902A (zh) | 基于二维码的登录控制方法和系统 | |
CN105162775A (zh) | 虚拟机登陆方法及装置 | |
KR20160085276A (ko) | 인증 정보를 업데이트하기 위한 방법, 디바이스 및 시스템 | |
CN110471842A (zh) | 一种测试方法、装置及计算机可读存储介质 | |
CN114186206A (zh) | 基于小程序的登录方法、装置、电子设备和存储介质 | |
CN108737350B (zh) | 一种信息处理方法及客户端 | |
CN110324333B (zh) | 一种数据处理方法、装置、终端及存储介质 | |
CN111930535B (zh) | 一种应用功能调用方法、装置、计算机设备及存储介质 | |
CN114371866A (zh) | 业务系统的版本重构测试方法、装置和设备 | |
CN111818162A (zh) | 基于区块链的旅游业务处理方法及装置 | |
US9230056B1 (en) | System testing techniques | |
CN111242256A (zh) | 信息验证方法、装置及终端 | |
CN114827258B (zh) | 服务器的管理控制方法、装置和电子设备 | |
CN113110830B (zh) | 基于组件的移动应用程序生成方法与装置 | |
CN115687066A (zh) | 多接口场景测试方法、系统、电子设备及介质 | |
CN117579685A (zh) | 业务回调方法及其装置、电子设备、存储介质 | |
CN118503075A (zh) | 测试用例生成方法、装置、设备及介质 | |
CN118470830A (zh) | 设备操作方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |