CN107403112A - 数据校验方法及其设备 - Google Patents

数据校验方法及其设备 Download PDF

Info

Publication number
CN107403112A
CN107403112A CN201710644918.3A CN201710644918A CN107403112A CN 107403112 A CN107403112 A CN 107403112A CN 201710644918 A CN201710644918 A CN 201710644918A CN 107403112 A CN107403112 A CN 107403112A
Authority
CN
China
Prior art keywords
data
instance
key
received
value pair
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.)
Granted
Application number
CN201710644918.3A
Other languages
English (en)
Other versions
CN107403112B (zh
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 CN201710644918.3A priority Critical patent/CN107403112B/zh
Publication of CN107403112A publication Critical patent/CN107403112A/zh
Application granted granted Critical
Publication of CN107403112B publication Critical patent/CN107403112B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开提供了一种数据校验方法。数据校验方法包括:从应用接收应用接口请求,所述应用接口请求包括入口参数;向对应的微服务透明传输接收到的应用接口请求;从对应的微服务接收实例数据;以及基于所述入口参数来对接收到的实例数据进行校验。本公开实施例还提供了对应的数据校验设备。

Description

数据校验方法及其设备
技术领域
本公开涉及数据处理领域,具体涉及一种数据校验方法及其设备。
背景技术
随着移动互联网的迅速发展,移动应用(app)也得到越来越多的应用。移动app一般通过接口请求访问服务器,来获得相关数据。现有技术提供了一种对服务器返回的数据进行校验的方式。该方案通过一个或者多个固定的Jsonschema校验文件来校验所有接口数据的完整性。每次服务器端返回数据或者app拿到数据前都进行校验,每个接口对应至少一个Jsonschema文件。因此该方案需要维护许多复杂的JsonSchema文件,维护起来繁琐且复杂。
因此,需要一种对数据进行校验的方案,以至少部分地避免现有技术中维护困难的问题。
发明内容
有鉴于此,本公开提供了一种数据校验方法、数据校验设备和对应的计算机可读存储介质。
本公开的一个方面提供了一种用于数据校验的方法。该方法包括从应用接收应用接口请求,所述应用接口请求包括入口参数;向对应的微服务透明传输接收到的应用接口请求;从对应的微服务接收实例数据;以及基于所述入口参数来对接收到的实例数据进行校验。
根据本公开的一些实施例,接收到的实例数据包括多个层级的数据,所述多个层级的数据在各层级具有相应的键值对。在该情况下,基于入口参数来对接收到的实例数据进行校验可包括:获取多个层级的数据在各层级的键值对;以及将所获取的键值对与在之前获取并缓存的一个或多个实例数据的键值对逐层级进行比较,以对接收到的实例数据进行校验。其中,该在之前获取并缓存的一个或多个实例数据的键值对也针对于具有所述入口参数的应用接口请求。
根据本公开的一些实施例,将所获取的键值对与在之前获取并缓存的一个或多个实例数据的键值对逐层级进行比较以对接收到的实例数据进行校验可包括:如果接收到的实例数据中的多个层级中存在其键值对与之前获取并缓存的一个或多个实例数据的键值对不同的层级,存储接收到的实例数据,以用于后续接收到的实例数据的校验。
根据本公开的一些实施例,将所获取的键值对与在之前获取并缓存的一个或多个实例数据的键值对逐层级进行比较以对接收到的实例数据进行校验可包括:如果与之前获取并缓存的一个或多个实例数据相比,接收到的实例数据缺少一个或多个键值对,或者如果接收到的实例数据不是在预定时间段内接收到的,则确定接收到的实例数据发生了数据异常。
根据本公开的一些实施例,该方法还可包括报告数据异常,以通过干预的方式处理所述数据异常。该方法还可包括缓存其数据异常得到处理的实例数据,以用于后续接收到的实例数据的校验。
根据本公开的一些实施例,通过干预的方式处理数据异常可包括:放弃发生了数据异常的实例数据;或者将发生了数据异常的实例数据作为标准数据,以用于后续接收到的实例数据的校验。
本公开的另一个方面提供了一种用于数据校验的设备。该设备包括第一接收单元、第一发送单元、第二接收单元和校验单元。第一接收单元用于从应用接收应用接口请求,所述应用接口请求包括入口参数。第一发送单元用于向对应的微服务透明传输接收到的应用接口请求。第二接收单元用于从对应的微服务接收实例数据。校验单元用于基于所述入口参数来对接收到的实例数据进行校验。
根据本公开的一些实施例,接收到的实例数据包括多个层级的数据,所述多个层级的数据在各层级具有相应的键值对。在此情况下,校验单元还可用于:获取所述多个层级的数据在各层级的键值对;以及将所获取的键值对与在之前获取并缓存的一个或多个实例数据的键值对逐层级进行比较,以对所述接收到的实例数据进行校验,其中,所述在之前获取并缓存的一个或多个实例数据的键值对针对于具有所述入口参数的应用接口请求。
根据本公开的一些实施例,校验单元还可用于:确定所述接收到的实例数据中的多个层级中存在其键值对与所述之前获取并缓存的一个或多个实例数据的键值对不同的层级。设备还可包括缓存单元,该缓存单元用于存储所述接收到的实例数据,以用于后续接收到的实例数据的校验。
根据本公开的一些实施例,校验单元还可用于:如果与之前获取并缓存的一个或多个实例数据相比,所述接收到的实例数据缺少一个或多个键值对,或者如果所述接收到的实例数据不是在预定时间段内接收到的,则确定所述接收到的实例数据发生了数据异常。
根据本公开的一些实施例,该设备还可包括异常情况处理单元。异常情况处理单元用于报告数据异常,以通过干预的方式处理所述数据异常。在此情况下,缓存单元还可用于缓存其数据异常得到处理的实例数据,以用于后续接收到的实例数据的校验。
根据本公开的一些实施例,通过干预的方式处理所述数据异常可包括:放弃发生了数据异常的实例数据;或者将发生了数据异常的实例数据作为标准数据,以用于后续接收到的实例数据的校验。
本公开的另一方面提供了一种用于处理数据的设备。该设备包括存储计算机可执行指令的存储器以及处理器。处理器执行存储器存储的计算机可执行指令,以执行如上所述的方法。
本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
上述方案通过针对入口参数来进行数据校验,至少部分地避免现有技术中由于需要通过一个或者多个固定的Jsonschema校验文件来校验所有接口数据的完整性所导致的维护困难的问题。
附图说明
通过下面结合附图对本公开实施例进行的详细描述,将使本公开的上述特征和优点更加明显,其中:
图1示出了根据本公开实施例的一种数据校验方法的简要流程图;
图2示出了根据本公开实施例的数据校验设备的简要框图;
图3示出了根据本公开实施例的设备连接关系的示意图;
图4示出根据本公开实施例的数据校验的具体实现的示例流程;
图5示出了根据本公开实施例的数据处理设备的示例硬件布置的框图;以及
图6示意性示出了根据本公开实施例的可以应用根据图1所示方法的示例性***架构600。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。这里使用的词语“一”、“一个(种)”和“该”等也应包括“多个”、“多种”的意思,除非上下文另外明确指出。此外,在此使用的术语“包括”、“包含”等表明了所述特征、操作、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、操作、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行***使用或者结合指令执行***使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体***、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
图1示出了根据本公开实施例的一种数据校验方法的简要流程图。
如图1所示,该方法包括操作S110,从应用接收应用接口请求,应用接口请求包括入口参数;
操作S120,向对应的微服务透明传输接收到的应用接口请求;
操作S130,从对应的微服务接收实例数据;以及
操作S140,基于入口参数来对接收到的实例数据进行校验。
在一些示例中,接收到的实例数据可包括多个层级的数据,该多个层级的数据在各层级具有相应的键值对。在该情况下,基于入口参数来对接收到的实例数据进行校验包括:获取多个层级的数据在各层级的键值对;以及将所获取的键值对与在之前获取并缓存的一个或多个实例数据的键值对逐层级进行比较,以对接收到的实例数据进行校验,其中,在之前获取并缓存的一个或多个实例数据的键值对针对于具有上述入口参数的应用接口请求。
在一些示例中,将所获取的键值对与在之前获取并缓存的一个或多个实例数据的键值对逐层级进行比较以对接收到的实例数据进行校验可包括:如果接收到的实例数据中的多个层级中存在其键值对与之前获取并缓存的一个或多个实例数据的键值对不同的层级,存储接收到的实例数据,以用于后续接收到的实例数据的校验。
在一些示例中,将所获取的键值对与在之前获取并缓存的一个或多个实例数据的键值对逐层级进行比较以对接收到的实例数据进行校验可包括:如果与之前获取并缓存的一个或多个实例数据相比,接收到的实例数据缺少一个或多个键值对,或者如果接收到的实例数据不是在预定时间段内接收到的,则确定接收到的实例数据发生了数据异常。
在一些示例中,该方法还可包括报告数据异常,以通过干预的方式处理数据异常。该方法还可包括缓存其数据异常得到处理的实例数据,以用于后续接收到的实例数据的校验。
本文所述的干预可包括用户在接收到警报(如短信)之后进行的人工干预,也可以包括***在接收到警报之后,根据预先定义的处理规则进行的自动干预,本公开实施例不受具体干预措施的具体实现方式的限制。例如,可通过短信的方式通知用户,由用户来处理异常情况。这里所说的用户可以是本公开所述的设备或***的开发人员、维护人员或具有异常情况处理权限/参数修改权限的任何其他人员,本公开不对此进行限制。
在一些示例中,通过干预的方式处理数据异常可包括:放弃发生了数据异常的实例数据;或者将发生了数据异常的实例数据作为标准数据,以用于后续接收到的实例数据的校验。
图2示出了与图1所示的方法相对应的数据校验设备的简化框图。如图2所示,该设备包括第一接收单元210、第一发送单元220、第二接收单元230和校验单元240。第一接收单元210用于从应用接收应用接口请求,应用接口请求包括入口参数。第一发送单元220用于向对应的微服务透明传输接收到的应用接口请求。第二接收单元230用于从对应的微服务接收实例数据。校验单元240用于基于入口参数来对接收到的实例数据进行校验。
在一些示例中,接收到的实例数据包括多个层级的数据,多个层级的数据在各层级具有相应的键值对。在此情况下,校验单元240还可用于:获取多个层级的数据在各层级的键值对;以及将所获取的键值对与在之前获取并缓存的一个或多个实例数据的键值对逐层级进行比较,以对接收到的实例数据进行校验,其中,在之前获取并缓存的一个或多个实例数据的键值对针对于具有上述入口参数的应用接口请求。
在一些示例中,校验单元240还可用于:确定接收到的实例数据中的多个层级中存在其键值对与之前获取并缓存的一个或多个实例数据的键值对不同的层级。
设备还可包括缓存单元250,该缓存单元250用于存储接收到的实例数据,以用于后续接收到的实例数据的校验。
在一些示例中,校验单元240还可用于:如果与之前获取并缓存的一个或多个实例数据相比,接收到的实例数据缺少一个或多个键值对,或者如果接收到的实例数据不是在预定时间段内接收到的,则确定接收到的实例数据发生了数据异常。
在一些示例中,该设备还可包括异常情况处理单元260。异常情况处理单元260用于报告数据异常,以通过干预的方式处理数据异常。在此情况下,缓存单元260也可用于缓存其数据异常得到处理的实例数据,以用于后续接收到的实例数据的校验。
在一些示例中,通过干预的方式处理所述数据异常可包括:放弃发生了数据异常的实例数据;或者将发生了数据异常的实例数据作为标准数据,以用于后续接收到的实例数据的校验。
在一些示例中,该设备还可包括第二发送单元270,用于向应用返回经过校验的实例数据。具体地,该经过校验的实例数据可以是经过异常情况处理单元260处理后的实例数据。
需要注意的是,虽然在图3中将第一接收单元210/第一发送单元220示出为连接到缓存单元250,以表示可将第一接收单元210/第一发送单元220接收/发送的数据存储/缓存在缓存单元250中,然而第一接收单元210接收到的数据也可以经由第一发送单元220直接发送,本公开不对此进行限制。
下面,将参考图3和图4更详细地说明本公开的技术方案。图3示出了根据本公开实施例的设备连接关系的示意图。在图3中将根据本公开的用于数据校验的设备示出为API(应用接口)网关,然而也可以使用任何其它的名称,只要其能实现本公开实施例所述设备的功能。
随着互联网业务的快速发展,大型互联网公司包含众多的业务平台,且为了方便用户使用都会发布自己的app。如果每个应用都有自己的API出口,维护修改会牵扯到很复杂的依赖逻辑。为了方便在多个平台上进行快速的业务复制和业务管控,本公开实施例引入了用于处理这些业务复制和业务管控的设备。在本公开的一些实施例中,这样的设备可被用作网关,例如图3中示出的API网关。在此情况下,除了图2所述功能之外,API网关也可具有网关通常具有的控流、安全、审计、监控等功能,在此不再赘述。当然,也可以采用可处理业务复制和业务管控的其他任何设备,而不限于API网关。具体地,一个应用接口请求(例如app请求)可经过例如API网关透明传输到多个soa(微服务)。
该网关可相当于接口透传平台,将所有应用接口请求透明传输到相应的soa(微服务)。在实际应用中,每个微服务通常可由一个团队来维护。本公开实施例在例如API网关通过针对入口参数来进行数据校验,至少部分地避免现有技术中由于需要通过一个或者多个固定的Jsonschema校验文件来校验所有接口数据的完整性所导致的维护困难的问题。
在本公开的一些实施例中,可通过数据训练的方式来进行数据校验。
图4示出了根据本公开实施例的用于数据校验的方法的一个具体实现的示例流程。如图4所示,该具体实现的具体方式如下:
操作410.API网关接收到来自app的API请求,该API包括入口参数,入口参数的结构可以是键值(key&value)一一对应的方式。例如x1=22,x2=4555等;
操作420.API网关将接收到的API请求透明(即,不经处理)传输给对应的微soa,接收该对应soa返回的json结构的实例数据;
操作430.API网关通过例如缓存器(例如缓存器redis)将键(key)存储为请求入口参数,可以记录为(x1,x2),值(value)为返回的json结构数据。例如json结构数据的示例可如下所示:
在例如上述json结构数据中,code代表操作码,success代表返回数据正确或者错误,data为具体的返回数据。该数据由多个层级数据组合而成。需要注意的是,虽然上述示例中data具有两个层级,但本公开实施例不限于此,也可应用具有更多或更少层级的data。此外,虽然将x1和x2作为入口参数的示例来描述,但在具体的实现中,也可能存在更多或更少的入口参数。
一般而言,所有的json数据都可以是多层级键值对(key&value)结构。可以预定义一个正常运行的时间段来作为正常运行时间段。在本公开实施例中,可默认在正常运行时间段期间所获得的数据是基本正常的数据,且可用于与之后获得的数据进行对比来进行数据校验。该正常运行时间段可根据需要来选取。例如,可选择在服务器端和app端都测试通过后的一个小时,但不限于此,也可以是其他的时间段,例如1天、2天、1周等等。在本公开的一些实施例中,时间段的选择可以是连续的,然而在另一些实施例中,时间段的选择也可以是随机的、具有具体间隔的、具有具体特征的(例如,每天的某段时间等等)或采用本领域技术人员常用或可能想到的其他时间段选取方式,在此不再赘述。
在正常运行时间段期间获取并缓存这个时间段中的第一次返回的json结构数据作为完整数据,假设为data1,当下一次接收到具有相同入口参数的接口请求时,缓存该次返回的json结构数据,通过将两次返回的json结构数据进行比较来进行数据校验。比较方法的一个示例如下所述:
如上述代码可以看出,所获得的从soa返回的针对具体入口参数的json结构数据可包括code,success,data,其中,可以干预code和data以使其等于可能存在的值(例如,其取值集合中的值)。然而data具有很多可能的值,例如各个层级的json对象的各种可能取值的不同组合,对其进行(例如人工)干预无疑是复杂而耗时的。本公开实施例可通过根据得到的正常运行期的数据来不断进行干预+自动预判来得到更多的完整数据,以作为下一次校验的标准数据。在校验过程中,需要针对data中的每个层级的数据分别进行校验。在上一层级的数据校验成功后开始下一层级数据的校验,而在上一层级的数据校验不成功时即可判定本次校验的数据与上述校验的数据是data的不同取值,不需要再进行下一层级数据的校验。
当对在获得data1之后的各个data进行验证时,例如可首先获取data中的第一个层级(针对上述的结构数据是“下一个层级”)的数据的各个键值对,并校验是否为空(null)。对于不为空的键值对,可在然后将上一次拿到的该层级键值对(例如,data1)和本次拿到的该层级键值对做对比。如果对比结果显示两次拿到的键值对不同,且数据获取的时间段是正常运行时间段,则可以存储这些不为空值的键值以用于下一次的数据校验,并结束本次数据校验。
如果对比结果显示两次拿到的键值对相同,则表明data中本层级的数据校验成功。尝试获取下一个层级的数据并进行校验。如果不存在下一个层级数据则结束本次校验,如果存在下一个层级数据则继续上述校验的操作,将数据与上一次完整数据相同层级的key、value作对比,并依此类推,直至data中所有的层级都比较完成或直到某一层级中出现不同的键值对。
如果存在字段缺失(例如实例数据与之前实例数据相比缺少某个或某些键值对)和/或数据获取时间不在(例如开发者)预定义的正常运行时间段内,则表明实例数据出现数据异常情况。如果不存在字段缺失且数据获取时间在该预定义的正常运行时间段内(即,实例数据正常),而且实例数据和data1不一样,则缓存本次校验的实例数据,以作为下一次对比的一个依据。可将该结果(缓存的实例数据)假设为data2。
正常运行时间段内可能还存在多次比较结果data3,data4...。在一些实施例中,在每一次的比较中,都需要与之前缓存的所有比较结果进行对比。例如在校验data3时,需要与data1和data2二者都进行逐层级的键值对比较。
针对不同的场景,数据是否正常可具有不同的定义。例如在本公开的一些实施例中,可将多层级结构中的键值有新增的情况认为是数据正常情况,而在另一些实施例中,也可将该情况认为是数据异常情况。本公开实施例不受数据正常与否的不同具体定义的限制。
操作440.在下一正常运行时间段期间,网关也可能从各个app接收到具有相同入口参数的接口请求,即,请求的入口参数还是x1,x2。此时,可遍历所缓存的所有的比较结果(包括上一正常运行时间段期间缓存的结果以及本次正常运行时间段期间之前缓存的结果,例如从缓存器获取的各个data1,data2,data3,data4...),与当前实例数据的各层级的结构数值和键值对作对比。如果有新增的值,可以提示有新增,并将实例数据正常返回给app(因为新增key一般不会对app解析json有影响),如果发现当前实例数据缺少key,则表明app接收到该实例数据时可能存在空指针或者数据为空的情况下,即出现实例数据出现数据异常情况,从而具有显示错乱的风险。
这时候API网关可以例如以发短信等方式发出警报。在接收到警报后可通过干预的方式来解决这个问题。例如,可通过放弃此数据或者将此数据作为标准数据等方式来解决该问题,或者可采用本领域技术人员常用或可能想到的其他任何干预措施,在此不再赘述。需要注意的是,这种警报和干预的方式同样适用于操作430期间检查到数据出现异常的情况。
此外,本文所述的干预可包括用户(例如,开发人员或具有特定权限的其他人员)在接收到警报(如短信)之后进行的人工干预,也可以包括***在接收到警报之后,根据预先定义的处理规则进行的自动干预,本公开实施例不受具体干预措施的具体实现方式的限制。
需要注意的是,对于缓存的对比结果data1,data2,data3,data4...,可针对每个正常运行时间段分别命名,也可以针对所有正常运行时间段统一命名,或采用本领域技术人员可能想到或使用的其他方式命名,本公开实施例不受具体命名方式的限制。
操作450.在干预后,可以缓存干预后的结果来作为该干预所对应的数据校验的结果。然后在下一正常运行时间段内,可将前两个正常运行时间段内返回的json数据(data1,data2,data3...)与第三个正常运行时间段接收到的数据继续做比对,以此类推。当前,在一些实施例中,也可以设置要进行比较的正常运行时间段的数量,例如,仅与前两个正常运行时间段进行比较,并仅缓存前两个正常运行时间段的数据等,当然,也可以采用更多或更少的正常运行时间段。需要注意的是,在第二个正常运行时间段期间仅需要与在第一个正常运行时间段内缓存的数据进行对比。
上述实施例在一个正常运行时间段期间缓存数据并获取所缓存的数据来进行校验,然而在另一些实施例中,也可以在一个正常运行时间段期间仅缓存数据,而在该时间段之后从例如缓冲器(如redis缓存器)中提取所缓存的数据来集中进行数据校验,或在缓存数据之后的任何其他时刻提取所缓存的数据来进行数据校验。
上述实施例通过定义一个运行正常期来得到正确的接口json数据训练校验标准数据,然后在实际运行中,将新获取的数据与训练校验标准数据做层级和键值比较,如果发现缺少键值则发出警报,通过干预放弃此数据或者将其作为标准数据,如果有新增键值,则可将其自动新增为标准数据。通过此方式实现了高效的json结构数据校验。
图5示意性示出了根据本公开的实施例的用于文件传递的设备的框图,其对应于图2所示的设备。图5示出的设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,根据该实施例的设备500包括中央处理单元(CPU)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储部分508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有设备500操作所需的各种程序和数据。CPU 501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
设备500还可以包括连接至I/O接口505的以下部件中的一项或多项:包括键盘、鼠标等的输入部分506;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分507;包括硬盘等的存储部分508;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分509。通信部分509经由诸如因特网的网络执行通信处理。驱动器510也根据需要连接至I/O接口505。可拆卸介质511,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器510上,以便于从其上读出的计算机程序根据需要被安装入存储部分508。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分509从网络上被下载和安装,和/或从可拆卸介质511被安装。在该计算机程序被中央处理单元(CPU)501执行时,执行本公开实施例的设备中限定的上述功能。
需要说明的是,本公开所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
作为另一方面,本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备执行图1所示的方法。
图6示意性示出了根据本公开实施例的可以应用根据图1所示方法的示例性***架构600。
如图6所示,根据该实施例的***架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备601、602、603可以是具有显示屏并且具有数据处理能力的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。终端设备601、602、603也可以是本公开实施例中执行具体业务的设备的表示。
服务器605可以是提供各种服务的服务器,例如可以作为本公开实施例中所述的API网关。本公开实施例所提供的图1所示的方法可在服务器605上执行。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (14)

1.一种用于数据校验的方法,包括:
从应用接收应用接口请求,所述应用接口请求包括入口参数;
向对应的微服务透明传输接收到的应用接口请求;
从对应的微服务接收实例数据;以及
基于所述入口参数来对接收到的实例数据进行校验。
2.根据权利要求1所述的方法,其中,所述接收到的实例数据包括多个层级的数据,所述多个层级的数据在各层级具有相应的键值对,所述基于所述入口参数来对接收到的实例数据进行校验包括:
获取所述多个层级的数据在各层级的键值对;以及
将所获取的键值对与在之前获取并缓存的一个或多个实例数据的键值对逐层级进行比较,以对所述接收到的实例数据进行校验,其中,所述在之前获取并缓存的一个或多个实例数据的键值对针对于具有所述入口参数的应用接口请求。
3.根据权利要求2所述的方法,其中,将所获取的键值对与在之前获取并缓存的一个或多个实例数据的键值对逐层级进行比较以对所述接收到的实例数据进行校验包括:
如果所述接收到的实例数据中的多个层级中存在其键值对与所述之前获取并缓存的一个或多个实例数据的键值对不同的层级,存储所述接收到的实例数据,以用于后续接收到的实例数据的校验。
4.根据权利要求2所述的方法,其中,将所获取的键值对与在之前获取并缓存的一个或多个实例数据的键值对逐层级进行比较以对所述接收到的实例数据进行校验包括:
如果与之前获取并缓存的一个或多个实例数据相比,所述接收到的实例数据缺少一个或多个键值对,或者如果所述接收到的实例数据不是在预定时间段内接收到的,则确定所述接收到的实例数据发生了数据异常。
5.根据权利要求4所述的方法,还包括:
报告所述数据异常,以通过干预的方式处理所述数据异常;以及
缓存其数据异常得到处理的实例数据,以用于后续接收到的实例数据的校验。
6.根据权利要求5所述的方法,其中,通过干预的方式处理所述数据异常包括:
放弃发生了数据异常的实例数据;或者
将发生了数据异常的实例数据作为标准数据,以用于后续接收到的实例数据的校验。
7.一种用于数据校验的设备,包括:
第一接收单元,用于从应用接收应用接口请求,所述应用接口请求包括入口参数;
第一发送单元,用于向对应的微服务透明传输接收到的应用接口请求;
第二接收单元,用于从对应的微服务接收实例数据;以及
校验单元,用于基于所述入口参数来对接收到的实例数据进行校验。
8.根据权利要求7所述的设备,其中,所述接收到的实例数据包括多个层级的数据,所述多个层级的数据在各层级具有相应的键值对,所述校验单元还用于:
获取所述多个层级的数据在各层级的键值对;以及
将所获取的键值对与在之前获取并缓存的一个或多个实例数据的键值对逐层级进行比较,以对所述接收到的实例数据进行校验,其中,所述在之前获取并缓存的一个或多个实例数据的键值对针对于具有所述入口参数的应用接口请求。
9.根据权利要求8所述的设备,其中,所述校验单元还用于:确定所述接收到的实例数据中的多个层级中存在其键值对与所述之前获取并缓存的一个或多个实例数据的键值对不同的层级;以及
所述设备还包括:缓存单元,用于存储所述接收到的实例数据,以用于后续接收到的实例数据的校验。
10.根据权利要求8所述的设备,其中,所述校验单元还用于:
如果与之前获取并缓存的一个或多个实例数据相比,所述接收到的实例数据缺少一个或多个键值对,或者如果所述接收到的实例数据不是在预定时间段内接收到的,则确定所述接收到的实例数据发生了数据异常。
11.根据权利要求10所述的设备,还包括:
异常情况处理单元,用于报告所述数据异常,以通过干预的方式处理所述数据异常,
其中,所述缓存单元还用于缓存其数据异常得到处理的实例数据,以用于后续接收到的实例数据的校验。
12.根据权利要求10或11所述的设备,其中,通过干预的方式处理所述数据异常包括:
放弃发生了数据异常的实例数据;或者
将发生了数据异常的实例数据作为标准数据,以用于后续接收到的实例数据的校验。
13.一种用于处理数据的设备,包括:
存储器,存储计算机可执行指令;以及
处理器,执行所述存储器存储的计算机可执行指令,以执行根据权利要求1至6中任一项所述的方法。
14.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器执行根据权利要求1至6中任一项所述的方法。
CN201710644918.3A 2017-07-31 2017-07-31 数据校验方法及其设备 Active CN107403112B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710644918.3A CN107403112B (zh) 2017-07-31 2017-07-31 数据校验方法及其设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710644918.3A CN107403112B (zh) 2017-07-31 2017-07-31 数据校验方法及其设备

Publications (2)

Publication Number Publication Date
CN107403112A true CN107403112A (zh) 2017-11-28
CN107403112B CN107403112B (zh) 2020-07-31

Family

ID=60402245

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710644918.3A Active CN107403112B (zh) 2017-07-31 2017-07-31 数据校验方法及其设备

Country Status (1)

Country Link
CN (1) CN107403112B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108089956A (zh) * 2017-12-07 2018-05-29 畅捷通信息技术股份有限公司 验证接口的返回数据的方法及***
CN108696598A (zh) * 2018-07-26 2018-10-23 廊坊新奥燃气设备有限公司 一种微服务架构下将无状态服务接收到的消息通过长连接透传的方法和装置
CN110377471A (zh) * 2019-07-17 2019-10-25 江苏满运软件科技有限公司 接口校验数据的生成方法、装置、存储介质及电子设备
CN117707653A (zh) * 2024-02-06 2024-03-15 天津医康互联科技有限公司 参数监控方法、装置、电子设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105099811A (zh) * 2015-06-03 2015-11-25 北京金山安全软件有限公司 一种接口测试方法和装置
CN105868050A (zh) * 2015-12-29 2016-08-17 乐视网信息技术(北京)股份有限公司 基于json数据的验证方法及装置
CN105893237A (zh) * 2015-08-04 2016-08-24 乐视致新电子科技(天津)有限公司 一种测试数据驱动的方法及设备
CN106155891A (zh) * 2015-04-02 2016-11-23 阿里巴巴集团控股有限公司 接口测试方法、接口描述数据库生成方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155891A (zh) * 2015-04-02 2016-11-23 阿里巴巴集团控股有限公司 接口测试方法、接口描述数据库生成方法及装置
CN105099811A (zh) * 2015-06-03 2015-11-25 北京金山安全软件有限公司 一种接口测试方法和装置
CN105893237A (zh) * 2015-08-04 2016-08-24 乐视致新电子科技(天津)有限公司 一种测试数据驱动的方法及设备
CN105868050A (zh) * 2015-12-29 2016-08-17 乐视网信息技术(北京)股份有限公司 基于json数据的验证方法及装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108089956A (zh) * 2017-12-07 2018-05-29 畅捷通信息技术股份有限公司 验证接口的返回数据的方法及***
CN108089956B (zh) * 2017-12-07 2021-05-04 畅捷通信息技术股份有限公司 验证接口的返回数据的方法及***
CN108696598A (zh) * 2018-07-26 2018-10-23 廊坊新奥燃气设备有限公司 一种微服务架构下将无状态服务接收到的消息通过长连接透传的方法和装置
CN108696598B (zh) * 2018-07-26 2021-04-13 廊坊新奥智能科技有限公司 一种微服务架构下将无状态服务接收到的消息通过长连接透传的方法和装置
CN110377471A (zh) * 2019-07-17 2019-10-25 江苏满运软件科技有限公司 接口校验数据的生成方法、装置、存储介质及电子设备
CN110377471B (zh) * 2019-07-17 2022-08-23 江苏满运软件科技有限公司 接口校验数据的生成方法、装置、存储介质及电子设备
CN117707653A (zh) * 2024-02-06 2024-03-15 天津医康互联科技有限公司 参数监控方法、装置、电子设备及计算机可读存储介质
CN117707653B (zh) * 2024-02-06 2024-05-10 天津医康互联科技有限公司 参数监控方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN107403112B (zh) 2020-07-31

Similar Documents

Publication Publication Date Title
CN109446071A (zh) 接口测试方法、接口测试装置、电子设备及存储介质
CN103220325B (zh) 用于在云计算环境中管理硬件组件的方法和***
CN110310034A (zh) 一种应用于SaaS的服务编排、业务流程处理方法和装置
CN109002842A (zh) 图像识别方法和装置
CN107403112A (zh) 数据校验方法及其设备
CN104572167B (zh) 启动和管理无人参与的应用程序的方法和计算机***
CN111555940B (zh) 客户端的测试方法、装置、电子设备及计算机可读存储介质
US10044837B2 (en) Generation and distribution of named, definable, serialized tokens
CN104714529B (zh) 电动汽车的远程监控平台***
CN107066609A (zh) 图片显示方法和装置
CN109074265A (zh) 移动云服务的预先形成的指令
CN110109979A (zh) 一种配置表单选项方法和装置
CN109684188A (zh) 测试方法和装置
CN110232091A (zh) 用于同步数据的方法、***和装置
CN110427304A (zh) 用于银行***的运维方法、装置、电子设备以及介质
CN109254914A (zh) 软件开发包测试方法、***、计算机装置及可读存储介质
CN108182472A (zh) 用于生成信息的方法和装置
CN106465113A (zh) 特定场所的Wi‑Fi连接通知
CN105511914B (zh) 应用更新方法、装置和***
CN109218041A (zh) 用于服务器***的请求处理方法和装置
CN109885564A (zh) 用于发送信息的方法和装置
CN111798251A (zh) 房源数据的验证方法、装置和电子设备
CN110347380A (zh) 前后端开发方法及设备
CN109871294A (zh) 用于校验数据、处理请求的方法和装置
CN109145591A (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
CB03 Change of inventor or designer information

Inventor after: Li Shuqian

Inventor after: Zhu Dewei

Inventor before: Zhu Dewei

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant