接口参数校验方法技术

技术编号:39801162 阅读:11 留言:0更新日期:2023-12-22 02:32
本公开提供一种接口参数校验方法

【技术实现步骤摘要】
接口参数校验方法、装置、设备及存储介质


[0001]本公开涉及计算机
,尤其涉及接口参数校验方法

装置

设备及存储介质


技术介绍

[0002]在产品研发过程中,基于安全等考虑,需要对接口的调用请求中的接口参数进行校验

已有的参数校验方案中,一种方式是采用硬编码实现,但硬编码方式具有可读性差

可维护性差和重用性差等缺点

另一些参数校验方案,是对要校验的接口参数添加校验注解,此种方案中多个接口复用同一个接口参数的情况下,容易产生冲突问题


技术实现思路

[0003]为克服相关技术中存在的问题,本公开提供了接口参数校验方法

装置

设备及存储介质

[0004]根据本说明书实施例的第一方面,提供一种接口参数校验方法,在程序源码中为待校验的接口定义的接口方法携带了预设的注解信息;接口方法包含至少一个接口参数,注解信息包含用于对接口方法包含的接口参数进行空值校验的参数表达式,参数表达式指示待校验的至少一个目标接口参数;校验方法包括:
[0005]拦截针对接口方法的调用请求;
[0006]响应于拦截到的针对接口方法的调用请求,获取接口方法携带的注解信息,并从调用请求中解析出注解信息中的参数表达式中所指示的各个目标接口参数的参数值;
[0007]校验解析出的各个目标接口参数的参数值是否为空值,若各个目标接口参数的参数值都不为空值,进一步针对从调用请求解析出的参数值进行非空值校验

[0008]根据本说明书实施例的第二方面,提供一种接口参数校验装置,在程序源码中为待校验的接口定义的接口方法携带了预设的注解信息;接口方法包含至少一个接口参数,注解信息包含用于对接口方法包含的接口参数进行空值校验的参数表达式,参数表达式指示待校验的至少一个目标接口参数;校验装置包括:
[0009]拦截模块,用于:拦截针对接口方法的调用请求;
[0010]获取模块,用于:响应于拦截到的针对接口方法的调用请求,获取接口方法携带的注解信息,并从调用请求中解析出注解信息中的参数表达式中所指示的目标接口参数的参数值;
[0011]校验模块,用于:校验解析出的目标接口参数的参数值是否为空值,若各个目标接口参数的参数值都不为空值,进一步针对从调用请求解析出的参数值进行非空值校验

[0012]根据本说明书实施例的第三方面,提供一种计算机设备,包括存储器

处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行计算机程序时实现前述第一方面方法实施例的步骤

[0013]根据本说明书实施例的第四方面,提供一种计算机可读存储介质,其上存储有计
算机程序,计算机程序被处理器执行时实现前述第一方面方法实施例的步骤

[0014]本说明书的实施例提供的技术方案可以包括以下有益效果:
[0015]本说明书实施例中,将不再采用对接口方法中包含的参数单独进行注解的方式,而是采用对接口方法整体进行注解的方式;
[0016]一方面,通过为接口方法添加包含用于对接口方法进行空值校验的参数表达式,可以在对接口方法包含的参数进行校验时,先从接口方法包含的注解信息中解析出上述参数表达式,再利用该参数表达式对该接口方法包含的参数进行空值校验,在通过空值校验后,再结合额外的规则对该接口方法包含的参数进行非空值校验,从而可以将空值校验和非空值校验两种校验流程独立开来,先进行空值校验再进行非空值校验,有助于提升对接口方法包含的参数进行校验的校验效率

[0017]另一方面,相关方案中采用对接口方法中包含的参数单独进行注解的方式,若不同接口方法需要复用相同参数,有些接口方法需要对该参数进行空值校验,但有些接口可能不需要对参数进行空值校验,如此可能存在不同接口方法对相同参数的空值校验需求具有冲突的问题,从而导致该参数无法被不同接口方法复用

因此,通过为接口方法添加包含用于对接口方法进行空值校验的参数表达式,被复用的接口参数,在一个接口方法下需要被空值校验,则将参数添加在该接口方法的空值校验的参数表达式中即可;在其他接口方法下不需要被空值校验,则无需添加在空值校验的参数表达式中

