CN112395138B - 一种校验参数的方法和装置 - Google Patents
一种校验参数的方法和装置 Download PDFInfo
- Publication number
- CN112395138B CN112395138B CN202011314940.XA CN202011314940A CN112395138B CN 112395138 B CN112395138 B CN 112395138B CN 202011314940 A CN202011314940 A CN 202011314940A CN 112395138 B CN112395138 B CN 112395138B
- Authority
- CN
- China
- Prior art keywords
- decorator
- api interface
- verification
- parameter
- rule
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 238000012795 verification Methods 0.000 claims abstract description 116
- 230000014509 gene expression Effects 0.000 claims description 30
- 238000010200 validation analysis Methods 0.000 claims description 5
- 238000012986 modification Methods 0.000 abstract description 8
- 230000004048 modification Effects 0.000 abstract description 8
- 238000012545 processing Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000005236 sound signal Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001364 causal effect Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1608—Error detection by comparing the output signals of redundant hardware
- G06F11/1625—Error detection by comparing the output signals of redundant hardware in communications, e.g. transmission, interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开是关于一种校验参数的方法和装置。包括:获取调用API接口的请求;并使所述装饰器组件对所述请求中的接口参数进行校验,所述装饰器组件内设置有与所述请求中的API接口参数相匹配的校验规则;接收所述装饰器组件对所述API接口参数的校验结果。本发明公开实施例中,将API接口参数的校验程序封装成装饰器组件,便于统一验证接收的参数是否符合定义的规范及有效性;可应用在不同的应用场景中,不需要对校验内容做过多修改,只需要做简单的设置,方法的可移植性较好。
Description
技术领域
本发明公开涉及计算机软件技术领域,尤其涉及一种校验参数的方法和装置。
背景技术
随着移动互联网的发展,人们可以利用终端设备中的各种应用程序去访问服务器端的数据库。服务器端利用计算机可识别的数据接口,如API接口,为各终端设备提供资源服务。服务器端在接收终端设备的请求数据时,请求数据中的参数信息需要符合预设的规则,因此,服务器端会对上述参数进行校验。
相关技术中,对于每一款应用程序,程序开发者会设置对应的校验方法,包括人工编写校验规则、人工调用校验规则,由于这些校验方法中包含了很多重复的内容,因此,采用该校验方法对于程序开发者来讲比较费时费力。
发明内容
为克服相关技术中存在的问题,本发明公开提供一种校验参数的方法和装置。
根据本发明公开实施例的第一方面,提供一种校验参数的方法,包括:
获取调用API接口的请求,利用装饰器组件对所述请求中的接口参数进行校验,所述装饰器组件内设置有与所述请求中的API接口参数相匹配的校验规则;
接收所述装饰器组件对所述API接口参数的校验结果。
在一种可能的实现方式中,所述装饰器组件被设置为按照下述方式对所述API接口参数进行校验:
接收所述调用API接口的请求,从所述请求中解析出API接口参数;
判断所述API接口参数是否满足所述校验规则;
若所述API接口参数满足所述校验规则,则返回校验通过的校验结果。
在一种可能的实现方式中,在所述判断所述API接口参数是否满足所述校验规则之后,还包括:
若所述API接口参数不满足所述校验规则,则返回校验失败的校验结果和/或校验失败的原因。
在一种可能的实现方式中,所述装饰器组件包括第一装饰器和第二装饰器,其中所述第一装饰器用于定义API接口参数的校验规则,所述第二装饰器用于执行下述方法:
接收所述调用API接口的请求,从所述请求中解析出API接口参数;
从所述第一装饰器中获取与所述API接口参数相匹配的校验规则;
判断所述API接口参数是否满足所述校验规则,若所述API接口参数满足所述校验规则,则返回校验通过的校验结果。
在一种可能的实现方式中,所述装饰器组件中还设置有除与所述当前API接口参数相匹配的校验规则之外的其它校验规则,通过设置的方式将所述其它校验规则处于休眠状态。
在一种可能的实现方式中,所述装饰器组件设置于API接口的描述信息中。
在一种可能的实现方式中,所述装饰器组件中使用频率大于预设值的校验规则以变量的方式存在,且在配置文件中,定义了所述变量与所述校验规则的关联关系。
在一种可能的实现方式中,所述校验规则包括下述中的至少一种:
参数的数据类型、参数的缺省值、参数的取值范围、参数的正则表达式、参数的非空。
根据本发明公开实施例的第二方面,提供一种校验参数的装置,包括:
校验模块,用于获取调用API接口的请求,利用装饰器组件对所述请求中的接口参数进行校验,所述装饰器组件内设置有与所述请求中的API接口参数相匹配的校验规则;
结果接收模块,用于接收所述装饰器组件对所述API接口参数的校验结果。
在一种可能的实现方式中,所述装饰器组件包括:
判断模块,用于接收所述调用API接口的请求,从所述请求中解析出API接口参数,并判断所述API接口参数是否满足所述校验规则;
返回模块,用于若所述API接口参数满足所述校验规则,则返回校验通过的校验结果。
在一种可能的实现方式中,还包括:
返回模块,还用于若所述API接口参数不满足所述校验规则,则返回校验失败的校验结果以及校验失败的原因。
在一种可能的实现方式中,所述装饰器组件包括第一装饰器和第二装饰器,其中所述第一装饰器用于定义API接口参数的校验规则,所述第二装饰器包括:
判断模块,用于接收所述调用API接口的请求,从所述请求中解析出API接口参数,并从所述第一装饰器中获取与所述API接口参数相匹配的校验规则,最后判断所述API接口参数是否满足所述校验规则,
返回模块,用于若所述API接口参数满足所述校验规则,则返回校验通过的校验结果。
在一种可能的实现方式中,所述装饰器组件中还设置有除与所述当前API接口参数相匹配的校验规则之外的其它校验规则,通过设置的方式将所述其它校验规则处于休眠状态。
在一种可能的实现方式中,所述装饰器组件设置于API接口的描述信息中。
在一种可能的实现方式中,所述装饰器组件中使用频率大于预设值的校验规则以变量的方式存在,且在配置文件中,定义了所述变量与所述校验规则的关联关系。
在一种可能的实现方式中,所述校验规则包括下述中的至少一种:
参数的数据类型、参数的缺省值、参数的取值范围、参数的正则表达式、参数的非空。本发明公开的第三方面,提供了一种服务器,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:执行根据本发明公开任一实施例所述的方法。
根据本发明公开第四方面,提供一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得处理器能够执行根据本发明公开任一实施例所述的方法。
本发明公开的实施例提供的技术方案可以包括以下有益效果:本发明公开实施例中,将API接口参数的校验程序封装成装饰器组件,便于统一验证接收的参数是否符合定义的规范及有效性;可应用在不同的应用场景中,不需要对校验内容做过多修改,只需要做简单的设置,因此,方法的可移植性较好。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明公开的实施例,并与说明书一起用于解释本发明公开的原理。
图1是根据一示例性实施例示出的一种校验参数的方法的应用场景图。
图2是根据一示例性实施例示出的一种校验参数的方法的流程图。
图3是根据一示例性实施例示出的一种校验参数的装置的框图。
图4是根据一示例性实施例示出的一种校验参数的装置的框图。
图5是根据一示例性实施例示出的一种校验参数的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明公开的一些方面相一致的装置和方法的例子。
为了方便本领域技术人员理解本发明公开实施例提供的技术方案,下面先对技术方案实现的技术环境进行说明。
传统的网页技术前端显示界面和后端服务器常融合在一起。图1是根据一示例性实施例示出的一种校验参数的方法的应用场景图,参考图1所示,而随着移动互联网的发展,各种类型的前端,如手机101、平板电脑102、笔记本电脑103等接连出现,对于一些面向消费者服务器平台,如脸书平台、微波开放平台、微信公共平台等,或者面向企业的,企业内部的一些服务器104,它们可以不需要有显示的前端,只需要具备一套提供服务的接口,对于这些前端和后端相分离的应用来说,可以遵循表征状态转移(RESTful,Representational State Transfer)规范,对应用程序接口105(API,ApplicationProgramming Interface)进行设计。其中,服务接口的内容可以包括请求方法、请求链接、请求参数和返回参数等;所述请求方法可以包括新增(post)、修改(put)、删除(delete)或获取(get)等;所述请求链接可以包括统一资源标识符(URI,Uniform ResourceIdentifier)等;请求参数可以包括如可扩展标记语言xml格式的键值对应的数据类型;所述返回参数可以包括如xml格式的数据。
相关技术中,为了从应用程序接口处规避掉很多因为接入错误的参数所导致的***错误的问题,需要对接入的参数进行校验。传统的校验方法,是在主程序获取接口参数的位置处,编写所述参数的校验程序,在存在多个接口参数的情况下,需要相应的编写多个校验程序。传统的校验方法,在一个应用场景下,需要研发人员找到获取接口参数的程序位置,并多次编写校验程序,较为费时费力。在另一个应用场景下,研发人员需要按照上述方法再次编写校验程序,程序的可移植性较差。
基于类似于上文所述的实际技术需求,本发明公开提供了一种校验参数的方法和装置。
下面结合附图2对本发明公开所述的校验参数的方法进行详细的说明。图2是本发明公开提供的一种校验参数的方法的一种实施例的方法流程图。虽然本发明公开提供了如下述实施例或附图所示的方法操作步骤,但基于常规或者无需创造性的劳动在所述方法中可以包括更多或者更少的操作步骤。在逻辑性上不存在必要因果关系的步骤中,这些步骤的执行顺序不限于本发明公开实施例提供的执行顺序。
步骤S201,获取调用API接口的请求。
本发明公开实施例中,终端向服务器发送调用API接口的请求,如http请求,利用所述API接口实现与服务器的通信,向服务器发送请求,接收由服务器传输的数据。请求中包括API接口参数,所述API接口参数用于描述调用服务接口所需的变量信息。在一个示例中,如在用户注册的应用场景中,API接口参数的内容可以包括用户名、邮箱、电话、密码等。在一个示例中,如在创建订单的应用场景中,API接口参数的内容可以包括应用***的名称、订单名称、备注信息等。在一个示例中,如在注册云控制器的应用场景中,API接口参数的内容可以包括IP地址、云服务器端口、用户名和密码等。在一个示例中,如在用户登录的应用场景中,API接口参数的内容可以包括用户名、密码等。需要说明的是,所述接口参数的内容设置不限于上述应用场景,所属领域技术人员在本申请技术精髓的启示下,还可能做出其它变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
步骤S202,将所述请求发送至装饰器组件,所述装饰器组件内设置有与所述请求中的API接口参数相匹配的校验规则。
本发明公开实施例中,所述装饰器组件可以包括一个或多个装饰器,所述装饰器属于一种程序声明,利用装饰器可以在类的声明及成员上通过编程语法添加标注。它可以向一个现有的对象添加新的功能,同时又不改变其结构。所述装饰器的种类可以包括多种,比如可以包括类装饰器、方法装饰器、访问器装饰器、属性装饰器和参数装饰器等。本发明公开实施例中,所述校验规则包括对API接口参数的名称定义需要满足的数据类型、范围、是否必填等规定。所述校验规则可以通过正则表达式、枚举规则等表达,例如,通过正则表达式可以验证数据的长度、范围是否符合预设的规定,所述枚举规则用于验证数据是否为预先列举的类型、数值等。
本发明公开实施例中,将所述调用API接口的请求发送至装饰器组件,装饰器组件会根据预先封装的校验规则,利用与所述API接口参数相匹配的规则去校验该请求中的所述API接口参数。在一个示例中,例如对用户注册的邮箱进行校验,所述校验规则可以包括:"email":doc.String("邮箱,RegularEx:/^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/",required=True),其中email表示接口参数的名称;doc.String表示校验规则中email参数需要满足的数据类型;“邮箱”用于增加读者的可读性,在装饰器复用时,便于研发人员快速了解其含义;RegularEx:/^(\w)+(\.\w+)*@(\w)+((\.\w+)+)$/表示校验规则中email需要满足的正则表达式,required=True表示email参数的值不能为空值,属于必填项。在另一个示例中,对注册控制器的端口参数进行校验,所述校验规则可以包括:'cloud_ip':doc.String('IP地址,RegularEx:/^(\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])/',required=False),其中cloud_ip表示接口参数的名称;doc.String表示校验规则中cloud_ip参数需要满足的数据类型;RegularEx:/^(\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])/'表示参数cloud_ip需要满足的正则表达式,required=False,表示cloud_ip的值可以为空值,不属于必填项。需要说明的是,所述预设规则的设置方式不限于上述举例,例如,参数的缺省值,所属领域技术人员在本申请技术精髓的启示下,还可能做出其它变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
步骤S203,接收所述装饰器对所述API接口参数的校验结果。
本发明公开实施例中,所述校验结果可以包括校验通过或校验失败,若校验通过,程序继续执行后续的任务;若校验失败,返回校验不通过的报错信息。例如,接口参数name值不符合规范,请检查传入值,重新请求接口。
本发明公开实施例中,将API接口参数的校验程序封装成装饰器组件,在调用时,在接口上写入接口参数校验的装饰器即可,因此,本发明便于统一验证接收的参数是否符合定义的规范及有效性;可应用在不同的应用场景中,不需要对校验内容做过多修改,只需要做简单的设置,因此,方法的可移植性较好。
在一种可能的实现方式中,所述装饰器组件被设置为按照下述方式对所述API接口参数进行校验:
接收所述调用API接口的请求,从所述请求中解析出API接口参数;
判断所述API接口参数是否满足所述校验规则;
若所述API接口参数满足所述校验规则,则返回校验通过的校验结果。
本发明公开实施例中,装饰器组件可以对调用API接口的请求进行解析,从所述请求中解析出API接口参数。所述装饰器组件中封装了API接口参数的校验规则以及校验功能。当然,在实际应用中,本发明并不局限于此,所述API接口参数可以直接从前端解析,或者由其他调用程序传输至所述装饰器组件的。判断API接口参数的值是否满足所述校验规则,在一个示例中,校验规则包括:'ticket_name':doc.String('订单名称,RegularEx:/^[\u4E00-\u9FA5A-Za-z0-9_]+$/',required=True,根据该校验规则,会对参数ticket_name的数据类型是否满足字符串类型,参数ticket_name是否满足正则表达式RegularEx:/^[\u4E00-\u9FA5A-Za-z0-9_]+$/'所设置的规则,参数ticket_name是否为非空值,如上述规则中参数ticket_name全部满足的话,则返回校验通过的校验结果。在另一示例中,校验规则包括:'remarks':doc.String('备注',required=False)。根据上述校验规则,会对参数remarks的数据类型是否满足字符串类型,参数remarks是否为非空值,在上述校验规则中,required=False表示若remarks为空的话,也是校验通过的校验结果。
在一种可能的实现方式中,在所述判断所述API接口参数是否满足所述校验规则之后,还包括:
若所述API接口参数不满足所述校验规则,则返回校验失败的校验结果和/或校验失败的原因。
本发明公开实施例中,所述校验失败的原因,与所述校验规则相对应,可以包括:数据类型不匹配,例如名称使用英文名称;数据范围超出预设范围,例如,密码长度需要满足5-15字符;数据中包含了如*、#、¥符号,不符合要求;数据不能为空值等。在API接口参数更正以后,可以重新调用装饰器组件继续对接口参数进行校验。
在一种可能的实现方式中,所述装饰器组件包括第一装饰器和第二装饰器,其中所述第一装饰器用于定义API接口参数的校验规则,所述第二装饰器用于执行下述方法:
接收所述调用API接口的请求,从所述请求中解析出API接口参数;
从所述第一装饰器中获取与所述API接口参数相匹配的校验规则;
判断所述API接口参数是否满足所述校验规则,若所述API接口参数满足所述校验规则,则返回校验通过的校验结果。
本发明公开实施例中,将具有定义功能和具有校验功能的代码内容,利用不同的装饰器进行表达,对其中任一装饰器进行修改,不影响另外一个装饰的功能,降低了两者的耦合性。在一个示例中,所述第一装饰器包括:
@doc.consumes(
'cloud_ip':doc.String('IP地址,RegularEx:/^(\d{1,2})|(1\d{2})|(2[0-4]\d)|(25[0-5])/',required=True),
'cloud_port':doc.Integer('端口RegularEx:/^([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/'required=False),
'user_name':doc.String('用户名,RegularEx:/^[\u4E00-\u9FA5A-Za-z0-9_]+$/',required=True),
'password':doc.String('密码,RegularEx:/^[A-Za-z0-9_]+$/',required=True),
)
上述装饰器@doc.consumes,用于描述与API接口参数cloud_ip、cloud_port、user_name和password相关的一些校验规则,不包括校验程序。在另一个示例中,可以定义@validation,用于对所述参数进行校验。所述第二装饰器在执行接收所述调用API接口的请求,从所述请求中解析出API接口参数;判断所述API接口参数是否满足所述校验规则,若所述API接口参数满足所述校验规则,则返回校验通过的校验结果的步骤时,具体的实施例可以包括上述中的任意一种,在这里不再赘述。与上述实施例不同的是,所述校验规则从第一装饰器中获取。需要说明的是,所述第一装饰器和第二装饰器的设置方式不限于上述举例,例如,创建订单的过程中,需要对接口参数如应用名称、订单的名称、备注等参数进行设置校验规则和校验,所属领域技术人员在本申请技术精髓的启示下,还可能做出其它变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在一种可能的实现方式中,所述装饰器组件中还设置有除与所述当前API接口参数相匹配的校验规则之外的其它校验规则,通过设置的方式将所述其它校验规则处于休眠状态。
本发明公开实施例中,考虑到装饰器可以应用于多个应用场景中,而每个应用场景中待校验的API接口参数不完全相同,因此,可以提前设置多个应用场景中的API接口参数。在一个示例中,用户注册时需要校验的API接口参数包括邮箱和端口,注册云控制器需要校验的API接口参数包括IP地址、端口、用户名和密码,因此,可以定义一个包含较多参数的装饰器如包含:邮箱、端口、IP地址、用户名和密码,以实现该装饰器在两个应用场景下的使用。可以通过设置的方式,将除与所述当前API接口参数相匹配的校验规则之外的其它校验规则设置为休眠状态,包括:例如,当应用场景为注册云控制器,将所述装饰器中的“邮箱”参数设置为休眠状态,当应用场景为用户注册,将所述装饰器中的IP地址、用户名和密码设置为休眠状态。在一个示例中,可以将所述参数对应的正则表达式清空或全部删除所述参数的校验规则以实现所述参数处于休眠状态的操作。例如:'remarks':doc.String('备注',required=False),该校验规则中没有包含正则表达式,在程序执行的过程中,不会对remarks参数进行校验。通过本发明公开实施例,可以提高了方法应用的广泛性。
在一种可能的实现方式中,所述装饰器组件设置于API接口的描述信息中。
本发明公开实施例中,装饰器的调用表达式可以为“@doc.consumes”的形式,@符号是装饰器的语法糖,在定义函数的时候使用,避免再一次赋值操作。装饰器的调用表达式可以包括有参表达式和无参表达式。在一个示例中,定义一个类装饰器,该类装饰器调用的表达式为“@use_logging”,在调用该表达式时不需要附上任何参数;在另一个示例中,装饰器的调用表达式为“@use_logging(level="warn")”,装饰器为有参表达式,调用该表达式时,需要附上参数。本发明公开实施例中,可以将装饰器写在API接口的描述信息中,这样在接口页面可以明确的看到参数的定义与校验规则信息,在不改变原有代码的情况下,完成API接口参数的校验工作。
在一种可能的实现方式中,所述装饰器组件中使用频率大于预设值的校验规则以变量的方式存在,且在配置文件中,定义了所述变量与所述校验规则的关联关系。
本发明公开实施例中,所述配置文件用于为一些计算机程序配置参数和初始设置,具有不同的文件格式,常用简单的键值对格式,扩展名可以包括如:cnf、.conf、.cfg、.cg、.ini等。所述预设值可以根据具体的应用需求确定,比如校验邮箱、电话号码、身份证的规则较为常用,使用频率较大,可以将所述邮箱、密码、身份证的校验规则以变量的方式表达在配置文件中,在一个示例中,email=RegularEx:/^(\w)+(\.\w+)*@(\w)+((\.\w+) +)$/"。在另一个示例中,password=RegularEx:/^[A-Za-z0-9_]+$/'。而在API接口的描述信息中,定义不常用的校验规则。这种方式可以减少研发人员的重复工作。
在一种可能的实现方式中,所述校验规则包括下述中的至少一种:
参数的数据类型、参数的缺省值、参数的取值范围、参数的正则表达式、参数的非空。
本发明公开实施例中,所述参数的数据类型可以包括布尔型(boolean)、字节型(byte)、短整型(short)、整形(int)、长整形(long)和浮点型(float)等。需要说明的是,所述数据类型还可以包括多种语言定义的数据类型,如javascript或python语言等,本申请不做限制,所属领域技术人员在本申请技术精髓的启示下,还可能做出其它变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。本发明公开实施例中,所述参数的缺省值包括预设的固定数值,例如通过枚举方式,限定某类型数据的值。本发明公开实施例中,所述参数的取值范围包括参数的取值区间,例如,参数的取值范围包括1-10,如获取到参数值为11的话,则不满足上述参数取值范围的要求。本发明公开实施例中,所述参数的正则表达式,例如对端口参数的正则表达式规则:RegularEx:/^([0-9]|[1-9]\d{1,3}|[1-5]\d{4}|6[0-4]\d{3}|65[0-4]\d{2}|655[0-2]\d|6553[0-5])$/",该正则表达式用于验证端口参数的长度、范围等是否符合某些规则。参数的非空用于验证参数的必要性,例如:required=True,表示参数值不能为空,如果没有填写,此处就会报错;例如:required=False,表示参数值可以为空,如果没有填写,此处也不会报错。需要说明的是,所述校验规则的设置方式不限于上述举例,例如,最大值、最小值的设置也可以作为所述校验规则,所属领域技术人员在本申请技术精髓的启示下,还可能做出其它变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
在一种可能的实现方式中,在所述校验规则包括正则表达式的情况下,利用所述正则表达式设置API接口参数的语言格式。
本发明公开实施例中,利用正则表达式设置API接口参数的语言格式,以实现对参数的多种语言的识别。在一个示例中,对订单名称“ticket_name”的校验规则包括:'ticket_name':doc.String('订单名称,RegularEx:/^[\u4E00-\u9FA5A-Za-z0-9_]+$/',required=True),其中,正则表达式中u4E00可以接收订单名称的输入形式包括中文和英文。需要说明的是,所述校验规则的设置方式不限于上述举例,例如,通过自定义的方式定义所述校验规则,所属领域技术人员在本申请技术精髓的启示下,还可能做出其它变更,但只要其实现的功能和效果与本申请相同或相似,均应涵盖于本申请保护范围内。
图3是根据一示例性实施例示出的一种校验参数的装置的框图。参考图3所示,
校验模块301,用于获取待校验的API接口参数,并使所述装饰器组件对所述请求中的接口参数进行校验,所述装饰器组件内封装有与所述API接口参数相匹配的校验规则;
结果接收模块302,用于接收所述装饰器组件对所述API接口参数的校验结果。
在一种可能的实现方式中,所述校验规则包括下述中的至少一种:
参数的数据类型、参数的缺省值、参数的取值范围、参数的正则表达式、参数的非空。
在一种可能的实现方式中,所述装饰器组件包括:
判断模块,用于接收所述调用API接口的请求,从所述请求中解析出API接口参数;并判断所述API接口参数是否满足所述校验规则;
返回模块,用于若所述API接口参数满足所述校验规则,则返回校验通过的校验结果。
在一种可能的实现方式中,返回模块还用于若所述API接口参数不满足所述校验规则,则返回校验失败的校验结果和/或校验失败的原因。
在一种可能的实现方式中,所述装饰器设置于API接口的描述信息中。
在一种可能的实现方式中,所述装饰器组件包括
第一装饰器和第二装饰器,其中所述第一装饰器用于定义API接口参数的校验规则,所述第二装饰器包括:
判断模块,用于接收所述调用API接口的请求,从所述请求中解析出API接口参数,并从所述第一装饰器中获取与所述API接口参数相匹配的校验规则,最后判断所述API接口参数是否满足所述校验规则;
返回模块,用于若所述API接口参数满足所述校验规则,则返回校验通过的校验结果。
在一种可能的实现方式中,所述装饰器组件中设置有除与当前API接口参数相匹配的校验规则之外的其它校验规则,通过设置的方式将所述其它校验规则处于休眠状态。
在一种可能的实现方式中,在所述校验规则包括正则表达式的情况下,利用所述正则表达式设置API接口参数的语言格式。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图4是根据一示例性实施例示出的一种用于校验参数的装置400的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图4,装置400可以包括以下一个或多个组件:处理组件402,存储器404,电源组件406,多媒体组件408,音频组件410,输入/输出(I/O)的接口412,传感器组件414,以及通信组件416。
处理组件402通常控制装置400的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件402可以包括一个或多个处理器420来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件402可以包括一个或多个模块,便于处理组件402和其他组件之间的交互。例如,处理组件402可以包括多媒体模块,以方便多媒体组件408和处理组件402之间的交互。
存储器404被配置为存储各种类型的数据以支持在装置400的操作。这些数据的示例包括用于在装置400上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器404可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件406为装置400的各种组件提供电力。电源组件406可以包括电源管理***,一个或多个电源,及其他与为装置400生成、管理和分配电力相关联的组件。
多媒体组件408包括在所述装置400和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件408包括一个前置摄像头和/或后置摄像头。当装置400处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜***或具有焦距和光学变焦能力。
音频组件410被配置为输出和/或输入音频信号。例如,音频组件410包括一个麦克风(MIC),当装置400处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器404或经由通信组件416发送。在一些实施例中,音频组件410还包括一个扬声器,用于输出音频信号。
I/O接口412为处理组件402和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件414包括一个或多个传感器,用于为装置400提供各个方面的状态评估。例如,传感器组件414可以检测到装置400的打开/关闭状态,组件的相对定位,例如所述组件为装置400的显示器和小键盘,传感器组件414还可以检测装置400或装置400一个组件的位置改变,用户与装置400接触的存在或不存在,装置400方位或加速/减速和装置400的温度变化。传感器组件414可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件414还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件414还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件416被配置为便于装置400和其他设备之间有线或无线方式的通信。装置400可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件416经由广播信道接收来自外部广播管理***的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件416还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置400可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器404,上述指令可由装置400的处理器820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
图5是根据一示例性实施例示出的一种用于校验参数的装置500的框图。例如,装置1900可以被提供为一服务器。参照图5,装置500包括处理组件522,其进一步包括一个或多个处理器,以及由存储器532所代表的存储器资源,用于存储可由处理组件522的执行的指令,例如应用程序。存储器532中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件522被配置为执行指令,以执行上述方法。
装置500还可以包括一个电源组件526被配置为执行装置500的电源管理,一个有线或无线网络接口550被配置为将装置500连接到网络,和一个输入输出(I/O)接口558。装置500可以操作基于存储在存储器532的操作***,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器532,上述指令可由装置500的处理组件522执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明公开的其它实施方案。本申请旨在涵盖本发明公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明公开的一般性原理并包括本发明公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本发明公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明公开的范围仅由所附的权利要求来限制。
Claims (16)
1.一种校验参数的方法,其特征在于,包括:
获取调用服务器的API接口的请求,在API接口上写入装饰器组件,利用所述装饰器组件对所述请求中的接口参数进行校验,所述装饰器组件内设置有与所述请求中的API接口参数相匹配的校验规则,所述装饰器组件应用于多个应用场景,不同应用场景下的所述API接口参数不完全相同,各所述API接口参数分别设置有对应的校验规则;
接收所述装饰器组件对所述API接口参数的校验结果;
其中,所述装饰器组件包括第一装饰器和第二装饰器,其中所述第一装饰器用于定义API接口参数的校验规则,所述第二装饰器用于执行下述方法:
接收所述调用API接口的请求,从所述请求中解析出API接口参数;
从所述第一装饰器中获取与所述API接口参数相匹配的校验规则;
判断所述API接口参数是否满足所述校验规则,若所述API接口参数满足所述校验规则,则返回校验通过的校验结果。
2.根据权利要求1所述的方法,其特征在于,所述装饰器组件被设置为按照下述方式对所述API接口参数进行校验:
接收所述调用API接口的请求,从所述请求中解析出API接口参数;
判断所述API接口参数是否满足所述校验规则;
若所述API接口参数满足所述校验规则,则返回校验通过的校验结果。
3.根据权利要求1或2所述的方法,其特征在于,在所述判断所述API接口参数是否满足所述校验规则之后,还包括:
若所述API接口参数不满足所述校验规则,则返回校验失败的校验结果和/或校验失败的原因。
4.根据权利要求1所述的方法,其特征在于,所述装饰器组件中还设置有除与当前API接口参数相匹配的校验规则之外的其它校验规则,通过设置的方式将所述其它校验规则处于休眠状态。
5.根据权利要求1所述的方法,其特征在于,所述装饰器组件设置于API接口的描述信息中。
6.根据权利要求1所述的方法,其特征在于,所述装饰器组件中使用频率大于预设值的校验规则以变量的方式存在,且在配置文件中,定义了所述变量与所述校验规则的关联关系。
7.根据权利要求1所述的方法,其特征在于,所述校验规则包括下述中的至少一种:
参数的数据类型、参数的缺省值、参数的取值范围、参数的正则表达式、参数的非空。
8.一种校验参数的装置,其特征在于,包括:
校验模块,用于获取调用服务器的API接口的请求,在API接口上写入装饰器组件,利用所述装饰器组件对所述请求中的接口参数进行校验,所述装饰器组件内设置有与所述请求中的API接口参数相匹配的校验规则,所述装饰器组件应用于多个应用场景,不同应用场景下的所述API接口参数不完全相同,各所述API接口参数分别设置有对应的校验规则;
结果接收模块,用于接收所述装饰器组件对所述API接口参数的校验结果;
其中,所述装饰器组件包括第一装饰器和第二装饰器,其中所述第一装饰器用于定义API接口参数的校验规则,所述第二装饰器包括:
判断模块,用于接收所述调用API接口的请求,从所述请求中解析出API接口参数,并从所述第一装饰器中获取与所述API接口参数相匹配的校验规则,最后判断所述API接口参数是否满足所述校验规则;
返回模块,用于若所述API接口参数满足所述校验规则,则返回校验通过的校验结果。
9.根据权利要求8所述的装置,其特征在于,所述装饰器组件包括:
判断模块,用于接收所述调用API接口的请求,从所述请求中解析出API接口参数;并判断所述API接口参数是否满足所述校验规则;
返回模块,用于若所述API接口参数满足所述校验规则,则返回校验通过的校验结果。
10.根据权利要求8或9所述的装置,其特征在于,所述返回模块,还用于若所述API接口参数不满足所述校验规则,则返回校验失败的校验结果以及校验失败的原因中至少一个。
11.根据权利要求8所述的装置,其特征在于,所述装饰器组件中还设置有除与当前API接口参数相匹配的校验规则之外的其它校验规则,通过设置的方式将所述其它校验规则处于休眠状态。
12.根据权利要求8所述的装置,其特征在于,所述装饰器组件设置于API接口的描述信息中。
13.根据权利要求8所述的装置,其特征在于,所述装饰器组件中使用频率大于预设值的校验规则以变量的方式存在,且在配置文件中,定义了所述变量与所述校验规则的关联关系。
14.根据权利要求8所述的装置,其特征在于,所述校验规则包括下述中的至少一种:
参数的数据类型、参数的缺省值、参数的取值范围、参数的正则表达式、参数的非空。
15.一种服务器,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为:执行根据权利要求1至7中任一项所述的方法。
16.一种非临时性计算机可读存储介质,当所述存储介质中的指令由处理器执行时,使得处理器能够执行根据权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011314940.XA CN112395138B (zh) | 2020-11-20 | 2020-11-20 | 一种校验参数的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011314940.XA CN112395138B (zh) | 2020-11-20 | 2020-11-20 | 一种校验参数的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112395138A CN112395138A (zh) | 2021-02-23 |
CN112395138B true CN112395138B (zh) | 2024-04-02 |
Family
ID=74606954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011314940.XA Active CN112395138B (zh) | 2020-11-20 | 2020-11-20 | 一种校验参数的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112395138B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114116510A (zh) * | 2021-12-03 | 2022-03-01 | 深圳前海微众银行股份有限公司 | 一种接口参数校验方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436184A (zh) * | 2007-11-15 | 2009-05-20 | 金蝶软件(中国)有限公司 | 一种批量数据操作方法 |
CN109347914A (zh) * | 2018-09-13 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种基于Python Flask及装饰器的处理浏览器请求的方法及装置 |
CN109446077A (zh) * | 2018-10-18 | 2019-03-08 | 阳光人寿保险股份有限公司 | 一种数据库测试方法及装置 |
US10409837B1 (en) * | 2015-12-22 | 2019-09-10 | Uber Technologies, Inc. | Asynchronous notifications for a datastore of a distributed system |
CN111831547A (zh) * | 2020-05-29 | 2020-10-27 | 大数金科网络技术有限公司 | 自动化接口测试平台 |
CN111831563A (zh) * | 2020-07-09 | 2020-10-27 | 平安国际智慧城市科技股份有限公司 | 接口自动测试方法、装置及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10732966B2 (en) * | 2017-09-08 | 2020-08-04 | Devfactory Innovations Fz-Llc | Library model addition |
-
2020
- 2020-11-20 CN CN202011314940.XA patent/CN112395138B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101436184A (zh) * | 2007-11-15 | 2009-05-20 | 金蝶软件(中国)有限公司 | 一种批量数据操作方法 |
US10409837B1 (en) * | 2015-12-22 | 2019-09-10 | Uber Technologies, Inc. | Asynchronous notifications for a datastore of a distributed system |
CN109347914A (zh) * | 2018-09-13 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种基于Python Flask及装饰器的处理浏览器请求的方法及装置 |
CN109446077A (zh) * | 2018-10-18 | 2019-03-08 | 阳光人寿保险股份有限公司 | 一种数据库测试方法及装置 |
CN111831547A (zh) * | 2020-05-29 | 2020-10-27 | 大数金科网络技术有限公司 | 自动化接口测试平台 |
CN111831563A (zh) * | 2020-07-09 | 2020-10-27 | 平安国际智慧城市科技股份有限公司 | 接口自动测试方法、装置及存储介质 |
Non-Patent Citations (2)
Title |
---|
python类装饰器装饰方法通用编码模型分析;李德水;电子设计工程;第28卷(第13期);41-44+49 * |
基于Resin的JavaEE6标准规范实现;刘小可;;河南科技;20120918(第09期);56-57 * |
Also Published As
Publication number | Publication date |
---|---|
CN112395138A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6740373B2 (ja) | ページコンポーネント動的レイアウト | |
CN106569800B (zh) | 前端界面生成方法及装置 | |
CN109725901A (zh) | 前端代码的开发方法、装置、设备和计算机存储介质 | |
CN108762956B (zh) | 获取Native本地数据的方法、服务器、移动终端及存储介质 | |
WO2020253366A1 (zh) | 网页邮箱数据的爬取方法、装置、终端和存储介质 | |
CN107679054A (zh) | 数据比对方法、装置及可读存储介质 | |
US9348491B2 (en) | Method and system to layout applications on multiple platforms | |
CN111459685A (zh) | 页面端与原生端的通信方法、装置、设备及可读介质 | |
US20160342316A1 (en) | Electronic device and user interface display method for the same | |
CN105515887B (zh) | 应用测试方法、服务器及*** | |
CN111427622A (zh) | 应用程序中脚本代码的执行方法及装置 | |
CN114328482A (zh) | 数据处理方法、设备、存储介质及程序产品 | |
CN112395138B (zh) | 一种校验参数的方法和装置 | |
CN111381819B (zh) | 列表的创建方法、装置、电子设备及计算机可读存储介质 | |
CN105630948B (zh) | 网络页面显示方法和装置 | |
CN117271374A (zh) | 芯片的仿真测试方法、装置、设备及存储介质 | |
CN115408277B (zh) | 一种接口测试方法及装置 | |
EP3594823B1 (en) | Information display method, terminal and server | |
CN110580156A (zh) | 页面处理方法、装置及电子设备 | |
CN111079040A (zh) | 资源嗅探方法、装置、终端、服务器及存储介质 | |
CN113873450B (zh) | 短信配置方法、装置、计算机设备和存储介质 | |
CN109491655A (zh) | 一种输入事件处理方法及装置 | |
CN111104110B (zh) | 全局样式共享方法、全局样式共享装置及电子装置 | |
CN109543398B (zh) | 一种应用程序账户迁移方法、装置和电子设备 | |
KR20210023953A (ko) | 단말기의 정보 처리 방법 및 장치 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |