CN111897842A - 数据校验的方法、装置、计算机系统及介质 - Google Patents

数据校验的方法、装置、计算机系统及介质 Download PDF

Info

Publication number
CN111897842A
CN111897842A CN202010004757.3A CN202010004757A CN111897842A CN 111897842 A CN111897842 A CN 111897842A CN 202010004757 A CN202010004757 A CN 202010004757A CN 111897842 A CN111897842 A CN 111897842A
Authority
CN
China
Prior art keywords
verified
verification
field
data
check
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
Application number
CN202010004757.3A
Other languages
English (en)
Inventor
赖耀宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202010004757.3A priority Critical patent/CN111897842A/zh
Publication of CN111897842A publication Critical patent/CN111897842A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开提供了一种数据校验的方法,包括:响应于前端用于请求后端服务的业务请求,获取待校验数据,其中,待校验数据包括一个或多个字段;获取为后端服务预先配置的校验规则,其中,校验规则包括校验注解和规则表达式,校验注解用于标注多个字段中的一个或多个待校验字段,规则表达式用于表征与每个待校验字段对应的校验规则;基于与每个待校验字段对应的校验规则,获得与每个待校验字段对应的第一校验结果;以及基于与每个待校验字段对应的第一校验结果,确定与待校验数据对应的第二校验结果。此外,本公开还提供了一种数据校验的装置,计算机系统以及介质。

Description