因此这种注解方式还可以提升被校验参数被不同接口方法复用的复用率

[0018]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开

附图说明
[0019]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本公开的原理

[0020]图1是本说明书根据一示例性实施例示出的一种接口参数校验方法的流程图

[0021]图2是本说明书根据一示例性实施例示出的一种参数表达式的示意图

[0022]图3是本说明书根据一示例性实施例示出的一种接口参数校验装置所在计算机设备的一种硬件结构图

[0023]图4是本说明书根据一示例性实施例示出的一种接口参数校验装置的框图

具体实施方式
[0024]这里将详细地对示例性实施例进行说明,其示例表示在附图中

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素

以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式

相反,它们仅是与如所附权利要求书中所详述的

本说明书的一些方面相一致的装置和方法的例子

[0025]在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书

在本说明书和所附权利要求书中所使用的单数形式的“一种”、
“”
和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义

还应当理解,本文中使用的术语“和
/
或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合

[0026]应当理解,尽管在本说明书可能采用术语第一

第二

第三等来描述各种信息,但这些信息不应限于这些术语

这些术语仅用来将同一类型的信息彼此区分开

例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息

取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0027]本公开所涉及的用户信息
(
包括但不限于用本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种接口参数校验方法,在程序源码中为待校验的接口定义的接口方法携带了预设的注解信息;所述接口方法包含至少一个接口参数,所述注解信息包含用于对所述接口方法包含的接口参数进行空值校验的参数表达式,所述参数表达式指示待校验的至少一个目标接口参数;所述校验方法包括:拦截针对所述接口方法的调用请求;响应于拦截到的针对所述接口方法的调用请求,获取所述接口方法携带的注解信息,并从所述调用请求中解析出所述注解信息中的参数表达式中所指示的各个目标接口参数的参数值;校验解析出的所述各个目标接口参数的参数值是否为空值,若所述各个目标接口参数的参数值都不为空值,进一步针对从所述调用请求解析出的参数值进行非空值校验
。2.
根据权利要求1所述的方法,所述参数表达式指示待校验的至少一个目标接口参数的参数名称;所述从所述调用请求中解析出所述注解信息中的参数表达式中所指示的各个目标接口参数的参数值,包括:根据所述参数表达式指示的待校验的至少一个目标接口参数的参数名称,从所述调用请求中解析出与所述各个目标接口参数的参数名称对应的参数值
。3.
根据权利要求1所述的方法,所述程序为基于面向对象编程语言的程序;所述接口方法的接口参数的类型为实体类,所述实体类包括一个或多个属性;所述参数表达式指示:所述实体类的一个或多个属性中待校验的各个目标属性的属性名称;所述从所述调用请求中解析出所述注解信息中的参数表达式中所指示的各个目标接口参数的参数值,包括:根据所述参数表达式指示的待校验的各个目标属性的属性名称,从所述调用请求中解析出与所述各个目标属性的属性名称对应的属性值
。4.
根据权利要求3所述的方法,所述实体类的属性中包括:一层或多层嵌套子属性;如果所述接口方法的接口参数中包含具有共同父属性的多个子属性,所述参数表达式中采用如下方式指示具有共同父属性的待校验的多个目标子属性:将所述父属性的属性名称作为前缀,在所述父属性的属性名称之后,采用成对的标识符,包围所述多个目标子属性中的各个目标子属性的属性名称;所述根据所述参数表达式指示的目标属性的属性名称,从所述调用请求中解析出与所述目标属性的属性名称对应的属性值,包括:从所述参数表达式中获取所述成对的标识符内包围的具有共同父属性的多个目标子属性中的各个目标子属性的属性名称,并在获取到的各个目标子属性的属性名称之前添加所述父属性的属性名称作为前缀,以生成与所述多个目标子属性中的各个目标子属性对应的属性访问路径;根据与所述多个目标子属性中的各个目标子属性对应的属性访问路径,从所述调用请求中解析出与...

【专利技术属性】
技术研发人员:苏杰王锴
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1