CN116861887A - 一种后端接口数据校验方法及系统 - Google Patents
一种后端接口数据校验方法及系统 Download PDFInfo
- Publication number
- CN116861887A CN116861887A CN202310895689.8A CN202310895689A CN116861887A CN 116861887 A CN116861887 A CN 116861887A CN 202310895689 A CN202310895689 A CN 202310895689A CN 116861887 A CN116861887 A CN 116861887A
- Authority
- CN
- China
- Prior art keywords
- data
- interface data
- verification
- interface
- tool
- 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
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000013524 data verification Methods 0.000 title claims abstract description 46
- 238000012795 verification Methods 0.000 claims abstract description 88
- 238000013507 mapping Methods 0.000 claims abstract description 36
- 230000002159 abnormal effect Effects 0.000 claims description 26
- 230000004044 response Effects 0.000 claims description 15
- 230000008569 process Effects 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 5
- 238000006243 chemical reaction Methods 0.000 claims description 5
- 238000004088 simulation Methods 0.000 claims description 5
- 238000012545 processing Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 1
- 229940014425 exodus Drugs 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000009469 supplementation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/226—Validation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/36—Software reuse
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种后端接口数据校验方法及系统,涉及接口数据校验技术领域,所述方法包括以下步骤:将后端接口数据转换为第一接口数据,所述后端接口数据的数据格式为typescript,所述第一接口数据的数据格式为JsonSchema;对后端发送的请求进行拦截处理得到所述第一接口数据的地址和对应的数据类型名;创建映射文件,所述映射文件用于将所述第一接口数据的地址与所述数据类型名进行一一对应映射;引入数据校验工具,基于所述映射文件,利用所述数据校验工具对所述第一接口数据进行校验得到校验结果。本发明能解决现有后端接口数据校验方法中存在的代码量大、对代码入侵性大和可复用性低的问题。
Description
技术领域
本发明涉及接口数据校验技术领域,具体地,涉及一种后端接口数据校验方法及系统。
背景技术
在前端开发领域,后端接口数据校验是非常重要的,因为前端校验只能检测用户输入数据的格式和规范性,无法检测后端数据的准确性和完整性,而通过校验后端接口数据不仅能确保后端数据的准确性和完整性,同时还具有以下优点:提高应用程序的稳定性和可靠性,防止恶意攻击和注入及提高用户体验和满意度。
现有针对后端接口数据的校验方法是引入第三方typescript-needs-types库zod,通过调用object方法和infer对每一个需要校验的接口手动创建类型实例,再使用类型实例,通过编写校验逻辑对需要校验的数据进行校验,但是这种方法大部分需要使用指定格式编写代码,相当于对原有项目进行重构,存在可复用性低,不够灵活和对代码入侵性大的问题。
发明内容
为解决现有后端接口数据校验方法中存在的代码量大、对代码入侵性大和可复用性低的问题,本发明提供了一种后端接口数据校验方法,所述方法包括以下步骤:
将后端接口数据转换为第一接口数据,所述后端接口数据的数据格式为typescript,所述第一接口数据的数据格式为JsonSchema;
对后端发送的请求进行拦截处理得到所述第一接口数据的地址和对应的数据类型名;
创建映射文件,所述映射文件用于将所述第一接口数据的地址与所述数据类型名进行一一对应映射;
引入数据校验工具,基于所述映射文件,利用所述数据校验工具对所述第一接口数据进行校验得到校验结果。
现有主流前端开发都是通过typescript写的,需要针对typescript格式的后端接口数据进行校验。而JsonSchema作为对json数据格式的描述和规范已经是较为成熟的技术,而且能更明确的定义数据的类型和结构,因此可以通过JsonSchema来对数据进行校验,所以首先将typescript格式的后端接口数据转换为JsonSchema格式的第一接口数据,再拦截后端请求获得第一接口数据的地址和数据类型名,创建映射文件将第一接口数据的地址和数据类型名一一映射,最后引入数据校验工具,通过对映射文件中的数据类型名进行校验,而数据类型名又与数据地址一一对应,因此最终起到对第一接口数据进行校验的效果。本发明基于JsonSchema对数据的校验,采用拦截请求获取接口数据并引入校验工具提高校验效率,采用本方案对后端接口数据进行校验,不需要使用指定格式编写代码,也不存在对原有前端项目的重构,因此解决了现有后端接口数据校验方法中存在的代码量大和对代码入侵性大的问题,同时在对其他前端项目进行后端接口数据校验时,只需要在请求接口时增加本方案,不需要对原本的前端项目进行大量的改动,因此解决了现有后端接口数据校验方法可复用性低的问题。
优选的,将后端接口数据转换为第一接口数据包括:通过第一预设工具对所述后端接口数据进行编译获取类型信息得到获取结果,基于所述获取结果,将所述后端接口数据转换为所述第一接口数据。
其中,通过第一预设工具比如typescript-json-schema可以将typescript定义转换为JsonSchema格式,首先编译typescript文件获取类型信息(如必填属性、属性初始值、继承和注释),再转换为JsonSchema格式,从而完成从后端接口数据到第一接口数据的转换。
优选的,对所述后端接口数据进行实时监听,当监听到所述后端接口数据发生变化,利用所述第一预设工具对所述第一接口数据进行实时更新。
其中,当后端接口数据发生变化,如果不及时对第一接口数据进行更新,可能会导致校验错误等问题,因此需要对后端接口数据进行监听,当监听到后端接口数据发生变化时对第一接口数据进行更新。
优选的,利用所述数据校验工具对所述第一接口数据进行校验得到校验结果包括:
S1.创建验证函数;通过所述数据校验工具的内置函数获取校验实例;
S2.基于所述验证函数和所述校验实例,对所述第一接口数据进行校验得到校验结果。
其中,创建验证函数(如vaildateDataBvType),通过数据校验工具(如ajv库)的内置函数(如getSchema)获取校验实例(如validate),最后使用校验实例来对第一接口数据进行校验。
优选的,利用所述数据校验工具对所述第一接口数据进行校验得到校验结果还包括:获取所述第一接口数据的数据类型,判断所述数据类型是否与第一数据类型匹配,若匹配成功,执行步骤S1-S2;若匹配失败,引入第二预设工具对匹配失败的数据类型对应的所述第一接口数据进行处理后执行步骤S1-S2。
其中,对于第一接口数据的数据格式JsonSchema默认包含6种数据类型(string、number、object、array、boolean和null),而对于复杂数据的具体类型,比如function和date,则需要引入第二预设工具(如ajv-keywords)进行额外补充后,才能进行数据校验。因此在对第一接口数据进行校验前,需要先判断第一接口数据的数据类型是否为默认6种基本数据类型,如果是,则执行步骤S1-S2;如果不是,则先使用第二预设工具对数据进行处理后执行步骤S1-S2.
优选的,对后端发送的请求进行拦截处理包括:获取所述后端发送请求的类型,若所述后端发送请求的类型为xmlhttprequest类型,则采用ajax-hook对所述后端发送的请求进行拦截处理;若所述后端发送请求的类型为fetch,则通过重写window.fetch对所述后端发送的请求进行拦截处理。
其中,由于发送请求的方式不一样,因此相应的处理方式也存在差异,如果发送请求的类型为xmlhttprequest类型,则通过ajax-hook库对请求进行拦截,如果发送请求的类型为fetch,则是通过重写window.fetch来对请求进行拦截,也就是通过重写fetch的方法为fetch添加拦截器的功能,然后替换原生window下的fetch。
优选的,所述方法还包括以下步骤用于判断是否成功拦截处理所述后端发送的请求:使用第三预设工具搭建本地模拟服务器;在所述服务器中增加调用后端接口的代码和引入拦截工具文件;启动所述服务器,判断是否成功拦截所述后端发送的请求,若是,则对所述第一接口数据进行校验,若否,则继续对所述后端发送的请求进行拦截处理。
其中,因为在对请求进行拦截的过程中可能会存在拦截失败的问题,如果此时还进行数据校验,可能就会发生报错,因此在进行数据校验前,添加判断拦截是否成功的步骤。使用第三预设工具(如json-server)搭建本地模拟服务器(mock),在服务器中增加调用接口的代码和引入拦截工具文件(如src/interceptTool.ts),再启动服务器,判断拦截是否成功,如果成功则对第一接口数据进行校验,如果失败,则继续对后端发送的请求进行拦截。
优选的,所述方法还包括以下步骤用于将所述校验结果返回至前端:获取所述校验结果的状态响应码,若所述状态响应码为0,则判断所述校验结果返回成功,将所述校验结果返回至前端进行显示;若所述状态响应码为1,则判断所述校验结果返回异常,将返回异常的所述校验结果定义为异常校验结果,获取所述异常校验结果的数据类别,判断所述数据类别是否与第一数据类别匹配,若匹配成功,则不返回所述异常校验结果;若匹配失败,则返回默认值。
其中,状态响应码是用来表明后端请求是否成功完成,也就是校验结果是否返回成功,当状态响应码为0时,判断校验结果返回成功,此时将校验结果返回至前端进行显示,但如果状态响应码为1时,则判断校验结果返回异常,此时就需要对校验结果重新处理,由于在前端中对于null(异常)值的数据处理起来很麻烦,因此要尽量避免往前端传null值,所以如果数据字段为非必需的数据,可以选择不返回这条数据,如果数据字段为必需,就返回默认值(如0或者空字符串)。将非必需的数据字段的数据类别设置为第一数据类别,判断异常校验结果的数据类别是否与第一数据类别匹配成功,若匹配成功,则不返回异常校验结果,若匹配失败,则返回默认值。
优选的,若匹配失败,则返回默认值包括:获取匹配失败对应的所述异常校验结果的数据格式,判断所述数据格式是否与第一数据格式匹配,若匹配成功,则将默认值设置为0;若匹配失败,则将默认值设置为空字符串。
其中,匹配失败,返回默认值时,由于针对不同的数据格式,在返回默认值时也存在差异,因此获取异常校验结果的数据格式,判断数据格式与第一数据格式(为int格式)是否匹配,若匹配成功,则返回默认值为0,若匹配失败,判断此时异常校验结果的数据格式为string格式,返回默认值为空字符串。
为解决现有针对后端接口数据校验方法中存在的问题,本发明还提供了一种后端接口数据校验系统,所述系统包括:
转换单元,用于将后端接口数据转换为第一接口数据,所述后端接口数据的数据格式为typescript,所述第一接口数据的数据格式为JsonSchema;
拦截单元,用于对后端发送的请求进行拦截处理得到所述第一接口数据的地址和对应的数据类型名;
映射单元,用于创建映射文件,所述映射文件用于将所述第一接口数据的地址与所述数据类型名进行一一对应映射;
校验单元,用于引入数据校验工具,基于所述映射文件,利用所述数据校验工具对所述第一接口数据进行校验得到校验结果。
本发明提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明基于JsonSchema对数据的校验,采用拦截请求获取接口数据并引入校验工具提高校验效率,解决了现有后端接口数据校验方法中存在的代码量大、对代码入侵性大和可复用性低的问题。
本发明通过判断校验结果是否返回成功,若成功,则返回校验结果,若失败,则选择不返回校验结果或者返回默认值,避免返回null值而造成前端崩溃。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本发明的一部分,并不构成对本发明实施例的限定;
图1是本发明中一种后端接口数据校验方法的流程示意图;
图2是本发明中一种后端接口数据校验系统的组成示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在相互不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述范围内的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
实施例一
请参考图1,图1为本发明中一种后端接口数据校验方法的流程示意图,所述方法包括以下步骤:
将后端接口数据转换为第一接口数据,所述后端接口数据的数据格式为typescript,所述第一接口数据的数据格式为JsonSchema;
对后端发送的请求进行拦截处理得到所述第一接口数据的地址和对应的数据类型名;
创建映射文件,所述映射文件用于将所述第一接口数据的地址与所述数据类型名进行一一对应映射;
引入数据校验工具,基于所述映射文件,利用所述数据校验工具对所述第一接口数据进行校验得到校验结果。
在本发明实施例中,现有主流前端开发都是基于typescript,因此本发明也是针对typescript格式的后端接口数据进行校验,而JsonSchema作为对json数据格式的描述和规范已经是较为成熟的技术,因此通过第一预设工具将typescript格式的后端接口数据转换为JsonSchema格式的第一接口数据。JsonSchema能明确地定义数据的类型和结构,比如在JsonSchema的通用配置项中type是规定值的类型,required是规定object下哪些键是必须的,properties是规定objec下键的格式,maxLength是规定字符串的最大长度和minItems是规定数组元素的最少个数,上述举例只是起到解释说明的作用,对于JsonSchema对于数据校验的通用配置项,本实施例不做具体限定。然后就需要对第一接口数据进行校验,由于后端发送请求时都会调用统一封装函数,因此可以通过在函数中增加校验逻辑的方式来对数据进行校验,但此方法与后端代码耦合严重,可复用性低,因此选择对后端发送的请求进行拦截校验后再返回给前端。通过拦截后端请求获得第一接口数据的地址和数据类型名,再创建映射文件urlMapType.ts将数据地址和数据类型名一一对应起来,由于JsonSchema对于数据的校验都是针对数据类型,因此通过数据类型和数据地址映射的方式,达到最终校验第一接口数据的效果。而如何利用JsonSchema对数据进行校验,则是通过数据校验工具实现,数据校验工具可以选择ajv、djv或者@exodus/schemasafe等其他工具,优选ajv库,因为ajv校验工具的校验效率远高于其他数据校验工具,后续提到的数据校验工具都默认为ajv库。最后基于映射文件,利用ajv校验工具对第一接口数据进行校验得到校验结果。
其中,将后端接口数据转换为第一接口数据包括:通过第一预设工具对所述后端接口数据进行编译获取类型信息得到获取结果,基于所述获取结果,将所述后端接口数据转换为所述第一接口数据。
通过第一预设工具比如typescript-json-schema将typescript定义转换为JsonSchema格式,首先编译typescript文件获取类型信息(如必填属性、属性初始值、继承和注释),再转换为JsonSchema格式。具体方法为首先安装第一预设工具npm installtypescript-json-schema,再创建类型文件src/types/user.ts,然后创建src/types/index.ts文件并引入类型文件中的类型,再在packa.json中添加脚本,最后运行第一预设工具npm run json,如果发生报错的情况,则在json命令中添加ignoreErrors(忽略错误)参数,完成typescript格式到JsonSchema格式的转换。
其中,对所述后端接口数据进行实时监听,当监听到所述后端接口数据发生变化,利用所述第一预设工具对所述第一接口数据进行实时更新。
当后端接口数据发生变化,如果不及时对第一接口数据进行更新,可能会导致校验错误等问题,因此需要对后端接口数据进行监听,当监听到后端接口数据发生变化时对第一接口数据进行更新。
其中,利用所述数据校验工具对所述第一接口数据进行校验得到校验结果包括:
S1.创建验证函数;通过所述数据校验工具的内置函数获取校验实例;
S2.基于所述验证函数和所述校验实例,对所述第一接口数据进行校验得到校验结果。
创建验证函数如vaildateDataByTe,通过数据校验工具如ajv的内置函数getSchema获取校验实例vaildate,最后通过校验实例来对第一接口数据进行校验获得校验结果。
其中,利用所述数据校验工具对所述第一接口数据进行校验得到校验结果还包括:获取所述第一接口数据的数据类型,判断所述数据类型是否与第一数据类型匹配,若匹配成功,执行步骤S1-S2;若匹配失败,引入第二预设工具对匹配失败的数据类型对应的所述第一接口数据进行处理后执行步骤S1-S2。
本发明是基于JsonSchema对数据的校验,而JsonSchema默认含有6种数据类型包括string、number、object、array、boolean和null,将第一数据类型设置为以上6种数据类型,判断第一接口数据的数据类型与第一数据类型是否匹配成功,若成功,则可以直接进行数据校验,即执行步骤S1-S2;由于JsonSchema不支持js里复杂数据类型的具体类型,比如function和date类型,因此还存在匹配失败的问题,此时就需要引入第二预设工具如ajv-keywords对上述如function和date类型进行额外补充,然后再进行数据校验,即执行步骤S1-S2。
其中,对后端发送的请求进行拦截处理包括:获取所述后端发送请求的类型,若所述后端发送请求的类型为xmlhttprequest类型,则采用ajax-hook对所述后端发送的请求进行拦截处理;若所述后端发送请求的类型为fetch,则通过重写window.fetch对所述后端发送的请求进行拦截处理。
由于发送请求的方式不一样,因此相应的处理方式也存在差异,通过ajax-hook可以拦截xmlhttprequest发送的请求并处理,具体方法为首先安装依赖npm install ajax-hook(ajax-hook工具),然后创建拦截工具文件src/interceptTool.ts,这样就能拦截xmlhttprequest发送的请求。而针对fetch发送的请求,则需要通过window.ftech来进行拦截,具体方法为注入js代码,修改fetch方法,给fetch添加拦截器的功能,然后替换原生window下的fetch,最终起到拦截后端请求的效果。
其中,所述方法还包括以下步骤用于判断是否成功拦截处理所述后端发送的请求:使用第三预设工具搭建本地模拟服务器;在所述服务器中增加调用后端接口的代码和引入拦截工具文件;启动所述服务器,判断是否成功拦截所述后端发送的请求,若是,则对所述第一接口数据进行校验,若否,则继续对所述后端发送的请求进行拦截处理。
使用第三预设工具json-server搭建本地模拟mock服务器,具体步骤为首先安装第三预设工具npm install json-server,然后在根目录创建文件db.json,再在package.json中添加脚本。搭建成功后,在服务器的src/index.tsx文件中增加调用接口的代码,并引入拦截工具文件src/interceptTool.ts,最后启动服务器,判断拦截是否成功,若成功,则对第一接口数据进行校验,若失败,则继续对后端发送的请求进行拦截处理。
其中,所述方法还包括以下步骤用于将所述校验结果返回至前端:获取所述校验结果的状态响应码,若所述状态响应码为0,则判断所述校验结果返回成功,将所述校验结果返回至前端进行显示;若所述状态响应码为1,则判断所述校验结果返回异常,将返回异常的所述校验结果定义为异常校验结果,获取所述异常校验结果的数据类别,判断所述数据类别是否与第一数据类别匹配,若匹配成功,则不返回所述异常校验结果;若匹配失败,则返回默认值。
状态响应码是用来表明后端请求是否成功完成,也就是校验结果是否返回成功,当状态响应码为0时,判断校验结果返回成功,此时将校验结果返回至前端进行显示,但如果状态响应码为1时,则判断校验结果返回异常,此时就需要对校验结果重新处理,由于在前端中对于null(异常)值的数据处理起来很麻烦,因此要尽量避免往前端传null值,所以如果数据字段为非必需的数据,可以选择不返回这条数据,如果数据字段为必需,就返回默认值(如0或者空字符串)。将非必需的数据字段的数据类别设置为第一数据类别,判断异常校验结果的数据类别是否与第一数据类别匹配成功,若匹配成功,则不返回异常校验结果,若匹配失败,则返回默认值。
其中,若匹配失败,则返回默认值包括:获取匹配失败对应的所述异常校验结果的数据格式,判断所述数据格式是否与第一数据格式匹配,若匹配成功,则将默认值设置为0;若匹配失败,则将默认值设置为空字符串。
由于针对不同的数据格式,在返回默认值时也存在差异,将第一数据格式设置为int格式,获取异常校验结果的数据格式与第一数据格式进行匹配,若成功,则设置默认值为0,若失败,判断异常校验结果的数据格式为string格式,则设置默认值为空字符串。
实施例二
请参考图2,图2为本发明中一种后端接口数据校验系统的组成示意图,所述系统包括:
转换单元,用于将后端接口数据转换为第一接口数据,所述后端接口数据的数据格式为typescript,所述第一接口数据的数据格式为JsonSchema;
拦截单元,用于对后端发送的请求进行拦截处理得到所述第一接口数据的地址和对应的数据类型名;
映射单元,用于创建映射文件,所述映射文件用于将所述第一接口数据的地址与所述数据类型名进行一一对应映射;
校验单元,用于引入数据校验工具,基于所述映射文件,利用所述数据校验工具对所述第一接口数据进行校验得到校验结果。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种后端接口数据校验方法,其特征在于,所述方法包括以下步骤:
将后端接口数据转换为第一接口数据,所述后端接口数据的数据格式为typescript,所述第一接口数据的数据格式为JsonSchema;
对后端发送的请求进行拦截处理得到所述第一接口数据的地址和对应的数据类型名;
创建映射文件,所述映射文件用于将所述第一接口数据的地址与所述数据类型名进行一一对应映射;
引入数据校验工具,基于所述映射文件,利用所述数据校验工具对所述第一接口数据进行校验得到校验结果。
2.根据权利要求1所述的一种后端接口数据校验方法,其特征在于,将后端接口数据转换为第一接口数据包括:通过第一预设工具对所述后端接口数据进行编译获取类型信息得到获取结果,基于所述获取结果,将所述后端接口数据转换为所述第一接口数据。
3.根据权利要求2所述的一种后端接口数据校验方法,其特征在于,对所述后端接口数据进行实时监听,当监听到所述后端接口数据发生变化,利用所述第一预设工具对所述第一接口数据进行实时更新。
4.根据权利要求1所述的一种后端接口数据校验方法,其特征在于,利用所述数据校验工具对所述第一接口数据进行校验得到校验结果包括:
S1.创建验证函数;通过所述数据校验工具的内置函数获取校验实例;
S2.基于所述验证函数和所述校验实例,对所述第一接口数据进行校验得到校验结果。
5.根据权利要求4所述的一种后端接口数据校验方法,其特征在于,利用所述数据校验工具对所述第一接口数据进行校验得到校验结果还包括:获取所述第一接口数据的数据类型,判断所述数据类型是否与第一数据类型匹配,若匹配成功,执行步骤S1-S2;若匹配失败,引入第二预设工具对匹配失败的数据类型对应的所述第一接口数据进行处理后执行步骤S1-S2。
6.根据权利要求1所述的一种后端接口数据校验方法,其特征在于,对后端发送的请求进行拦截处理包括:获取所述后端发送请求的类型,若所述后端发送请求的类型为xmlhttprequest类型,则采用ajax-hook对所述后端发送的请求进行拦截处理;若所述后端发送请求的类型为fetch,则通过重写window.fetch对所述后端发送的请求进行拦截处理。
7.根据权利要求1所述的一种后端接口数据校验方法,其特征在于,所述方法还包括以下步骤用于判断是否成功拦截处理所述后端发送的请求:使用第三预设工具搭建本地模拟服务器;在所述服务器中增加调用后端接口的代码和引入拦截工具文件;启动所述服务器,判断是否成功拦截所述后端发送的请求,若是,则对所述第一接口数据进行校验,若否,则继续对所述后端发送的请求进行拦截处理。
8.根据权利要求1所述的一种后端接口数据校验方法,其特征在于,所述方法还包括以下步骤用于将所述校验结果返回至前端:获取所述校验结果的状态响应码,若所述状态响应码为0,则判断所述校验结果返回成功,将所述校验结果返回至前端进行显示;若所述状态响应码为1,则判断所述校验结果返回异常,将返回异常的所述校验结果定义为异常校验结果,获取所述异常校验结果的数据类别,判断所述数据类别是否与第一数据类别匹配,若匹配成功,则不返回所述异常校验结果;若匹配失败,则返回默认值。
9.根据权利要求8所述的一种后端接口数据校验方法,其特征在于,若匹配失败,则返回默认值包括:获取匹配失败对应的所述异常校验结果的数据格式,判断所述数据格式是否与第一数据格式匹配,若匹配成功,则将默认值设置为0;若匹配失败,则将默认值设置为空字符串。
10.一种后端接口数据校验系统,其特征在于,所述系统包括:
转换单元,用于将后端接口数据转换为第一接口数据,所述后端接口数据的数据格式为typescript,所述第一接口数据的数据格式为JsonSchema;
拦截单元,用于对后端发送的请求进行拦截处理得到所述第一接口数据的地址和对应的数据类型名;
映射单元,用于创建映射文件,所述映射文件用于将所述第一接口数据的地址与所述数据类型名进行一一对应映射;
校验单元,用于引入数据校验工具,基于所述映射文件,利用所述数据校验工具对所述第一接口数据进行校验得到校验结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310895689.8A CN116861887A (zh) | 2023-07-19 | 2023-07-19 | 一种后端接口数据校验方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310895689.8A CN116861887A (zh) | 2023-07-19 | 2023-07-19 | 一种后端接口数据校验方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116861887A true CN116861887A (zh) | 2023-10-10 |
Family
ID=88232043
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310895689.8A Pending CN116861887A (zh) | 2023-07-19 | 2023-07-19 | 一种后端接口数据校验方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116861887A (zh) |
-
2023
- 2023-07-19 CN CN202310895689.8A patent/CN116861887A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8150674B2 (en) | Automated testing platform for event driven systems | |
US7673292B2 (en) | Auto conversion of tests between different functional testing tools | |
KR100655124B1 (ko) | 주문 제작 컴퓨터시스템을 위한 소프트웨어 설치 및 테스트를촉진하는 데이타베이스 | |
US20030055809A1 (en) | Methods, systems, and articles of manufacture for efficient log record access | |
US7080357B2 (en) | Software package verification | |
US20040243882A1 (en) | System and method for fault injection and monitoring | |
US20070204261A1 (en) | Robust software library wrapper method and apparatus | |
US7634766B2 (en) | Method and apparatus for pattern-based system design analysis using a meta model | |
WO2019019640A1 (zh) | 订单信息的模拟处理方法、装置、存储介质和计算机设备 | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN113568839A (zh) | 软件测试和统计测试覆盖率的方法、装置、设备及介质 | |
CN111782526A (zh) | 一种接口测试方法、装置、电子设备及存储介质 | |
CN112241370B (zh) | 一种api接口类的校验方法、系统及装置 | |
CN114201408A (zh) | 回归测试方法、装置、计算机设备及存储介质 | |
US20110016454A1 (en) | Method and system for testing an order management system | |
CN110119348B (zh) | 一种软件升级测试的方法及终端 | |
CN113742215A (zh) | 一种自动配置和调用测试工具进行测试分析的方法及系统 | |
CN116861887A (zh) | 一种后端接口数据校验方法及系统 | |
CN112256554B (zh) | 一种基于场景测试用例进行测试的方法及设备 | |
CN115470152A (zh) | 测试代码生成方法、测试代码生成装置以及存储介质 | |
CN113238940A (zh) | 一种接口测试结果的比对方法、装置、设备和存储介质 | |
CN106648797A (zh) | 安装测试软件的方法、系统、测试服务器及共享服务器 | |
CN112069009A (zh) | 一种在Recovery模式下进行压力测试的方法、装置和终端设备 | |
CN113094281B (zh) | 一种混合式App的测试方法及装置 | |
CN115374018B (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 |