数据校验的方法、装置、计算机系统及介质
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种数据校验方法、装置、计算机系统及介质。
背景技术
将JSON数据(JavaScript Object Notation)串转换成Java对象,利用校验工具(例如Hibernate Validator)可以对Java对象的属性进行规则校验。将JSON串转换成Map对象,再从Map对象中获取属性值可以进行业务校验。
但是,Hibernate Validator校验框架是对转换之后的Java对象进行校验,不能涵盖特殊的业务场景。例如一后端服务要求JSON中的A,B,C字段不能为空,而另一个后端服务要求JSON中的B,C,D字段不能为空,A字段可以为空。相关技术提供的解决方案是重复设计一个属性相同但是属性规则不相同的Java类,增加校验程序的复杂性,降低校验程序的复用性。另外,Java类的属性包括多种数据类型,只有字符串(String)这一数据类型可以使用正则表达式,其他类型无法使用正则表达式,降低校验程序的灵活性。
发明内容
有鉴于此,本公开提供了一种数据校验的方法及其装置,计算机系统及介质。
本公开的一个方面提供了一种数据校验的方法,包括:响应于前端用于请求后端服务的业务请求,获取待校验数据,其中,上述待校验数据包括一个或多个字段,获取为上述后端服务预先配置的校验规则,其中,上述校验规则包括校验注解和规则表达式,上述校验注解用于标注上述多个字段中的一个或多个待校验字段,上述规则表达式用于表征与每个待校验字段对应的校验规则,基于上述与每个待校验字段对应的校验规则,获得与上述每个待校验字段对应的第一校验结果,以及基于上述与上述每个待校验字段对应的第一校验结果,确定与上述待校验数据对应的第二校验结果。
根据本公开的实施例,上述待校验字段包括待校验关键字,上述校验注解用于表征上述多个待校验关键字中的一个或多个待校验关键字。
根据本公开的实施例,上述基于上述与上述每个待校验字段对应的第一校验结果,确定与上述待校验数据对应的第二校验结果包括:基于上述与上述每个待校验字段对应的第一校验结果,确定上述一个或多个待校验字段中是否存在校验失败的待校验字段,以及在不存在校验失败的待校验字段的情况下,确定与上述待校验数据对应的第二校验结果为校验成功。
根据本公开的实施例,上述基于上述与上述每个待校验字段对应的第一校验结果,确定与上述待校验数据对应的第二校验结果还包括:在存在校验失败的待校验字段的情况下,确定与上述待校验数据对应的第二校验结果为校验失败。
根据本公开的实施例,上述方法还包括:获取上述校验失败的待校验字段,获取与上述校验失败的待校验字段对应的校验信息,其中,上述校验信息包括关键字信息、值信息以及校验规则信息,以及返回上述校验信息至上述后端服务,以使得上述前端能够基于上述校验信息对上述校验失败的待校验字段进行修复。
本公开的另一个方面提供了一种数据校验的装置,包括:第一获取模块,配置为响应于前端用于请求后端服务的业务请求,获取待校验数据,其中,上述待校验数据包括一个或多个字段,第二获取模块,配置为获取为上述后端服务预先配置的校验规则,其中,上述校验规则包括校验注解和规则表达式,上述校验注解用于标注上述多个字段中的一个或多个待校验字段,上述规则表达式用于表征与每个待校验字段对应的校验规则,获得模块,配置为基于上述与每个待校验字段对应的校验规则,获得与上述每个待校验字段对应的第一校验结果,以及确定模块,配置为基于上述与上述每个待校验字段对应的第一校验结果,确定与上述待校验数据对应的第二校验结果。
根据本公开的实施例,上述待校验字段包括待校验关键字,上述校验注解用于表征上述多个待校验关键字中的一个或多个待校验关键字。
根据本公开的实施例,上述确定模块包括:检测子模块,配置为基于上述与上述每个待校验字段对应的第一校验结果,检测上述一个或多个待校验字段中是否存在校验失败的待校验字段,以及第一确定子模块,配置为在不存在校验失败的待校验字段的情况下,确定与上述待校验数据对应的第二校验结果为校验成功。
根据本公开的实施例,上述确定模块还包括:第二确定子模块,配置为在存在校验失败的待校验字段的情况下,确定与上述待校验数据对应的第二校验结果为校验失败。
根据本公开的实施例,上述确定模块还包括:第一获取子模块,配置为获取上述校验失败的待校验字段,第二获取子模块,配置为获取与上述校验失败的待校验字段对应的校验信息,其中,上述校验信息包括关键字信息、值信息以及校验规则信息,以及返回子模块,配置为返回上述校验信息至上述后端服务,以使得上述前端能够基于上述校验信息对上述校验失败的待校验字段进行修复。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
通过本公开的实施例,结合注解与规则表达式(也称为正则表达式)的灵活性,能够在后端对前端传入的数据转换成Java对象之前,对数据中包含的字段进行校验,提高Java类的可复用性。同时校验数据在转换成Java之前是文本格式,每个字段的校验规则可以通过正则表达式配置,可以至少部分地降低校验程序的复杂性,提高复用性和灵活性。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了根据本公开实施例的可以应用数据校验方法的示例性系统架构;
图2示意性示出了根据本公开的实施例的数据校验的方法的流程图;
图3示意性示出了根据本公开的实施例的数据校验成功的流程图;
图4示意性示出了根据本公开的实施例的数据校验失败的流程图;
图5示意性示出了根据本公开的实施例的数据校验的装置的框图;
图6示意性示出了根据本公开实施例的适于实现数据校验的方法和装置的计算机系统的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
本公开的实施例提供了一种数据校验的方法、装置、计算机系统和介质。该数据校验的方法包括数据接收过程和数据校验过程。在数据接收中,响应于前端用于请求后端服务的业务请求,获取待校验数据,其中,待校验数据包括一个或多个字段。在完成数据接收之后,进入数据校验过程。首先,获取为后端服务预先配置的校验规则,其中,校验规则包括校验注解和规则表达式,校验注解用于标注多个字段中的一个或多个待校验字段,规则表达式用于表征与每个待校验字段对应的校验规则。然后,基于与每个待校验字段对应的校验规则,获得与每个待校验字段对应的第一校验结果。最后,基于与每个待校验字段对应的第一校验结果,确定与待校验数据对应的第二校验结果。
需要说明的是,在本公开中,涉及的专业术语包括JSON和Java类。其中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。是基于JavaScriptProgramming Language,Standard ECMA-262 3rd Edition-December 1999的一个子集,易于阅读并且易于机器解析和生成。Java类是一个模板,描述了一类对象的属性与行为。例如博客是一个类,而博客的内容、博客的题目(title)是其属性。
图1示意性示出了根据本公开实施例的可以应用数据校验方法的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的网页、信息、或数据等)反馈给终端设备。
需要说明的是,本公开实施例所提供的数据校验的方法一般可以由服务器105执行。相应地,本公开实施例所提供的数据校验的装置一般可以设置于服务器105中。本公开实施例所提供的数据校验的方法也可以由不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群执行。相应地,本公开实施例所提供的数据校验的装置也可以设置于不同于服务器105且能够与终端设备101、102、103和/或服务器105通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了根据本公开的实施例的数据校验的方法的流程图。
如图2所示,该数据校验的方法包括操作S210~操作S240。
在操作S210,响应于前端用于请求后端服务的业务请求,获取待校验数据。
根据本公开的实施例,在接收到前端用于请求后端服务的业务请求之后,可以获取待校验数据,该待校验数据可以是通过拼接请求中的参数得到的,需要说明的是,待校验数据是JSON格式的,且包括一个或多个字段,每个字段具有键值对(Key-Value,简称K-V)。通过Key可以快速查找到Value。
在操作S220,获取为后端服务预先配置的校验规则。
根据本公开的实施例,所述校验规则包括校验注解和规则表达式,所述校验注解用于标注所述多个字段中的一个或多个待校验字段,所述规则表达式用于表征与每个待校验字段对应的校验规则。
在本公开中,校验规则包括校验注解,用来标注待校验数据的多个字段中需要校验的字段,可以是一个字段,也可以是多个字段。可以标注多个具体的Key值,中间用逗号隔开的方式标注待校验数据的多个字段中需要校验的字段。
在本公开中,校验规则包括规则表达式,规则表达式是对字符串(包括普通字符(例如,a到z之间的字母)和特殊字符(称为“元字符”))操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。规则表达式是一种文本模式,该模式描述在搜索文本时要匹配的一个或多个字符串。规则表达式具有灵活性、逻辑性和功能性强的特点,可以迅速地用极简单的方式达到字符串的复杂控制。
在操作S230,基于与每个待校验字段对应的校验规则,获得与每个待校验字段对应的第一校验结果。
在操作S240,基于与每个待校验字段对应的第一校验结果,确定与待校验数据对应的第二校验结果。
根据本公开的实施例,每个待校验字段有对应的校验规则,根据规则表达式可以获得每个待校验字段的校验结果,即第一校验结果。根据每个待校验字段的校验结果,可以获得待校验数据的校验结果,即第二校验结果。
在相关技术中,在进行数据校验时,需要首先将JSON串转换成Java对象,然后使用Hibernate Validator等校验工具,对Java对象属性进行规则校验。或者将JSON串转换成Map对象,再从Map对象中获取属性值(Value)进行业务校验。但是,使用HibernateValidator等校验框架是对转换后的Java对象进行校验,不能涵盖特殊的业务场景。比如某个后端服务要求JSON串中的A,B,C字段不能为空,而另外一个后端服务则要求B,C,D字段不能为空,A字段可以为空。这种情况下只能重复设计一个属性相同但是属性规则不相同的Java类,增加校验程序的复杂度,且降低校验程序的复用性。另外Hibernate Validator的校验是针对Java类的属性进行校验,由于每个属性(Value)有各自的数据类型,除了字符串(String)的数据类型外,其他类型的属性校验都无法使用正则表达式,导致校验程序不够灵活。
通过本公开的实施例,预先配置包括校验注解和规则表达式的校验规则,可以结合注解与正则表达式的灵活性,能够在JSON串转换成Java对象之前,实现后端对前端传入的JSON数据进行校验,并且对各个有校验要求的字段完成校验,提高Java类的可复用性。
作为一种可选的实施例,待校验字段包括待校验关键字,校验注解用于表征多个待校验关键字中的一个或多个待校验关键字。
根据本公开的实施例,考虑到待校验数据是文本格式,因此与每个待校验字段对应的校验规则均可使用规则表达式配置,灵活精确。作为一种可选的实施例,可以对Key值进行正则匹配,一次性匹配多个Key值,以标注待校验数据的多个字段中需要校验的字段。
通过本公开的实施例,通过对多个待校验关键字进行校验标注,可以实现相同约束规则的批量校验,减少配置量。
作为一种可选的实施例,本公开使用注解结合正则表达式完成对校验规则的配置,同时提供注解解析。表1为注解举例。
表1
Figure BDA0002353624260000091
为了便于理解,假设有如下业务场景:用户在购物平台上的订购服务,需要提交预约单,订购服务完成后再提交尾款单的业务。以上业务可定义如下Java类:订单类(Order)中嵌套有操作员类(Creator)与商品类(Product)。
订单(Order)
订单号(id),
订单类型(type),
关联的预约单号(reservationId),
创建时间(createDate),
操作员(Creator)
操作员名称(name),
操作员编号(serialNum),
...
商品(Product)
商品编码(skuNum),
商品名称(skuName),
...
后端提供如下2个服务,可共用订单类(Order)的参数。
1.提交预约单服务submitReservation(Order order);
该服务可以配置如下注解,表示id,name,skuName,skuNum必传且须是数字和字母。
@Validation(keys=”id,name,skuName,skuNum”,regex=”[0-9a-zA-Z]+”,required=”true”,msg=”${key}=${value}不符合要求.”)
2.提交尾款单服务submitFinalPayment(Order order).
该服务可以配置如下注解,表示id,reservationId,name必传且须是数字和字母。
@Validation(keys=”id,reservationId,name”,regex=”[0-9a-zA-Z]+”,required=”true”,msg=”${key}=${value}不符合要求.”)
需要说明的是,上述两个注解中,${}为占位符,检测时会对Key按顺序检查,一旦检测到有不满足校验规则的Key即可返回校验结果,不再继续校验其他Key。本公开还可以提供规则表达式库,供在不同的业务场景中对数据进行校验。
根据本公开的实施例,前述操作S240(基于与每个待校验字段对应的第一校验结果,确定与待校验数据对应的第二校验结果)可以包括:基于与每个待校验字段对应的第一校验结果,确定一个或多个待校验字段中是否存在校验失败的待校验字段;以及在不存在校验失败的待校验字段的情况下,确定与待校验数据对应的第二校验结果为校验成功。
根据本公开的实施例,每个待校验字段都校验成功,才可以确定待校验数据校验成功。在校验成功之后,后端服务可以进行相应的业务逻辑处理,以反馈业务请求的处理结果。
图3示意性示出了根据本公开的实施例的数据校验成功的流程图。
如图3所示,响应于前端用于请求后端服务的业务请求,可以拼接请求参数(JSON格式)以获得待校验数据,该请求触发JSON校验,校验装置根据服务端配置的校验规则,实现对各个字段的校验,即对Key按顺序检查,以获得与各个字段对应的校验结果,若需要校验的所有待校验字段均校验成功,则表明待校验数据校验成功,将校验成功的信息返回给后端服务,以使得后端服务可以进行校验通过后的业务逻辑处理,并将业务处理结果返回给前端。
通过本公开的实施例,在每个待校验字段校验成功的情况下,确定待校验数据校验成功,并将校验成功的结果反馈给后端服务,使得后端服务进行后续业务逻辑处理,降低数据校验过程的复杂度。
根据本公开的实施例,前述操作S240(基于与每个待校验字段对应的第一校验结果,确定与待校验数据对应的第二校验结果)还可以包括:在存在校验失败的待校验字段的情况下,确定与待校验数据对应的第二校验结果为校验失败。
根据本公开的实施例,在存在校验失败的待校验字段的情况下,前述操作S240(基于与每个待校验字段对应的第一校验结果,确定与待校验数据对应的第二校验结果)还可以包括:获取校验失败的待校验字段;获取与校验失败的待校验字段对应的校验信息,其中,校验信息包括关键字信息、值信息以及校验规则信息;以及返回校验信息至后端服务,以使得前端能够基于校验信息对校验失败的待校验字段进行修复。
根据本公开的实施例,在校验失败的情况下,可以将与校验失败的待校验字段相关的反馈信息反馈给后端服务,后端服务可以将接收到的反馈信息直接返回给前端,也可以将反馈信息先封装再返回给前端,以使前端能够基于该反馈信息对相应的字段进行修复。
图4示意性示出了根据本公开的实施例的数据校验失败的流程图。
如图4所示,响应于前端用于请求后端服务的业务请求,可以拼接请求参数(JSON格式)以获得待校验数据,该请求触发JSON校验,校验装置根据服务端配置的校验规则,实现对各个字段的校验,以获得与各个字段对应的校验结果,对Key按顺序检查,一旦检测到有不满足校验规则的Key即可返回校验结果,不再继续校验其他Key。根据不满足校验规则的Key,将其对应的Value以及配置的校验规则作为校验失败的字段对应的字段信息,返回给后端服务,后端服务可以将接收到的反馈信息直接返回给前端,也可以将反馈信息先封装再返回给前端,以使前端能够基于该反馈信息对相应的字段进行修复。
通过本公开的实施例,在检测到待校验字段校验失败的情况下,将校验失败的待校验字段对应的相关信息反馈给后端服务,使前端能够基于接收到的反馈信息对校验失败的字段进行修复,可以在校验失败的情况下,反馈校验失败的校验字段信息以指导待校验数据的修复,降低校验失败的字段对整个业务流程的不利影响。
图5示意性示出了根据本公开的实施例的数据校验的装置的框图。
如图5所示,该数据校验的装置500包括第一获取模块510、第二获取模块520、获得模块530以及确定模块540。
第一获取模块510,配置为例如执行前述操作S210,响应于前端用于请求后端服务的业务请求,获取待校验数据。
第二获取模块520,配置为例如执行前述操作S220,获取为后端服务预先配置的校验规则,其中,校验规则包括校验注解和规则表达式,校验注解用于标注多个字段中的一个或多个待校验字段,规则表达式用于表征与每个待校验字段对应的校验规则。
获得模块530,配置为例如执行前述操作S230,基于与每个待校验字段对应的校验规则,获得与每个待校验字段对应的第一校验结果。
确定模块540,配置为例如执行前述操作S240,基于与每个待校验字段对应的第一校验结果,确定与待校验数据对应的第二校验结果。
通过本公开的实施例,预先配置包括校验注解和规则表达式的校验规则,可以结合注解与正则表达式的灵活性,能够在JSON串转换成Java对象之前,实现后端对前端传入的JSON数据进行校验,并且对各个有校验要求的字段完成校验,提高Java类的可复用性。
根据本公开的实施例,待校验字段包括待校验关键字,校验注解用于表征多个待校验关键字中的一个或多个待校验关键字。
通过本公开的实施例,通过对多个待校验关键字进行校验标注,可以实现相同约束规则的批量校验,减少配置量。
根据本公开的实施例,前述确定模块540包括:检测子模块,配置为基于与每个待校验字段对应的第一校验结果,检测一个或多个待校验字段中是否存在校验失败的待校验字段;以及第一确定子模块,配置为在不存在校验失败的待校验字段的情况下,确定与待校验数据对应的第二校验结果为校验成功。
通过本公开的实施例,在每个待校验字段校验成功的情况下,确定待校验数据校验成功,并将校验成功的结果反馈给后端服务,使得后端服务进行后续业务逻辑处理,降低数据校验过程的复杂度。
根据本公开的实施例,前述确定模块540还包括:第二确定子模块,配置为在存在校验失败的待校验字段的情况下,确定与待校验数据对应的第二校验结果为校验失败。
根据本公开的实施例,前述确定模块540还包括:第一获取子模块,配置为获取校验失败的待校验字段;第二获取子模块,配置为获取与校验失败的待校验字段对应的校验信息,其中,校验信息包括关键字信息、值信息以及校验规则信息;以及返回子模块,配置为返回校验信息至后端服务,以使得前端能够基于校验信息对校验失败的待校验字段进行修复。
通过本公开的实施例,在检测到待校验字段校验失败的情况下,将校验失败的待校验字段对应的相关信息反馈给后端服务,使前端能够基于接收到的反馈信息对校验失败的字段进行修复,可以在校验失败的情况下,反馈校验失败的校验字段信息以指导待校验数据的修复,降低校验失败的字段对整个业务流程的不利影响。
根据本公开的实施例的模块、子模块中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,第一获取模块510、第二获取模块520、获得模块530以及确定模块540、检测子模块、第一确定子模块、第二确定子模块、第一获取子模块、第二获取子模块以及返回子模块中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一获取模块510、第二获取模块520、获得模块530以及确定模块540、检测子模块、第一确定子模块、第二确定子模块、第一获取子模块、第二获取子模块以及返回子模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一获取模块510、第二获取模块520、获得模块530以及确定模块540、检测子模块、第一确定子模块、第二确定子模块、第一获取子模块、第二获取子模块以及返回子模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图6示意性示出了根据本公开实施例的适于实现数据校验的方法和装置的计算机系统的方框图。图6示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图6所示,根据本公开实施例的计算机系统600包括处理器601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。处理器601例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器601还可以包括用于缓存用途的板载存储器。处理器601可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 603中,存储有计算机系统600操作所需的各种程序和数据。处理器601、ROM602以及RAM 603通过总线604彼此相连。处理器601通过执行ROM 602和/或RAM 603中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 602和RAM 603以外的一个或多个存储器中。处理器601也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,计算机系统600还可以包括输入/输出(I/O)接口605,输入/输出(I/O)接口605也连接至总线604。系统600还可以包括连接至I/O接口605的以下部件中的一项或多项:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被处理器601执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质,例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 602和/或RAM 603和/或ROM 602和RAM 603以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (8)

