CN109426720A - 接口参数的验证方法及相关装置 - Google Patents

接口参数的验证方法及相关装置 Download PDF

Info

Publication number
CN109426720A
CN109426720A CN201710779610.XA CN201710779610A CN109426720A CN 109426720 A CN109426720 A CN 109426720A CN 201710779610 A CN201710779610 A CN 201710779610A CN 109426720 A CN109426720 A CN 109426720A
Authority
CN
China
Prior art keywords
node
identifying object
interface parameters
verified
checker
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
CN201710779610.XA
Other languages
English (en)
Other versions
CN109426720B (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 Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum 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 Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201710779610.XA priority Critical patent/CN109426720B/zh
Publication of CN109426720A publication Critical patent/CN109426720A/zh
Application granted granted Critical
Publication of CN109426720B publication Critical patent/CN109426720B/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种接口参数的验证方法及相关装置,其中,所述方法包括:获取待验证的接口参数对应的规则树,其中,待验证的接口参数包括至少一个验证对象,规则树包括与每一个验证对象对应的节点;采用每个节点的基本校验器分别验证对应节点的验证对象,并生成每个验证对象的对象验证结果;按照待验证的接口参数的结构,组合生成的对象验证结果,得到待验证的接口参数的验证结果。本发明提供的接口参数的验证方法中,解决了现有接口参数的验证过程中存在的用于执行接口参数验证的程序的可读性、可维护性和灵活性均较低的问题、以及接口参数的验证过程用时较长,效率较低的问题。

Description

接口参数的验证方法及相关装置
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种接口参数的验证方法及相关装置。
背景技术
当今,异构系统之间需要通过接口进行数据通信。并且,在不同系统间的数据通信过程中,需要保障接口调用的安全性。目前,校验接口参数,是防治非法数据侵入系统、保证接口安全的手段之一。
在基于nodejs开发的接口,进行接口参数验证时的常用方法是,在接口内获取接口调用时所传递的参数,对其进行逐个字段的排查。
但是,对接口参数逐个字段的排查的方式,使得用于执行接口参数验证的程序包含有大量的非业务逻辑的代码,降低了程序的可读性、可维护性以及灵活性。并且,对接口参数完成验证后,需要在验证结果中说明接口参数哪些字段出现错误。但是,如何清楚的说明接口参数中出现错误的字段的位置是较为复杂的工作,尤其在接口参数是深层次的嵌套结构的情况下,这样就导致接口参数的验证过程用时较长,效率较低。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的接口参数的验证方法及相关装置。
一种接口参数的验证方法,包括:
获取待验证的接口参数对应的规则树,其中,所述待验证的接口参数包括至少一个验证对象,所述规则树包括与每一个所述验证对象对应的节点;
采用每个节点的基本校验器分别验证对应所述节点的验证对象,并生成每个验证对象的对象验证结果;
按照所述待验证的接口参数的结构,组合所述生成的对象验证结果,得到待验证的接口参数的验证结果。
可选地,在获取所述待验证的接口参数对应的规则树之前,还包括:
根据预先设定的、待验证的接口参数对应的接口参数验证规则,生成所述待验证的接口参数对应的规则树,其中,所述接口参数验证规则,用于验证所述待验证的接口参数中的各个需要验证的验证对象是否满足预先设定的条件。
可选地,根据预先设定的、待验证的接口参数对应的接口参数验证规则,生成所述待验证的接口参数对应的规则树,包括:
从预先设定、且与所述待验证的接口参数所对应的接口参数验证规则中,提取出所有的所述验证对象;确定每个所述验证对象适用的基本校验器以及所述验证对象间的层级关系;其中,所述基本校验器用于验证对应的验证对象是否满足所述预先设定的条件;
将每个所述验证对象作为一个节点,根据每个所述验证对象适用的基本校验器以及所述验证对象间的层级关系,生成拥有唯一根节点的树形结构的所述规则树;其中,所述规则树中的每个节点上的属性都包括该节点对应的基本校验器以及该节点下的所有子节点。
可选地,所述规则树包括至少两个节点,所述采用每个节点的基本校验器分别验证对应所述节点的验证对象,并生成每个验证对象的对象验证结果,包括:
按照所述规则树中根节点到子节点的顺序,依次采用每个所述节点的基本校验器分别验证对应所述节点的验证对象,直至所述规则树中的节点均被用于验证所述验证对象为止;
其中,若一个所述节点对应的验证对象完成验证过程,则生成所述对象验证结果。
可选地,采用所述每个节点的基本校验器验证对应所述节点的验证对象,并生成所述对象验证结果,包括:
判断所述每个节点对应的验证对象是否满足所述节点的基本校验器的要求;
若判断出所述节点对应的验证对象不满足所述节点的基本校验器的要求,则生成所述对象验证结果;其中,所述对象验证结果包括验证失败。
可选地,若判断出所述节点对应的验证对象不满足所述节点的基本校验器的要求之后,还包括:
依据验证对象和验证对象对应的节点的基本校验器的匹配关系,获得判断出不满足节点的基本校验器的要求的验证对象的错误描述信息;
其中,所述对象验证结果还包括:错误描述信息。
一种接口参数的验证装置,包括:
获取单元,用于获取待验证的接口参数对应的规则树,其中,所述待验证的接口参数包括至少一个验证对象,所述规则树包括与每一个所述验证对象对应的节点;
验证单元,用于采用每个节点的基本校验器分别验证对应所述节点的验证对象,并生成每个验证对象的对象验证结果;
生成单元,用于按照所述待验证的接口参数的结构,组合所述生成的对象验证结果,得到待验证的接口参数的验证结果。
可选地,还包括:
规则树生成单元,用于根据预先设定的、待验证的接口参数对应的接口参数验证规则,生成所述待验证的接口参数对应的规则树,其中,所述接口参数验证规则,用于验证所述待验证的接口参数中的各个需要验证的验证对象是否满足预先设定的条件;
其中,所述规则树生成单元,包括:
提取单元,用于从预先设定、且与所述待验证的接口参数所对应的接口参数验证规则中,提取出所有的所述验证对象;
确定单元,用于确定每个所述验证对象适用的基本校验器以及所述验证对象间的层级关系;其中,所述基本校验器用于验证对应的所述验证对象是否满足所述预先设定的条件;
规则树生成子单元,用于将每个所述验证对象作为一个节点,根据每个所述验证对象适用的基本校验器以及所述验证对象间的层级关系,生成拥有唯一根节点的树形结构的所述规则树;其中,所述规则树中的每个节点上的属性都包括该节点对应的基本校验器以及该节点下的所有子节点。
一种计算机存储介质,所述计算机存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如上述任意一项所述的接口参数的验证方法。
一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行如上述任意一项所述的接口参数的验证方法。
借由上述技术方案,本发明提供的接口参数的验证方法中,解决了现有接口参数的验证过程中存在的用于执行接口参数验证的程序的可读性、可维护性和灵活性均较低的问题、以及接口参数的验证过程用时较长,效率较低的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例公开的接口参数的验证方法的流程图;
图2示出了本发明施例公开的规则树的示意图;
图3示出了本发明另一实实施例公开的接口参数的验证方法的流程图;
图4示出了本发明实施例公开的接口参数的验证装置的结构示意图;
图5示出了本发明另一实施例公开的接口参数的验证装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本申请实施例公开了一种接口参数的验证方法,参见图1,包括步骤:
S101、获取待验证的接口参数对应的规则树。
其中,所述待验证的接口参数包括至少一个验证对象。对接口参数进行验证即对接口参数包括的每一个验证对象进行验证。
所述规则树预先生成,其结构与所述待验证的接口参数的结构相同。所述规则树依据接口参数的验证规则而生成,因此,每一个规则树对应于一个接口,该接口被调用时会接收特定的接口参数,因此,要对接口参数验证,需要获取该接口参数对应的规则树。可选地,可以对规则树设置接口标识,并且,每一个接收的接口参数也包含有该接口标识,可以依据接口参数包含的接口标识,获取对应的规则树。
可选地,本申请的另一实施例中,步骤S101之前,还包括:
S100、根据预先设定的、待验证的接口参数对应的接口参数验证规则,生成所述待验证的接口参数对应的规则树,其中,所述接口参数验证规则,用于验证所述待验证的接口参数中的各个需要验证的验证对象是否满足预先设定的条件。
还需要说明的是,在步骤S100的一种实现方式中,该步骤包括:
S1001、从预先设定、且与所述待验证的接口参数所对应的接口参数验证规则中,提取出所有的所述验证对象。
其中,每一个待验证的接口参数均对应有接口参数验证规则,并且,接口参数规则中包括至少一个验证对象。
例如:一个用于创建用户的接口,针对该接口的待验证接口参数,制定的接口参数验证规则如下:
其中,本实例中,每一行的内容是一个验证对象。
S1002、确定每个所述验证对象适用的基本校验器以及所述验证对象间的层级关系。
其中,针对每个验证对象的验证需求,确定出其使用的基本验证器。并且,针对接口参数验证规则中验证对象的顺序,确定出验证对象间的层级关系。
具体的,所述基本校验器是执行接口参数验证工作的最小单元,是于验证对应的验证对象是否满足所述预先设定的条件用于验证接口参数的规则。可选地,根据实际的接口参数的验证对象的验证需求,每个所述验证对象适用的基本校验器可以包括以下校验器的一种或者任意组合;其中,所述校验器包括:Type校验器、Require校验器、Min校验器、Max校验器、Oneof校验器、Regexp校验器和Custom校验器。当然,还可以根据实际情况,包括其他类型的基本校验器,本实施例中以上述7种类型的校验器为例进行说明。
Type校验器是一种类型校验器,用于校验接口参数的数据类型是否符合预期值。Type校验器支持所有的javascript语言的基本类型和内置类型。例如,设定某个参数a的Type校验器的值为‘Number’,如果在实际接口调用时传递的参数a的类型不是个合法的数字,则该校验器就会校验失败。
Require校验器是一种必要性校验器,用于校验接口参数是否缺失或值是否为空。如果对某个参数设定了Require校验器,则Require校验器会将以下情况视为校验失败:参数值为空字符串、null、undefinded、Invalid Date、NaN、空数组和空对象(没有可遍历属性的对象,如{})。
Min校验器是一种数据范围校验器,用于校验数字参数的值是否不小于指定的值。若设定Min校验器的值为1,则说明验证接口参数是否不小于1,若接口参数的值为0或负数时,Min校验器就会校验失败。
Max校验器也是一种数据范围校验器,用于校验数字参数的值是否不大于指定的值。
Oneof校验器也是一种数据范围校验器,用于指定一组离散的有效值、并判断接口参数是否为指定的离散的有效值其中之一。例如:Oneof校验器指定红、黄、蓝三种颜色,则判断接口参数是否为三种颜色之一。
Regexp校验器是一种通用类型的正则校验器,用于校验参数的值是否满足指定的正则表达式,例如可以用于验证接口中的电话号码、邮箱等格式是否符合预期。
Custom校验器是一种通用类型的自定义校验器,可以接受一个校验方法,用户可在此校验方法内完成自定义的校验工作。
上述7种基本校验器相互配合使用,可选地,基本校验器执行校验工作时可以有一定的优先级。目前,针对实际接口参数的验证工作分析,制定的基本类型校验器的优先级如下:
Type>Require>Min>Max>Oneof>Regexp>Custom
当然,上述7种基本校验器还可以采用其他优先级顺序,此处不再一一说明。
在上述实例中,确定出的每一个验证对象的基本验证器如下:
验证对象name:String(字符串)类型,必填,包括Type校验器和Require校验器。
验证对象nick:String(字符串)类型,包括Type校验器。
验证对象age:Number(数字)类型,必填,包括Type校验器和Require校验器。
验证对象email:String(字符串)类型,必填,必须符合正则表达式指定的邮箱格式,包括Type校验器、Require校验器和Regexp校验器。
验证对象address:必填,包括Require校验器。
验证对象address.province:String(字符串)类型,必填,中国35个有效省份之一,包括Type校验器、Require校验器和Oneof校验器。
验证对象address.city:String(字符串)类型,必填,符合指定省份的有效地市之一,包括Type校验器、Require校验器和Custom校验器。
验证对象address.road:String(字符串)类型,必填,包括Type校验器、Require校验器。
上述验证对象间的层级关系的说明如下:
验证对象name、验证对象nick、验证对象age、验证对象email和验证对象address是同一层级;验证对象address.province、验证对象address.city和验证对象address.road是同一层级,且均是验证对象address的下一层级。
S1003、将每个所述验证对象作为一个节点,根据每个所述验证对象适用的基本校验器以及所述验证对象间的层级关系,生成拥有唯一根节点的树形结构的所述规则树;其中,所述规则树中的每个节点上的属性都包括该节点对应的基本校验器以及该节点下的所有子节点。
具体的,所述规则树中,节点间的层级关系等同于所述验证对象间的层级关系。上述实例中,形成的规则树如图2所示,规则树中的每个节点上都会包含两个重要的属性children和verifiers,其中,children记录了本节点下的所有子节点,而verifiers记录了本节点上的所有基本校验器。
在本实例中,假设上述接口被调用时,若接收到的参数如下,包括5个验证对象,如:name等。
S102、采用每个节点的基本校验器分别验证节点对应的验证对象,并生成对象验证结果。
所述每个节点的verifiers属性中,记录有本节点的所有基本校验器,利用基本校验器,验证该节点对应的验证对象,并生成每个验证对象的对象验证结果。
可选地,在一个具体实施方式,本步骤包括:
判断所述每个节点对应的验证对象是否满足所述节点的基本校验器的要求;
若判断出所述节点对应的验证对象不满足所述节点的基本校验器的要求,则生成所述对象验证结果;其中,所述对象验证结果包括验证失败。
具体的,一个节点的基本校验器可以为多个,若为多个,在判断出所述节点对应的验证对象不满足任何一个基本校验器时,则生成的对象验证结果中包括该基本校验器的验证失败的消息。
还需要说明的是,若判断出所述节点对应的验证对象满足所述节点的所有基本校验器的要求,则说明该节点对应的验证对象没有问题,可以直接退出该节点的验证工作,执行下一个节点的验证工作。当然,还可以是生成验证成功的对象验证结果,再执行下一个节点的验证工作。
在上述实例中,获取图2所示的规则树中的每个节点,采用每个节点的基本校验器验证节点对应的验证对象。具体的,采用节点nane的基本校验器type:‘string’和require:true分别验证接口参数的验证对象name:‘’,由于该验证对象没有具体的内容,且判断出该验证对象不满足基本校验器的要求,生成对象验证结果包括验证失败。采用节点nick的基本校验器type:‘string’验证接口参数的验证对象,因为该基本校验器规定不是必填项,所以在接口参数没有nick的验证对象的情况下,则判断出满足节点nick的基本校验器的要求,依此类推,分别采用剩余节点的基本校验器验证该节点对应的验证对象。并且,生成的对象验证结果中,验证对象name、email、address.city和address.road的对象验证结果为验证失败。
还需要说明的是,节点和验证对象的对应关系可以用相同的标识来说明,在上述实例中,节点nane对应的验证对象,即在接口参数中标识为nane的验证对象。
本步骤中,采用节点的基本校验器对验证对象进行验证,不会产生大量的非业务逻辑的代码,解决了现有技术中因于执行接口参数验证的程序包含有大量的非业务逻辑的代码,导致的程序的可读性、可维护性以及灵活性均较低的问题。并且,规则树为预先生成,在对待验证的接口参数进行验证时,直接获取规则树进行验证,而不用等待规则树的编译过程,可以减少因编译规则树而浪费的时间,提高验证的效率。
S103、按照所述待验证的接口参数的结构,组合所述生成的对象验证结果,得到待验证的接口参数的验证结果。
其中,由于待验证的接口参数的结构和规则树的结构相同,在得到所述待验证的接口参数中的每个验证对象的对象验证结果后,可以依据该规则树的结构进行组合,形成待验证的接口参数的验证结果。
并且,由于生成的待验证的接口参数的验证结果,其结构与待验证的接口参数的结构相同,因此,待验证的接口参数的验证结果能够直接反映出待验证的接口参数出现验证失败的验证对象的位置,不要用复杂的方式得出接口参数出现问题的位置,解决了现有技术中因说明接口参数中出现错误的字段的位置较为复杂导致的接口参数的验证过程用时较长,效率较低的问题。
在上述实例中,按照所述待验证的接口参数的结构,组合所述生成的对象验证结果,得到待验证的接口参数的验证结果如下:
本申请的另一实施例中,若步骤S102的具体实施方式中,判断出所述节点对应的验证对象不满足所述节点的基本校验器的要求之后,还可以包括:
依据验证对象和验证对象对应的节点的基本校验器的匹配关系,获得判断出不满足节点的基本校验器的要求的验证对象的错误描述信息;
其中,所述对象验证结果还包括:错误描述信息。
所述错误描述信息用于说明验证对象验证失败的原因。具体的,对不满足节点的基本校验器的要求的验证对象,将验证对象和节点的基本校验器进行匹配,得出验证对象不满足节点的基本校验器的要求原因。在对象验证结果中包括错误描述信息,那组合形成的待验证的接口参数的验证结果中也会包括有每个验证对象的错误描述信息,用户可以根据错误描述信息,直接得知待验证的接口参数的验证失败原因,以便了解验证的接口参数的错误所在。
并且,在上述实例中,生成的对象验证结果中还包括的错误描述信息,如下:
name:不满足必填项。
email:不满足邮箱格式的正则验证。
address.city:不满足类型、必要性和自定义验证(整个字段缺失)。
address.road:不满足类型、必要性验证(整个字段缺失)。
本申请另一实施例还公开了一种接口参数的验证方法,如图3所示,包括步骤:
S301、获取待验证的接口参数对应的规则树。
其中,所述待验证的接口参数包括至少一个验证对象,所述规则树包括与每一个所述验证对象对应的节点。并且,所述规则树中包括至少两个节点,且规则树包含的节点可以有嵌套关系。
S302、按照所述规则树中根节点到子节点的顺序,依次采用每个所述节点的基本校验器分别验证对应节点的验证对象,且在每个所述节点对应的验证对象完成验证过程,生成对象验证结果。
其中,因为规则树中的节点包含有嵌套结构,则利用规则树进行接口参数校验时,从根节点开始,待根节点对应的验证对象验证完成后,再向下逐渐渗入到每个子节点。并且,在执行某个子节点对应的验证对象的验证工作时,会优先执行该子节点的基本校验器,执行完基本校验器之后,接下来会遍历该子节点的子节点,待该子节点的子节点完成验证后,再执行其他子节点。
并且,若某个子节点A的某个子节点B,还有子节点,那在子节点B执行完成后,再执行其的子节点,直至到规则树的末端子节点为止。
还需要说明的是,每一个节点的基本校验器执行该节点对应的验证对象的具体方式可参见上述实施例的内容,此处不再赘述。
S303、按照所述待验证的接口参数的结构,组合所述生成的对象验证结果,得到待验证的接口参数的验证结果。
本发明另一实施例还公开了一种接口参数的验证装置,如图4所示,包括:
获取单元401,用于获取待验证的接口参数对应的规则树,其中,所述待验证的接口参数包括至少一个验证对象,所述规则树包括与每一个所述验证对象对应的节点;
验证单元402,用于采用每个节点的基本校验器分别验证对应所述节点的验证对象,并生成每个验证对象的对象验证结果;
生成单元403,用于按照所述待验证的接口参数的结构,组合所述生成的对象验证结果,得到待验证的接口参数的验证结果。
其中,本实施例中公开的各个单元的具体工作过程,可参见对应图1的方法实施例的内容,此处不再赘述。
本发明实施例公开的接口参数的验证装置中,验证单元402采用节点的基本校验器对验证对象进行验证,不会产生大量的非业务逻辑的代码,解决了现有技术中因于执行接口参数验证的程序包含有大量的非业务逻辑的代码,导致的程序的可读性、可维护性以及灵活性均较低的问题。并且,生成单元403生成的待验证的接口参数的验证结果,其结构与待验证的接口参数的结构相同,因此,待验证的接口参数的验证结果能够直接反映出待验证的接口参数出现验证失败的验证对象的位置,不要用复杂的方式得出接口参数出现问题的位置,解决了现有技术中因说明接口参数中出现错误的字段的位置较为复杂导致的接口参数的验证过程用时较长,效率较低的问题。
可选地,本申请的另一实施例中,参见图5,所述接口参数的验证装置还包括:
规则树生成单元400,用于根据预先设定的、待验证的接口参数对应的接口参数验证规则,生成所述待验证的接口参数对应的规则树,其中,所述接口参数验证规则,用于验证所述待验证的接口参数中的各个需要验证的验证对象是否满足预先设定的条件。
可选地,本申请的另一实施例中,仍可参见图5,规则树生成单元400包括:
提取单元4001,用于从预先设定、且与所述待验证的接口参数所对应的接口参数验证规则中,提取出所有的所述验证对象;
确定单元4002,用于确定每个所述验证对象适用的基本校验器以及所述验证对象间的层级关系;其中,所述基本校验器用于验证对应的所述验证对象是否满足所述预先设定的条件;
规则树生成子单元4003,用于将每个所述验证对象作为一个节点,根据每个所述验证对象适用的基本校验器以及所述验证对象间的层级关系,生成拥有唯一根节点的树形结构的所述规则树;其中,所述规则树中的每个节点上的属性都包括该节点对应的基本校验器以及该节点下的所有子节点。
其中,本实施例中公开的各个单元的具体工作过程,可参见对应图1的方法实施例的内容,此处不再赘述。
可选地,本发明的另一实施例中,所述规则树包括至少两个节点,验证单元402,参见图5,包括:
验证子单元4021,用于按照所述规则树中根节点到子节点的顺序,依次采用每个所述节点的基本校验器分别验证对应所述节点的验证对象,直至所述规则树中的节点均被用于验证验证对象为止;
第一生成子单元4022,用于在一个所述节点对应的验证对象完成验证过程,生成所述对象验证结果。
其中,本实施例中公开的各个单元的具体工作过程,可参见对应图3的方法实施例的内容,此处不再赘述。
可选地,本发明的另一实施例中,所述验证单元402,参见图5,包括:
判断单元4023,用于判断所述每个节点对应的验证对象是否满足所述节点的基本校验器的要求;
第二生成子单元4024,用于若所述判断单元判断出所述节点对应的验证对象不满足所述节点的基本校验器的要求,则生成所述对象验证结果;其中,所述对象验证结果包括验证失败。
可选地,本发明的另一实施例中,参见图5,所述接口参数的验证装置还包括:
获得单元404,用于在判断单元4023判断出所述节点对应的验证对象不满足所述节点的基本校验器的要求之后,依据验证对象和验证对象对应的节点的基本校验器的匹配关系,获得判断出不满足节点的基本校验器的要求的验证对象的错误描述信息;
其中,第二生成子单元4024生成的所述对象验证结果还包括:错误描述信息。
上述两个实施例中,各个单元的具体工作过程,可参见对应图1实施例中的内容,此处也不再赘述。
所述接口参数的验证装置包括处理器和存储器,上述获取单元、验证单元和生成单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来实现自动完成接口参数的验证工作,解决现有接口参数的验证过程中存在的用于执行接口参数验证的程序的可读性、可维护性和灵活性均较低的问题、以及接口参数的验证过程用时较长,效率较低的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述接口参数的验证方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述接口参数的验证方法。
本发明实施例提供了一种设备,本文中的设备可以是服务器、PC、PAD、手机等。设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
获取待验证的接口参数对应的规则树,其中,所述待验证的接口参数包括至少一个验证对象,所述规则树包括与每一个所述验证对象对应的节点;
采用每个节点的基本校验器分别验证对应所述节点的验证对象,并生成每个验证对象的对象验证结果;
按照所述待验证的接口参数的结构,组合所述生成的对象验证结果,得到待验证的接口参数的验证结果。
可选地,所述规则树包括至少两个节点,所述采用每个节点的基本校验器分别验证对应所述节点的验证对象,并生成每个验证对象的对象验证结果,包括:
按照所述规则树中根节点到子节点的顺序,依次采用每个所述节点的基本校验器分别验证对应所述节点的验证对象,直至所述规则树中的节点均被用于验证所述验证对象为止;
其中,若一个所述节点对应的验证对象完成验证过程,则生成所述对象验证结果。
可选地,采用所述每个节点的基本校验器验证对应所述节点的验证对象,并生成所述对象验证结果,包括:
判断所述每个节点对应的验证对象是否满足所述节点的基本校验器的要求;
若判断出所述节点对应的验证对象不满足所述节点的基本校验器的要求,则生成所述对象验证结果;其中,所述对象验证结果包括验证失败。
可选地,若判断出所述节点对应的验证对象不满足所述节点的基本校验器的要求之后,还包括:
依据验证对象和验证对象对应的节点的基本校验器的匹配关系,获得判断出不满足节点的基本校验器的要求的验证对象的错误描述信息;
其中,所述对象验证结果还包括:错误描述信息。
本发明还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
获取待验证的接口参数对应的规则树,其中,所述待验证的接口参数包括至少一个验证对象,所述规则树包括与每一个所述验证对象对应的节点;
采用每个节点的基本校验器分别验证对应所述节点的验证对象,并生成每个验证对象的对象验证结果;
按照所述待验证的接口参数的结构,组合所述生成的对象验证结果,得到待验证的接口参数的验证结果。
可选地,所述规则树包括至少两个节点,所述采用每个节点的基本校验器分别验证对应所述节点的验证对象,并生成每个验证对象的对象验证结果,包括:
按照所述规则树中根节点到子节点的顺序,依次采用每个所述节点的基本校验器分别验证对应所述节点的验证对象,直至所述规则树中的节点均被用于验证所述验证对象为止;
其中,若一个所述节点对应的验证对象完成验证过程,则生成所述对象验证结果。
可选地,采用所述每个节点的基本校验器验证对应所述节点的验证对象,并生成所述对象验证结果,包括:
判断所述每个节点对应的验证对象是否满足所述节点的基本校验器的要求;
若判断出所述节点对应的验证对象不满足所述节点的基本校验器的要求,则生成所述对象验证结果;其中,所述对象验证结果包括验证失败。
可选地,若判断出所述节点对应的验证对象不满足所述节点的基本校验器的要求之后,还包括:
依据验证对象和验证对象对应的节点的基本校验器的匹配关系,获得判断出不满足节点的基本校验器的要求的验证对象的错误描述信息;
其中,所述对象验证结果还包括:错误描述信息。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种接口参数的验证方法,其特征在于,包括:
获取待验证的接口参数对应的规则树,其中,所述待验证的接口参数包括至少一个验证对象,所述规则树包括与每一个所述验证对象对应的节点;
采用每个节点的基本校验器分别验证对应所述节点的验证对象,并生成每个验证对象的对象验证结果;
按照所述待验证的接口参数的结构,组合所述生成的对象验证结果,得到待验证的接口参数的验证结果。
2.根据权利要求1所述的方法,其特征在于,在获取所述待验证的接口参数对应的规则树之前,还包括:
根据预先设定的、待验证的接口参数对应的接口参数验证规则,生成所述待验证的接口参数对应的规则树,其中,所述接口参数验证规则,用于验证所述待验证的接口参数中的各个需要验证的验证对象是否满足预先设定的条件。
3.根据权利要求2所述的方法,其特征在于,根据预先设定的、待验证的接口参数对应的接口参数验证规则,生成所述待验证的接口参数对应的规则树,包括:
从预先设定、且与所述待验证的接口参数所对应的接口参数验证规则中,提取出所有的所述验证对象;确定每个所述验证对象适用的基本校验器以及所述验证对象间的层级关系;其中,所述基本校验器用于验证对应的验证对象是否满足所述预先设定的条件;
将每个所述验证对象作为一个节点,根据每个所述验证对象适用的基本校验器以及所述验证对象间的层级关系,生成拥有唯一根节点的树形结构的所述规则树;其中,所述规则树中的每个节点上的属性都包括该节点对应的基本校验器以及该节点下的所有子节点。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述规则树包括至少两个节点,所述采用每个节点的基本校验器分别验证对应所述节点的验证对象,并生成每个验证对象的对象验证结果,包括:
按照所述规则树中根节点到子节点的顺序,依次采用每个所述节点的基本校验器分别验证对应所述节点的验证对象,直至所述规则树中的节点均被用于验证所述验证对象为止;
其中,若一个所述节点对应的验证对象完成验证过程,则生成所述对象验证结果。
5.根据权利要求1-3任一项所述的方法,其特征在于,采用所述每个节点的基本校验器验证对应所述节点的验证对象,并生成所述对象验证结果,包括:
判断所述每个节点对应的验证对象是否满足所述节点的基本校验器的要求;
若判断出所述节点对应的验证对象不满足所述节点的基本校验器的要求,则生成所述对象验证结果;其中,所述对象验证结果包括验证失败。
6.根据权利要求4或5所述的方法,其特征在于,若判断出所述节点对应的验证对象不满足所述节点的基本校验器的要求之后,还包括:
依据验证对象和验证对象对应的节点的基本校验器的匹配关系,获得判断出不满足节点的基本校验器的要求的验证对象的错误描述信息;
其中,所述对象验证结果还包括:错误描述信息。
7.一种接口参数的验证装置,其特征在于,包括:
获取单元,用于获取待验证的接口参数对应的规则树,其中,所述待验证的接口参数包括至少一个验证对象,所述规则树包括与每一个所述验证对象对应的节点;
验证单元,用于采用每个节点的基本校验器分别验证对应所述节点的验证对象,并生成每个验证对象的对象验证结果;
生成单元,用于按照所述待验证的接口参数的结构,组合所述生成的对象验证结果,得到待验证的接口参数的验证结果。
8.根据权利要求6所述的装置,其特征在于,还包括:
规则树生成单元,用于根据预先设定的、待验证的接口参数对应的接口参数验证规则,生成所述待验证的接口参数对应的规则树,其中,所述接口参数验证规则,用于验证所述待验证的接口参数中的各个需要验证的验证对象是否满足预先设定的条件。
9.一种计算机存储介质,其特征在于,所述计算机存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如权利要求1-6中任一项所述的接口参数的验证方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行如权利要求1-6中任一项所述的接口参数的验证方法。
CN201710779610.XA 2017-09-01 2017-09-01 接口参数的验证方法及相关装置 Active CN109426720B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710779610.XA CN109426720B (zh) 2017-09-01 2017-09-01 接口参数的验证方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710779610.XA CN109426720B (zh) 2017-09-01 2017-09-01 接口参数的验证方法及相关装置

Publications (2)

Publication Number Publication Date
CN109426720A true CN109426720A (zh) 2019-03-05
CN109426720B CN109426720B (zh) 2021-01-22

Family

ID=65505002

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710779610.XA Active CN109426720B (zh) 2017-09-01 2017-09-01 接口参数的验证方法及相关装置

Country Status (1)

Country Link
CN (1) CN109426720B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117707653A (zh) * 2024-02-06 2024-03-15 天津医康互联科技有限公司 参数监控方法、装置、电子设备及计算机可读存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101261602A (zh) * 2008-04-08 2008-09-10 杭州电子科技大学 一种基于语法树的程序正确性验证方法
CN102056201A (zh) * 2009-10-30 2011-05-11 中国移动通信集团广西有限公司 一种业务流程中异常情况的处理方法和装置
CN102339252A (zh) * 2011-07-25 2012-02-01 大连理工大学 基于xml中间模型以及缺陷模式匹配的静态检测系统
CN103279631A (zh) * 2013-06-27 2013-09-04 南京大学 设计模式制导的爪哇代码评审方法
CN104298778A (zh) * 2014-11-04 2015-01-21 北京科技大学 一种基于关联规则树的轧钢产品质量的预测方法及系统
CN104573101A (zh) * 2015-01-29 2015-04-29 南京烽火星空通信发展有限公司 一种基于规则路由的数据流实时分类方法及系统
WO2017000828A1 (zh) * 2015-07-02 2017-01-05 阿里巴巴集团控股有限公司 基于规则的数据对象验证方法、装置、系统及电子设备

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101261602A (zh) * 2008-04-08 2008-09-10 杭州电子科技大学 一种基于语法树的程序正确性验证方法
CN102056201A (zh) * 2009-10-30 2011-05-11 中国移动通信集团广西有限公司 一种业务流程中异常情况的处理方法和装置
CN102339252A (zh) * 2011-07-25 2012-02-01 大连理工大学 基于xml中间模型以及缺陷模式匹配的静态检测系统
CN103279631A (zh) * 2013-06-27 2013-09-04 南京大学 设计模式制导的爪哇代码评审方法
CN104298778A (zh) * 2014-11-04 2015-01-21 北京科技大学 一种基于关联规则树的轧钢产品质量的预测方法及系统
CN104573101A (zh) * 2015-01-29 2015-04-29 南京烽火星空通信发展有限公司 一种基于规则路由的数据流实时分类方法及系统
WO2017000828A1 (zh) * 2015-07-02 2017-01-05 阿里巴巴集团控股有限公司 基于规则的数据对象验证方法、装置、系统及电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117707653A (zh) * 2024-02-06 2024-03-15 天津医康互联科技有限公司 参数监控方法、装置、电子设备及计算机可读存储介质
CN117707653B (zh) * 2024-02-06 2024-05-10 天津医康互联科技有限公司 参数监控方法、装置、电子设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN109426720B (zh) 2021-01-22

Similar Documents

Publication Publication Date Title
CN106940428B (zh) 芯片验证方法、装置及系统
CN107451175A (zh) 一种基于区块链的数据处理方法及设备
CN107957957A (zh) 测试用例的获取方法和装置
US20210049715A1 (en) Blockchain-based data procesing method, apparatus, and electronic device
CN107608689A (zh) 客户端上应用程序的更新方法、装置及电子设备
CN107040582A (zh) 一种数据处理方法及装置
CN110096434A (zh) 一种接口测试方法及装置
CN107122297A (zh) 用于测试接口的请求消息生成的方法及设备
CN109857475A (zh) 一种框架管理的方法及装置
CN106649788A (zh) 一种数据库数据传输方法与装置
CN108829647A (zh) 一种数据转换方法及装置
CN110401634A (zh) 一种Web应用漏洞检测规则引擎实现方法及终端
CN107066266A (zh) 安卓应用中支持Unity的数据处理方法及装置
CN107274023A (zh) 投保流程生成方法、投保请求处理方法及装置和电子设备
CN107025676A (zh) 一种图片模板以及图片的生成方法及相关装置
CN109992285A (zh) 区块链代码块独立升级方法、装置及电子设备
CN106648556A (zh) 前后端集成开发测试的方法及装置
CN109542713A (zh) 一种验证方法及验证装置
CN110175916A (zh) 资金流核对方法及装置
CN106815100A (zh) 接口测试方法及装置
CN109977638A (zh) 基于以太坊的智能合约更新方法及系统、存储介质及终端
CN106897342A (zh) 一种数据校验方法和设备
CN107239403A (zh) 一种问题定位方法和设备
CN111813739A (zh) 数据迁移方法、装置、计算机设备及存储介质
CN104750468B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100080 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Applicant before: Beijing Guoshuang Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant