CN116414689A - 一种基于反射机制的接口参数校验方法及*** - Google Patents
一种基于反射机制的接口参数校验方法及*** Download PDFInfo
- Publication number
- CN116414689A CN116414689A CN202211651450.8A CN202211651450A CN116414689A CN 116414689 A CN116414689 A CN 116414689A CN 202211651450 A CN202211651450 A CN 202211651450A CN 116414689 A CN116414689 A CN 116414689A
- Authority
- CN
- China
- Prior art keywords
- parameter
- field
- verification
- rule
- target interface
- 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
- 238000012795 verification Methods 0.000 title claims abstract description 216
- 230000007246 mechanism Effects 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000004590 computer program Methods 0.000 claims description 4
- 238000011161 development Methods 0.000 abstract description 19
- 230000008569 process Effects 0.000 abstract description 14
- 230000006870 function Effects 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013524 data verification Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000013507 mapping 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/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请实施例公开了一种基于反射机制的接口参数校验方法及***。本申请实施例提供的技术方案,通过参数接口接收目标接口参数,基于参数接口的字段扩展属性在目标接口参数中添加对应的字段校验规则,参数接口预先定义目标接口参数中各个字段的字段校验规则,将字段校验规则添加至字段扩展属性;基于反射机制获取目标接口参数的字段类型和字段校验规则,根据字段类型确定预构建的规则校验器,通过规则校验器和目标接口参数的字段校验规则进行目标接口参数的参数校验,输出参数校验结果。采用上述技术手段,可以根据目标接口参数携带的字段校验规则进行自动校验,实现高效、快捷的参数校验流程和校验代码开发流程,降低参数校验代码的开发成本。
Description
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种基于反射机制的接口参数校验方法及***。
背景技术
目前,在互联网应用场景中,开发人员每天都会进行大量的接口开发工作。不同的业务方之间会通过接口来进行数据通信,为了避免接口传入无效或者非法参数导致服务出现未知异常,通常会在接口入口处对上游传入参数逐个进行校验。通过提供丰富的校验框架及标准(如Java的JSR-303数据校验规范),以简便、快捷地实现参数校验。
但是,对于使用C++语言开发的应用环境而言,由于缺乏访问和修改自身状态或行为的能力,也没有相关的成熟框架和生态库进行参数快捷校验,根据需要校验的参数,需要手动在代码中添加大量if-else逻辑来机械式的完成参数校验。整个参数校验过程较为繁琐复杂,参数校验效率偏低,且代码开发成本较大。
发明内容
本申请实施例提供一种基于反射机制的接口参数校验方法及***,能够提升参数校验效率和校验代码开发效率,降低参数校验代码的开发成本,解决编程语言环境中,参数校验流程繁琐复杂的技术问题。
在第一方面,本申请实施例提供了一种基于反射机制的接口参数校验方法,包括:
通过参数接口接收目标接口参数,基于参数接口的字段扩展属性在目标接口参数中添加对应的字段校验规则,参数接口预先定义目标接口参数中各个字段的字段校验规则,将字段校验规则添加至字段扩展属性;
基于反射机制获取目标接口参数的字段类型和字段校验规则,根据字段类型确定预构建的规则校验器,通过规则校验器和目标接口参数的字段校验规则进行目标接口参数的参数校验,输出参数校验结果。
在第二方面,本申请实施例提供了一种基于反射机制的接口参数校验***,包括:
定义模块,配置为通过参数接口接收目标接口参数,基于参数接口的字段扩展属性在目标接口参数中添加对应的字段校验规则,参数接口预先定义目标接口参数中各个字段的字段校验规则,将字段校验规则添加至字段扩展属性;
校验模块,配置为基于反射机制获取目标接口参数的字段类型和字段校验规则,根据字段类型确定预构建的规则校验器,通过规则校验器和目标接口参数的字段校验规则进行目标接口参数的参数校验,输出参数校验结果。
在第三方面,本申请实施例提供了一种基于反射机制的接口参数校验设备,包括:
存储器以及一个或多个处理器;
所述存储器,配置为存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的基于反射机制的接口参数校验方法。
在第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在由计算机处理器执行时配置为执行如第一方面所述的基于反射机制的接口参数校验方法。
在第五方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品中包含有指令,当指令在计算机或处理器上运行时,使得计算机或处理器执行如第一方面所述的基于反射机制的接口参数校验方法。
本申请实施例通过参数接口接收目标接口参数,基于参数接口的字段扩展属性在目标接口参数中添加对应的字段校验规则,参数接口预先定义目标接口参数中各个字段的字段校验规则,将字段校验规则添加至字段扩展属性;基于反射机制获取目标接口参数的字段类型和字段校验规则,根据字段类型确定预构建的规则校验器,通过规则校验器和目标接口参数的字段校验规则进行目标接口参数的参数校验,输出参数校验结果。采用上述技术手段,利用参数接口的字段扩展属性在目标接口参数中添加字段校验规则,并通过反射机制获取其字段类型和字段校验规则。使得规则校验器可以根据目标接口参数携带的字段校验规则进行自动校验,以此来实现高效、快捷的参数校验流程和校验代码开发流程,降低参数校验代码的开发成本,提升参数校验效率。
附图说明
图1是本申请实施例提供的一种基于反射机制的接口参数校验方法的流程图;
图2是本申请实施例中一种字段校验规则的示意图;
图3是本申请实施例中接口参数的校验流程图;
图4是本申请实施例提供的一种基于反射机制的接口参数校验***的结构示意图;
图5是本申请实施例提供的一种基于反射机制的接口参数校验设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
本申请提供的基于反射机制的接口参数校验方法,旨在利用参数接口的字段扩展属性在目标接口参数中添加字段校验规则,并通过反射机制获取其字段类型和字段校验规则。。使得规则校验器可以根据目标接口参数携带的字段校验规则进行自动校验,以此来实现高效、快捷的参数校验流程。
对于Java、Python、Go等一系列支持反射机制的编程语言,其都提供了丰富的参数校验框架及标准(如Java的JSR-303数据校验规范)。其结合语言支持的反射机制,能够非常方便快捷地实现参数校验。而对于使用C++语言进行开发的应用环境,由于C++语言到目前为止都不支持反射机制,也没有相关的成熟框架和生态库,开发人员不得不在代码中手动的添加大量if-else逻辑来机械式的完成参数校验。
例如,Java语言在定义接口参数时,会通过注解对参数字段进行标注限制,无须开发人员额外编写代码。例如“appId”这个字段,会通过代码注解的方式限制其长度必须介于6到12之间。当上游传入参数“appId”不在这个范围时,***框架能自动拦截请求并返回提示错误。而C++语言环境中,开发人员必须通过编写长篇幅的if-else代码来对接口参数进行逐个检查。这个过程显得极其冗余且繁琐,随着接口数量及各个接口参数个数的增加。校验接口参数的代码数量也大幅增加,当接口数量(或者接口字段数量)高达几十上百个的时候,每个接口的参数校验代码多达几百行,极大地降低了代码开发效率、增加了代码体积,且开发过程容易出错。基于此,提供本申请实施例的基于反射机制的接口参数校验方法,以解决编程语言环境中,参数校验流程繁琐复杂的技术问题。
实施例:
图1给出了本申请实施例提供的一种基于反射机制的接口参数校验方法的流程图,本实施例中提供的基于反射机制的接口参数校验方法可以由基于反射机制的接口参数校验设备执行,该基于反射机制的接口参数校验设备可以通过软件和/或硬件的方式实现,该基于反射机制的接口参数校验设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。一般而言,该基于反射机制的接口参数校验设备可以是服务器主机、电脑、手机等计算设备。
下述以该基于反射机制的接口参数校验设备为执行基于反射机制的接口参数校验方法的主体为例,进行描述。参照图1,该基于反射机制的接口参数校验方法具体包括:
S110、通过参数接口接收目标接口参数,基于参数接口的字段扩展属性在目标接口参数中添加对应的字段校验规则,参数接口预先定义目标接口参数中各个字段的字段校验规则,将字段校验规则添加至字段扩展属性;
S120、基于反射机制获取目标接口参数的字段类型和字段校验规则,根据字段类型确定预构建的规则校验器,通过规则校验器和目标接口参数的字段校验规则进行目标接口参数的参数校验,输出参数校验结果。
本申请实施例的接口参数校验方法,为了提升校验代码开发效率和接口参数校验效率,通过引入一个具备字段扩展属性的参数接口,利用参数接口的字段扩展属性在目标接口参数中添加字段校验规则,并通过反射机制程序获取其字段类型和字段校验规则。反射机制为一种允许程序在运行时动态访问、检测和修改自身状态或行为的机制。字段扩展属性则可以实现对接口参数的信息扩展,实现字段校验规则的添加。利用该参数接口的字段扩展属性,可以将预先定义的不同字段的校验规则添加到参数接口的字段扩展属性中。根据实际的接口参数校验需求,逐一对需要校验的接口参数的各个字段预先定义相应的校验规则,然后将其添加到参数接口的字段扩展属性中。
之后,当参数接口接入接口参数后,定义该接口参数为目标接口参数。通过为该接口参数添加该字段扩展属性,使其携带预定义的字段校验规则,进而使得该接口参数携带自身的字段校验规则进行参数校验。在进行参数校验时,首先通过反射机制获取目标接口参数的字段类型,以根据获取到的字段类型确定该目标接口参数的规则校验器。在此之前,预先对不同字段类型的接口参数设置相应的规则校验器,以用于后续进行对应字段类型接口参数校验。
基于已确定的规则校验器,通过提取目标接口参数此前添加的字段校验规则,即可使用该规则校验器和字段校验规则进行目标接口参数的自动校验。可以理解的是,在规则校验器中,若目标接口参数满足该字段校验规则,则参数校验通过,输出参数校验结果“ture”;反之,若目标接口参数不满足该字段校验规则,则参数校验不通过,输出参数校验结果“flase”。
至此,通过一个支持反射机制和字段扩展属性的参数接口预定义参数校验规则,并将送入参数接口的接口参数添加上预先定义的参数校验规则,以使得规则校验器基于预添加的参数校验规则进行接口参数校验。整个过程无需添加大量if-else逻辑进行参数校验,以此来减少校验代码的开发,提升参数校验代码开发效率,提升参数校验效率。
具体地,以C++protobuf接口作为参数接口为例,对本申请实施例的参数校验方法进行示例性描述。其中,protobuf是一种语言无关、平台无关、可扩展的序列化结构数据的方法,其可用于(数据)通信协议、数据存储等。通过构建一个protobuf接口作为参数接口,可以利用protobuf接口自身具备的字段扩展属性,实现将接口预定义的字段校验规则添加至其字段扩展属性中,进而在接口参数送入参数接口后,使得接口参数携带该字段扩展属性,以用于后续进行参数校验。
其中,在基于参数接口的字段扩展属性在目标接口参数中添加对应的字段校验规则时,通过获取目标接口参数预定义的字段组成结构,基于字段组成结构选择预先定义的字段校验规则并添加至目标接口参数。
由于protobuf是一种可扩展的序列化结构数据的方法,其可以识别序列化结构数据中不同序列位置包含的数据信息。通过预先在protobuf接口定义了一个序列化数据结构的接口参数中,不同序列位置的数据表示的字段,得到字段组成结构。后续当一串待校验的目标接口参数的序列化数据传入protobuf接口时,则可以根据字段组成结构确定序列化数据的不同序列位置的字段。进而通过预先定义的不同字段与字段校验规则的映射关系,即可确定传入参数接口的各个接口参数的字段校验规则,将该字段校验规则添加至目标接口参数中。
通过对protobuf接口预定义字段校验规则,并利用protobuf接口的自带的字段扩展属性,可以对目标接口参数进行扩展,将字段校验规则添加至目标接口参数,以为后续的参数校验提供字段校验规则。由于而C++语言本身不支持反射机制,借助于protobuf自带的反射能力,结合protobuf接口的字段扩展属性,可以实现类似接口参数注解的功能,将字段校验规则注解至目标接口参数中。需要说明的是,实际应用中,参数接口可以使用任意支持反射机制、字段扩展属性和序列化数据结构识别的接口,本申请实施例对具体的参数接口类型不做固定限制,在此不多赘述。同样地,对于该参数接口的应用语言,也不限制于C++语言环境,本申请实施例对具体的语言环境不做固定限制,以实现该参数接口功能为准。
基于该protobuf接口,根据业务需要校验的参数,会适应性设定相应接口参数不同字段的字段校验规则。例如,针对常用的协议字段数据类型(int32、int64、uint32、uint64、float、double、string、array、enum)定义一套字段校验规则。上述字段校验规则被划分为4大类:数值类规则(Int32Rule、Int64Rule、UInt32Rule、UInt64Rule、FloatRule、DoubleRule)、字符串类规则(StringRule)、枚举类规则(EnumRule)、数组类规则(ArrayRule)。每一类字段校验规则均基于protobuf接口的反射机制进行定义。以数值类接口参数中的int32字段为例,其字段校验规则Int32Rule如图2所示。以此类推,对应业务处理过程中需要处理的不同的接口参数字段,均预先定义其字段校验规则,以用于后续进行参数校验。
之后,对于传入protobuf接口的目标接口参数,在基于参数接口的字段扩展属性在目标接口参数中添加对应的字段校验规则时,通过将对应的字段校验规则添加至目标接口参数的字段属性信息中,以实现字段校验规则的添加。
利用protobuf接口自带的字段扩展属性,将目标接口参数的字段校验规则拓展为其字段属性信息之一,将对应的字段校验规则添加至目标接口参数的字段属性信息。以此即可使得目标接口参数携带自身的字段校验规则,后续将目标接口参数送入对应的规则校验器,即可使用其携带的字段校验规则进行目标接口参数的校验。
示例性地,在使用protobuf接口定义字段校验规则时,通过扩展目标接口参数的字段属性validator.Rule(其内容为上述定义各类型字段校验规则中的一种或者多种),利用该字段校验规则,限制用户年龄“age”字段值必须小于等于(lte)150;名字“name”字段不能为空且长度不能大于32;手机号字段“phone”不能为空且必须满足指定的手机号正则表达式规则;邮件字段允许为空(默认),但如果有传入值的话则必须满足对应邮件正则表达式规则;others数组字段不允许为空,且长度不小于2。通过设置不同字段值的字段校验规则,基于该字段校验规则,后续检测目标接口参数的字段值是否满足字段就校验规则,即可完成最终的接口参数校验。
基于上述protobuf接口定义的字段校验规则并扩展目标接口参数的字段属性后,需要校验的目标接口参数都已经带上了字段校验规则validator.Rule,基于该预定义的字段校验规则,通过实现一个对应的规则校验器,即可完成目标接口参数的校验。
其中,规则校验器预先对应不同字段类型构建,规则校验器包括数值规则校验器、字符串规则校验器、枚举规则校验器和数组规则校验器中的至少一个。字段类型包括数值类、字符串、枚举类及数组类等,参照上述四大类字段类型构建的字段校验规则,本申请实施例分别构建对应的规则校验器:数值类校验器(NumericalValidator)、字符串校验器(StringValidator)、枚举校验器(ArrayValidator)、数组校验器(ArrayValidator)。基于各个规则校验器,在进行目标接口参数校验时,通过获取目标接口参数的字段类型,以确定其对应的规则校验器,进而进行该目标接口参数的校验。
参照图3,提供本申请实施例的接口参数校验流程。其中,在获取目标接口参数的字段类型和字段校验规则时,通过识别目标接口参数的对象描述器,获取目标接口参数的字段类型。对应每一个待校验对象,通过识别其中的对象描述器descriptor,可以确定其字段数量,以此确定目标接口参数的各个字段,进行对应接口参数的参数校验。进而通过识别目标接口参数的字段属性信息,获取目标接口参数的字段校验规则。在目标接口参数中,其扩展的字段属性信息以反射对象reflection存储,则通过识别该反射对象reflection,即可提取到对应目标接口参数的字段校验规则。
进而基于已确定的规则校验器,使用目标接口参数中的字段校验规则进行参数校验。每一类规则校验器的工作原理大致相同,即通过接口反射机制获取目标接口参数中对应字段的值,逐一检查字段值是否满足字段校验规则validator.Rule,不满足则返回“flase”,满足则返回“ture”,以此完成本申请实施例的接口参数校验流程。
如图3所示,数值规则校验器、字符串规则校验器、枚举规则校验器和数组规则校验器分别进行对应类型的参数校验。此外,在目标接口参数为嵌套结构体的情况下,通过规则校验器和目标接口参数的字段校验规则,对目标接口参数的嵌套结构体中的逐层结构进行参数校验。例如,若目标接口参数为嵌套结构的数组元素结构或者字段结构。则通过获取目标接口参数的数组元素结构或者字段结构,递归校验目标接口参数中的每个数组元素或者字段。参照如图3所述的参数校验流程,逐一校验每个数组元素或者字段。反之,则直接进行参数校验,输出校验结果。
至此,整个接口参数校验流程完成。通过预先定义好参数接口的字段校验规则,利用参数接口的字段扩展属性在目标接口参数中添加字段校验规则,并通过反射机制获取其字段类型和字段校验规则,以此进行接口参数校验,可以避免编写大量冗余代码,极大减小代码体积,提升开发效率。同时也方便于日后接口扩展,在随着业务不断迭代变更,新增接口参数的时候,业务代码无须做任何修改,只需要在接口定义中加上对应接口参数及其字段校验规则即可。整个方法实现相当轻量,使用方法也较为简便,只需要在业务proto中import导入validator.proto即可以定义字段校验规则,然后在业务接口代码中include<validator_util.h>即可使用规则校验工具类对接口参数做自动校验。通过少量代码便可代替原有大量手工编写参数校验代码进行参数校验,极大提升校验代码开发效率,减小代码体积,并且能减少人工编写代码导致的各种BUG,更加安全。此外,还使得接口实现更具拓展性,方便日后新增其它接口字段,提升业务多样性。
上述,通过参数接口接收目标接口参数,基于参数接口的字段扩展属性在目标接口参数中添加对应的字段校验规则,参数接口预先定义目标接口参数中各个字段的字段校验规则,将字段校验规则添加至字段扩展属性;基于反射机制获取目标接口参数的字段类型和字段校验规则,根据字段类型确定预构建的规则校验器,通过规则校验器和目标接口参数的字段校验规则进行目标接口参数的参数校验,输出参数校验结果。采用上述技术手段,利用参数接口的字段扩展属性在目标接口参数中添加字段校验规则,并通过反射机制获取其字段类型和字段校验规则。使得规则校验器可以根据目标接口参数携带的字段校验规则进行自动校验,以此来实现高效、快捷的参数校验流程和校验代码开发流程,降低参数校验代码的开发成本,提升参数校验效率。
在上述实施例的基础上,图4为本申请提供的一种基于反射机制的接口参数校验***的结构示意图。参考图4,本实施例提供的基于反射机制的接口参数校验***具体包括:定义模块21和校验模块22。
其中,定义模块21,配置为通过参数接口接收目标接口参数,基于参数接口的字段扩展属性在目标接口参数中添加对应的字段校验规则,参数接口预先定义目标接口参数中各个字段的字段校验规则,将字段校验规则添加至字段扩展属性;
校验模块22,配置为基于反射机制获取目标接口参数的字段类型和字段校验规则,根据字段类型确定预构建的规则校验器,通过规则校验器和目标接口参数的字段校验规则进行目标接口参数的参数校验,输出参数校验结果。
具体地,基于参数接口的字段扩展属性在目标接口参数中添加对应的字段校验规则,包括:
获取目标接口参数预定义的字段组成结构,基于字段组成结构选择预先定义的字段校验规则并添加至目标接口参数。
具体地,基于参数接口的字段扩展属性在目标接口参数中添加对应的字段校验规则,还包括:
将对应的字段校验规则添加至目标接口参数的字段属性信息中;
基于反射机制获取目标接口参数的字段类型和字段校验规则,包括:
识别目标接口参数的字段属性信息,获取目标接口参数的字段校验规则。
具体地,基于反射机制获取目标接口参数的字段类型和字段校验规则,还包括:
识别目标接口参数的对象描述器,获取目标接口参数的字段类型。
具体地,规则校验器预先对应不同字段类型构建,规则校验器包括数值规则校验器、字符串规则校验器、枚举规则校验器和数组规则校验器中的至少一个。
具体地,在目标接口参数为嵌套结构体的情况下,通过规则校验器和目标接口参数的字段校验规则进行目标接口参数的参数校验,包括:
通过规则校验器和目标接口参数的字段校验规则,对目标接口参数的嵌套结构体中的逐层结构进行参数校验。
上述,通过参数接口接收目标接口参数,基于参数接口的字段扩展属性在目标接口参数中添加对应的字段校验规则,参数接口预先定义目标接口参数中各个字段的字段校验规则,将字段校验规则添加至字段扩展属性;基于反射机制获取目标接口参数的字段类型和字段校验规则,根据字段类型确定预构建的规则校验器,通过规则校验器和目标接口参数的字段校验规则进行目标接口参数的参数校验,输出参数校验结果。采用上述技术手段,利用参数接口的字段扩展属性在目标接口参数中添加字段校验规则,并通过反射机制获取其字段类型和字段校验规则。使得规则校验器可以根据目标接口参数携带的字段校验规则进行自动校验,以此来实现高效、快捷的参数校验流程和校验代码开发流程,降低参数校验代码的开发成本,提升参数校验效率。
本申请实施例提供的基于反射机制的接口参数校验***可以配置为执行上述实施例提供的基于反射机制的接口参数校验方法,具备相应的功能和有益效果。
在上述实际上例的基础上,本申请实施例还提供了一种基于反射机制的接口参数校验设备,参照图5,该基于反射机制的接口参数校验设备包括:处理器31、存储器32、通信模块33、输入装置34及输出装置35。存储器32作为一种计算机可读存储介质,可配置为存储软件程序、计算机可执行程序以及模块,如本申请任意实施例所述的基于反射机制的接口参数校验方法对应的程序指令/模块(例如,基于反射机制的接口参数校验***中的定义模块和校验模块)。通信模块33配置为进行数据传输。处理器31通过运行存储在存储器中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的基于反射机制的接口参数校验方法。输入装置34可配置为接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置35可包括显示屏等显示设备。上述提供的基于反射机制的接口参数校验设备可配置为执行上述实施例提供的基于反射机制的接口参数校验方法,具备相应的功能和有益效果。
在上述实施例的基础上,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在由计算机处理器执行时配置为执行一种基于反射机制的接口参数校验方法,存储介质可以是任何的各种类型的存储器设备或存储设备。当然,本申请实施例所提供的一种计算机可读存储介质,其计算机可执行指令不限于如上所述的基于反射机制的接口参数校验方法,还可以执行本申请任意实施例所提供的基于反射机制的接口参数校验方法中的相关操作。
在上述实施例的基础上,本申请实施例还提供一种计算机程序产品,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机程序产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备、移动终端或其中的处理器执行本申请各个实施例所述基于反射机制的接口参数校验方法的全部或部分步骤。
Claims (10)
1.一种基于反射机制的接口参数校验方法,其特征在于,包括:
通过参数接口接收目标接口参数,基于所述参数接口的字段扩展属性在所述目标接口参数中添加对应的字段校验规则,所述参数接口预先定义所述目标接口参数中各个字段的字段校验规则,将所述字段校验规则添加至所述字段扩展属性;
基于反射机制获取所述目标接口参数的字段类型和字段校验规则,根据所述字段类型确定预构建的规则校验器,通过所述规则校验器和所述目标接口参数的字段校验规则进行所述目标接口参数的参数校验,输出参数校验结果。
2.根据权利要求1所述的基于反射机制的接口参数校验方法,其特征在于,所述基于所述参数接口的字段扩展属性在所述目标接口参数中添加对应的字段校验规则,包括:
获取所述目标接口参数预定义的字段组成结构,基于所述字段组成结构选择预先定义的字段校验规则并添加至所述目标接口参数。
3.根据权利要求1所述的基于反射机制的接口参数校验方法,其特征在于,所述基于所述参数接口的字段扩展属性在所述目标接口参数中添加对应的字段校验规则,还包括:
将对应的字段校验规则添加至所述目标接口参数的字段属性信息中;
所述基于反射机制获取所述目标接口参数的字段类型和字段校验规则,包括:
识别所述目标接口参数的字段属性信息,获取所述目标接口参数的字段校验规则。
4.根据权利要求1所述的基于反射机制的接口参数校验方法,其特征在于,所述基于反射机制获取所述目标接口参数的字段类型和字段校验规则,还包括:
识别所述目标接口参数的对象描述器,获取所述目标接口参数的字段类型。
5.根据权利要求1所述的基于反射机制的接口参数校验方法,其特征在于,所述规则校验器预先对应不同字段类型构建,所述规则校验器包括数值规则校验器、字符串规则校验器、枚举规则校验器和数组规则校验器中的至少一个。
6.根据权利要求4所述的基于反射机制的接口参数校验方法,其特征在于,在所述目标接口参数为嵌套结构体的情况下,所述通过所述规则校验器和所述目标接口参数的字段校验规则进行所述目标接口参数的参数校验,包括:
通过所述规则校验器和所述目标接口参数的字段校验规则,对所述目标接口参数的嵌套结构体中的逐层结构进行参数校验。
7.一种基于反射机制的接口参数校验***,其特征在于,包括:
定义模块,配置为通过参数接口接收目标接口参数,基于所述参数接口的字段扩展属性在所述目标接口参数中添加对应的字段校验规则,所述参数接口预先定义所述目标接口参数中各个字段的字段校验规则,将所述字段校验规则添加至所述字段扩展属性;
校验模块,配置为基于反射机制获取所述目标接口参数的字段类型和字段校验规则,根据所述字段类型确定预构建的规则校验器,通过所述规则校验器和所述目标接口参数的字段校验规则进行所述目标接口参数的参数校验,输出参数校验结果。
8.一种基于反射机制的接口参数校验设备,其特征在于,包括:
存储器以及一个或多个处理器;
所述存储器,配置为存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6任一所述的基于反射机制的接口参数校验方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令在由计算机处理器执行时配置为执行如权利要求1-6任一所述的基于反射机制的接口参数校验方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品中包含有指令,当所述指令在计算机或处理器上运行时,使得所述计算机或处理器执行如权利要求1-6任一所述的基于反射机制的接口参数校验方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211651450.8A CN116414689A (zh) | 2022-12-21 | 2022-12-21 | 一种基于反射机制的接口参数校验方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211651450.8A CN116414689A (zh) | 2022-12-21 | 2022-12-21 | 一种基于反射机制的接口参数校验方法及*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116414689A true CN116414689A (zh) | 2023-07-11 |
Family
ID=87048642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211651450.8A Pending CN116414689A (zh) | 2022-12-21 | 2022-12-21 | 一种基于反射机制的接口参数校验方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116414689A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707653A (zh) * | 2024-02-06 | 2024-03-15 | 天津医康互联科技有限公司 | 参数监控方法、装置、电子设备及计算机可读存储介质 |
-
2022
- 2022-12-21 CN CN202211651450.8A patent/CN116414689A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117707653A (zh) * | 2024-02-06 | 2024-03-15 | 天津医康互联科技有限公司 | 参数监控方法、装置、电子设备及计算机可读存储介质 |
CN117707653B (zh) * | 2024-02-06 | 2024-05-10 | 天津医康互联科技有限公司 | 参数监控方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111428462B (zh) | 通讯协议模板构建的方法及终端设备 | |
WO2021184725A1 (zh) | 用户界面测试方法、装置、存储介质及计算机设备 | |
US9043757B2 (en) | Identifying differences between source codes of different versions of a software when each source code is organized using incorporated files | |
CN110221968A (zh) | 软件测试方法及相关产品 | |
EP3799631A1 (en) | Rendering lambda functions in spreadsheet applications | |
CN112187713B (zh) | 报文转换的方法、装置、计算机设备和存储介质 | |
CN113018870A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN113238740A (zh) | 代码生成方法、代码生成装置、存储介质及电子设备 | |
CN116414689A (zh) | 一种基于反射机制的接口参数校验方法及*** | |
CN113094776B (zh) | 可视化组件模型数据构建的方法、***及电子设备 | |
CN114168149A (zh) | 一种数据转换方法及装置 | |
CN113238739A (zh) | 一种插件开发和数据获取方法、装置、电子设备及介质 | |
CN112860584A (zh) | 基于工作流模型的测试方法及装置 | |
CN112256252B (zh) | 接口生成方法、装置、存储介质及电子设备 | |
CN112561690A (zh) | ***分期业务接口的测试方法、***、设备及存储介质 | |
CN116466927A (zh) | 批处理任务的代码生成方法、***、电子设备及存储介质 | |
CN113050921A (zh) | 一种网页转换方法、装置、存储介质和计算机设备 | |
CN115934537A (zh) | 接口测试工具生成方法、装置、设备、介质及产品 | |
CN113254455B (zh) | 数据库的动态配置方法、装置、计算机设备及存储介质 | |
CN111831277B (zh) | 虚拟数据生成方法、***、设备及计算机可读存储介质 | |
CN117009397A (zh) | 数据查询方法、数据查询装置、电子设备和存储介质 | |
CN114579466A (zh) | 构建测试用例和代码测试的方法、装置、设备及介质 | |
CN116755684B (zh) | OAS Schema的生成方法、装置、设备及介质 | |
CN113238940A (zh) | 一种接口测试结果的比对方法、装置、设备和存储介质 | |
CN110737431A (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 |