1.一种数据校验的方法,包括:
响应于前端用于请求后端服务的业务请求,获取待校验数据,其中,所述待校验数据包括一个或多个字段;
获取为所述后端服务预先配置的校验规则,其中,所述校验规则包括校验注解和规则表达式,所述校验注解用于标注所述多个字段中的一个或多个待校验字段,所述规则表达式用于表征与每个待校验字段对应的校验规则;
基于所述与每个待校验字段对应的校验规则,获得与所述每个待校验字段对应的第一校验结果;以及
基于所述与所述每个待校验字段对应的第一校验结果,确定与所述待校验数据对应的第二校验结果。
2.根据权利要求1所述的方法,其中:
所述待校验字段包括待校验关键字,所述校验注解用于表征所述多个待校验关键字中的一个或多个待校验关键字。
3.根据权利要求1所述的方法,其中,所述基于所述与所述每个待校验字段对应的第一校验结果,确定与所述待校验数据对应的第二校验结果包括:
基于所述与所述每个待校验字段对应的第一校验结果,确定所述一个或多个待校验字段中是否存在校验失败的待校验字段;以及
在不存在校验失败的待校验字段的情况下,确定与所述待校验数据对应的第二校验结果为校验成功。
4.根据权利要求3所述的方法,其中,所述基于所述与所述每个待校验字段对应的第一校验结果,确定与所述待校验数据对应的第二校验结果还包括:
在存在校验失败的待校验字段的情况下,确定与所述待校验数据对应的第二校验结果为校验失败。
5.根据权利要求4所述的方法,其中,所述方法还包括:
获取所述校验失败的待校验字段;
获取与所述校验失败的待校验字段对应的校验信息,其中,所述校验信息包括关键字信息、值信息以及校验规则信息;以及
返回所述校验信息至所述后端服务,以使得所述前端能够基于所述校验信息对所述校验失败的待校验字段进行修复。
6.一种数据校验的装置,包括:
第一获取模块,配置为响应于前端用于请求后端服务的业务请求,获取待校验数据,其中,所述待校验数据包括一个或多个字段;
第二获取模块,配置为获取为所述后端服务预先配置的校验规则,其中,所述校验规则包括校验注解和规则表达式,所述校验注解用于标注所述多个字段中的一个或多个待校验字段,所述规则表达式用于表征与每个待校验字段对应的校验规则;
获得模块,配置为基于所述与每个待校验字段对应的校验规则,获得与所述每个待校验字段对应的第一校验结果;以及
确定模块,配置为基于所述与所述每个待校验字段对应的第一校验结果,确定与所述待校验数据对应的第二校验结果。
7.一种计算机系统,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现权利要求1至5中任一项的方法。
8.一种计算机可读介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至5中任一项的方法。
CN202010004757.3A 2020-01-02 2020-01-02 数据校验的方法、装置、计算机系统及介质 Pending CN111897842A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010004757.3A CN111897842A (zh) 2020-01-02 2020-01-02 数据校验的方法、装置、计算机系统及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010004757.3A CN111897842A (zh) 2020-01-02 2020-01-02 数据校验的方法、装置、计算机系统及介质

Publications (1)

Publication Number Publication Date
CN111897842A true CN111897842A (zh) 2020-11-06

Family

ID=73169701

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010004757.3A Pending CN111897842A (zh) 2020-01-02 2020-01-02 数据校验的方法、装置、计算机系统及介质

Country Status (1)

Country Link
CN (1) CN111897842A (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112860682A (zh) * 2021-03-29 2021-05-28 中信银行股份有限公司 一种数据质量检测的方法、装置、设备及可读存储介质
CN113627913A (zh) * 2021-08-17 2021-11-09 未鲲(上海)科技服务有限公司 客户端收银方法、装置、设备及存储介质
CN113779004A (zh) * 2021-02-19 2021-12-10 北京沃东天骏信息技术有限公司 一种数据校验的方法和装置
CN114115825A (zh) * 2021-10-08 2022-03-01 北京能科瑞元数字技术有限公司 一种兼容软件的前后端数据校验方法
CN114281602A (zh) * 2021-12-14 2022-04-05 咪咕数字传媒有限公司 数据处理方法、装置、设备以及计算机存储介质
CN114328511A (zh) * 2021-12-13 2022-04-12 上海万物新生环保科技集团有限公司 一种数据存在性校验的方法及设备
CN114547016A (zh) * 2022-04-26 2022-05-27 支付宝(杭州)信息技术有限公司 数据校验方法以及装置
CN114595216A (zh) * 2022-03-21 2022-06-07 京东科技信息技术有限公司 数据校验方法、装置、存储介质及电子设备
CN114610511A (zh) * 2022-03-07 2022-06-10 北京百度网讯科技有限公司 一种输入校验方法、装置、电子设备及存储介质
CN117331848A (zh) * 2023-12-01 2024-01-02 成都数之联科技股份有限公司 一种Web商城的前后端开发交互方法及系统
WO2024012195A1 (zh) * 2022-07-14 2024-01-18 苏宁易购集团股份有限公司 统一校验方法、装置、设备和存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160191541A1 (en) * 2012-12-21 2016-06-30 Alibaba Group Holding Limited Method and system for network validation of information
CN106991023A (zh) * 2017-03-22 2017-07-28 深圳市彬讯科技有限公司 一种接口参数校验方法及组件
CN107102908A (zh) * 2016-02-19 2017-08-29 阿里巴巴集团控股有限公司 数据校验方法、数据容错方法及装置
CN107329849A (zh) * 2017-07-06 2017-11-07 北京理工大学 一种基于Java系统的数据校验方法及系统
CN107347048A (zh) * 2016-05-04 2017-11-14 北京京东尚科信息技术有限公司 数据校验的方法、装置及系统
CN107483467A (zh) * 2017-08-31 2017-12-15 四川长虹电器股份有限公司 面向互联网接口服务的json报文校验方法
CN107957871A (zh) * 2017-11-15 2018-04-24 杭州安恒信息技术有限公司 一种基于jsr303的前后端同步正则校验方法
CN108345512A (zh) * 2018-03-19 2018-07-31 重庆金融资产交易所有限责任公司 数据校验方法、服务器及存储介质
CN109656744A (zh) * 2017-10-11 2019-04-19 北京京东尚科信息技术有限公司 基于Java注解实现数据校验和注入的方法和装置
CN109766264A (zh) * 2018-12-15 2019-05-17 深圳壹账通智能科技有限公司 接口参数的校验方法、装置、计算机设备及存储介质
CN110569036A (zh) * 2019-08-20 2019-12-13 广州华资软件技术有限公司 一种前后端分离架构下的数据校验系统及其方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160191541A1 (en) * 2012-12-21 2016-06-30 Alibaba Group Holding Limited Method and system for network validation of information
CN107102908A (zh) * 2016-02-19 2017-08-29 阿里巴巴集团控股有限公司 数据校验方法、数据容错方法及装置
CN107347048A (zh) * 2016-05-04 2017-11-14 北京京东尚科信息技术有限公司 数据校验的方法、装置及系统
CN106991023A (zh) * 2017-03-22 2017-07-28 深圳市彬讯科技有限公司 一种接口参数校验方法及组件
CN107329849A (zh) * 2017-07-06 2017-11-07 北京理工大学 一种基于Java系统的数据校验方法及系统
CN107483467A (zh) * 2017-08-31 2017-12-15 四川长虹电器股份有限公司 面向互联网接口服务的json报文校验方法
CN109656744A (zh) * 2017-10-11 2019-04-19 北京京东尚科信息技术有限公司 基于Java注解实现数据校验和注入的方法和装置
CN107957871A (zh) * 2017-11-15 2018-04-24 杭州安恒信息技术有限公司 一种基于jsr303的前后端同步正则校验方法
CN108345512A (zh) * 2018-03-19 2018-07-31 重庆金融资产交易所有限责任公司 数据校验方法、服务器及存储介质
CN109766264A (zh) * 2018-12-15 2019-05-17 深圳壹账通智能科技有限公司 接口参数的校验方法、装置、计算机设备及存储介质
CN110569036A (zh) * 2019-08-20 2019-12-13 广州华资软件技术有限公司 一种前后端分离架构下的数据校验系统及其方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113779004A (zh) * 2021-02-19 2021-12-10 北京沃东天骏信息技术有限公司 一种数据校验的方法和装置
CN112860682A (zh) * 2021-03-29 2021-05-28 中信银行股份有限公司 一种数据质量检测的方法、装置、设备及可读存储介质
CN113627913A (zh) * 2021-08-17 2021-11-09 未鲲(上海)科技服务有限公司 客户端收银方法、装置、设备及存储介质
CN114115825B (zh) * 2021-10-08 2022-09-02 北京能科瑞元数字技术有限公司 一种兼容软件的前后端数据校验方法
CN114115825A (zh) * 2021-10-08 2022-03-01 北京能科瑞元数字技术有限公司 一种兼容软件的前后端数据校验方法
CN114328511A (zh) * 2021-12-13 2022-04-12 上海万物新生环保科技集团有限公司 一种数据存在性校验的方法及设备
CN114281602A (zh) * 2021-12-14 2022-04-05 咪咕数字传媒有限公司 数据处理方法、装置、设备以及计算机存储介质
CN114610511A (zh) * 2022-03-07 2022-06-10 北京百度网讯科技有限公司 一种输入校验方法、装置、电子设备及存储介质
CN114595216A (zh) * 2022-03-21 2022-06-07 京东科技信息技术有限公司 数据校验方法、装置、存储介质及电子设备
CN114547016A (zh) * 2022-04-26 2022-05-27 支付宝(杭州)信息技术有限公司 数据校验方法以及装置
WO2024012195A1 (zh) * 2022-07-14 2024-01-18 苏宁易购集团股份有限公司 统一校验方法、装置、设备和存储介质
CN117331848A (zh) * 2023-12-01 2024-01-02 成都数之联科技股份有限公司 一种Web商城的前后端开发交互方法及系统
CN117331848B (zh) * 2023-12-01 2024-02-09 成都数之联科技股份有限公司 一种Web商城的前后端开发交互方法及系统

Similar Documents

Publication Publication Date Title
CN111897842A (zh) 数据校验的方法、装置、计算机系统及介质
WO2021184725A1 (zh) 用户界面测试方法、装置、存储介质及计算机设备
US9245030B2 (en) Analytics based on pipes programming model
CN113032244B (zh) 接口测试方法、装置、计算机系统和计算机可读存储介质
CN109614327B (zh) 用于输出信息的方法和装置
CN112035092A (zh) 一种表单的处理方法、装置、设备和可读介质
CN112463729B (zh) 数据文件的入库方法、装置、电子设备和介质
CN108885633B (zh) 用于自动发现和连接到rest接口的技术
CN113536253A (zh) 用于控制页面元素的显示权限的方法、装置、设备及介质
CN115587575A (zh) 数据表创建方法、目标数据查询方法、装置及设备
CN115599386A (zh) 代码生成方法、装置、设备及存储介质
CN115328759A (zh) 表单的校验方法及装置
CN112860344A (zh) 组件处理方法、装置、电子设备和存储介质
CN112256252B (zh) 接口生成方法、装置、存储介质及电子设备
CN113535565B (zh) 一种接口用例生成方法、装置、设备和介质
CN114691527A (zh) 单元测试案例生成方法、装置、设备、介质和程序产品
US10698794B1 (en) Application container and application service system
CN114546370A (zh) 一种数据对接方法及相关装置
CN112783903B (zh) 生成更新日志的方法和装置
CN112579428B (zh) 接口测试的方法、装置、电子设备和存储介质
US12061900B2 (en) Web application configuration settings for execution in a cloud computing environment
CN113138912B (zh) 一种接口测试方法和系统、客户端和服务端
CN116069312A (zh) 页面渲染方法及装置、电子设备和计算机可读存储介质
CN116737588A (zh) 应用测试方法、装置、设备及存储介质
CN114218254A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20201106