CN114116510A - 一种接口参数校验方法及装置 - Google Patents
一种接口参数校验方法及装置 Download PDFInfo
- Publication number
- CN114116510A CN114116510A CN202111463409.3A CN202111463409A CN114116510A CN 114116510 A CN114116510 A CN 114116510A CN 202111463409 A CN202111463409 A CN 202111463409A CN 114116510 A CN114116510 A CN 114116510A
- Authority
- CN
- China
- Prior art keywords
- interface
- data structure
- structure model
- parameter
- variable
- 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 72
- 238000006243 chemical reaction Methods 0.000 claims abstract description 24
- 230000015654 memory Effects 0.000 claims description 28
- 238000012795 verification Methods 0.000 claims description 18
- 238000004458 analytical method Methods 0.000 claims description 15
- 230000008676 import Effects 0.000 claims description 13
- 238000013507 mapping Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 18
- 238000012545 processing Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 15
- 230000003993 interaction Effects 0.000 description 6
- 238000012360 testing method Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000013499 data model Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 239000000243 solution Substances 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 238000011022 operating instruction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- RWSOTUBLDIXVET-UHFFFAOYSA-N Dihydrogen sulfide Chemical compound S RWSOTUBLDIXVET-UHFFFAOYSA-N 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000007704 transition Effects 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/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- 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/3692—Test management for test results analysis
Abstract
本发明涉及金融科技(Fintech)领域,公开一种接口参数校验方法及装置,针对前端接收到的对第一接口的调用请求,从前后端转换配置中获取第一接口的前端参数数据结构模型;前后端转换配置中任一接口的前端参数数据结构模型是通过对后端代码中的各数据结构模型文件和所述后端代码中的各接口定义文件进行解析生成的、该接口的后端参数数据结构模型进行转换得到的;基于第一接口的前端参数数据结构模型对调用请求中的各参数进行校验,确定调用请求的正确性。该方案可以实现实时性地、全面性地以及高效率地对前端的调用请求进行校验的目标。
Description
技术领域
本申请实施例涉及金融科技(Fintech)领域,尤其涉及一种接口参数校验方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术(例如:云计算、大数据或区块链)应用在金融领域,传统金融业正在逐步向金融科技转变。例如,基于当前普遍流行的服务端可向客户端提供服务的架构,银行业对于自己的各种产品通过开发相应的网上服务,可以很大程度上减少用户需要去线下实体银行办理业务的情况,提升了用户体验感。对于服务端-客户端的架构,服务端可以理解为后端,客户端可以理解为前端。其中,在对前端进行开发时,经常会通过发送接口而与后端进行数据交互,而在交互过程中难免会发生因为接口入参出参出错的情况所导致运行出错的问题。因而,为了保证用户在对前端进行使用的过程中前后端交互的通畅性,可在对前端进行发布之前,设置接口的测试环节。目前接口测试需要前端开发人员在开发过程中根据后端人员编写的接口文档中的数据结构说明、来对每一个接口的入参出参进行校验。
然而,上述对接口进行测试的过程,存在以下问题:
1、接口文档由于是由后端人员编写并维护的,难免会出现编写错误,以及更新不及时的情况。
2、前端开发人员根据接口文档对每一个接口的入参出参都要进行具体的校验代码的编写,该过程是非常费时费力的。
3、前端开发人员在编写校验代码时可能会遗漏对某些接口入参出参的校验。
因此,目前亟需一种自动化校验前端接口使用过程中的入参出参是否正确的方案。
发明内容
本申请提供一种接口参数校验方法及装置,用以实时、全方位地对前端接口在使用过程中的入参出参是否正确进行自动化校验,提升了接口参数校验的实时性、全面性与检测效率。
第一方面,本申请实施例提供一种接口参数校验方法,该方法包括:针对前端接收到的对第一接口的调用请求,从前后端转换配置中获取所述第一接口的前端参数数据结构模型;所述前后端转换配置中任一接口的前端参数数据结构模型是通过对后端代码中的各数据结构模型文件和所述后端代码中的各接口定义文件进行解析生成的、所述接口的后端参数数据结构模型进行转换得到的;基于所述第一接口的前端参数数据结构模型对所述调用请求中的各参数进行校验,确定所述调用请求的正确性。
上述方案中,在前端接收到对第一接口的调用请求时,通过获取第一接口的前端参数数据结构模型,其中由于该前端参数数据结构模型是根据第一接口的后端参数数据结构模型进行转换得到的,又由于第一接口的后端参数数据结构模型是根据后端代码中的各数据结构模型文件和各接口定义文件进行解析得到的,由于经解析得到的第一接口的后端参数数据结构模型中包括校验参数是否必须、参数所属的类型等内容,因此通过将所解析得到的后端参数数据结构模型转换为前端可认知的数据结构模型,即前端在第一接口下的参数数据模型,如此就可以基于第一接口的前端参数数据模型对调用请求中的各参数进行自动化校验。该方案可以实现实时性地、全面性地以及高效率地对前端的调用请求进行校验的目标。
在一种可能实现的方法中,所述前后端转换配置中任一接口的前端参数数据结构模型是通过对后端代码中的各数据结构模型文件和所述后端代码中的各接口定义文件进行解析生成的、所述接口的后端参数数据结构模型进行转换得到的,包括:根据对后端代码中的各数据结构模型文件的解析,获取各数据结构模型文件分别对应的数据结构模型文件对象;任一数据结构模型文件对象包括对外暴露类;根据对所述后端代码中的各接口定义文件的解析,获取各接口分别对应的对外暴露类;针对各接口中的任一接口,根据所述接口的对外暴露类,从各数据结构模型文件对象中确定出与所述接口的对外暴露类同名的数据结构模型文件对象;根据所述数据结构模型文件对象,生成所述接口的后端参数数据结构模型;对所述接口的后端参数数据结构模型进行前后端参数的转换,得到所述接口的前端参数数据结构模型。
上述方案中,由于后端代码在对前端接口进行定义时,分为了两部分,包括数据结构模型文件和接口定义文件,其中通过对各数据结构模型文件的解析,可以获取到对应的各数据结构模型文件对象,任一个数据结构模型文件对象中包括一个对外暴露类,以及通过对各接口定义文件的解析,可以获取到与接口对应对外暴露类,然后针对于任一个接口,通过该接口的对外暴露类,将可以从各数据结构模型文件对象中匹配出与之同名的一个数据结构模型文件对象,接着根据对匹配出数据结构模型文件对象的处理,就可以生成该接口的后端参数数据结构模型,最后通过将所生成的后端参数数据结构模型转换成前端可以认知的数据结构模型,从而就得到了该接口的前端参数数据结构模型。该方式实现了在由后端代码对前端的各接口作出定义的场景下,通过自动化解析后端代码中关于各接口的定义,如此可以避免背景技术中需要通过人工的方式来测试前端接口可用性的问题。
在一种可能实现的方法中,所述根据对后端代码中的各数据结构模型文件的解析,获取各数据结构模型文件分别对应的数据结构模型文件对象,包括:针对各数据结构模型文件中的任一数据结构模型文件,通过javaparse工具建立所述数据结构模型文件的抽象语法树;所述抽象语法树包括JCImport节点和JCClassDecl节点;基于所述JCImport节点得到第一信息;所述第一信息包括各个变量的变量内容和导入路径;基于所述JCClassDecl节点得到第二信息;所述第二信息包括所述数据结构模型文件指示的对外暴露类和所述对外暴露类内部的各变量的变量信息;将所述第一信息和所述第二信息作为所述数据结构模型文件的数据结构模型文件对象。
上述方案中,描述了如何通过对一数据结构模型文件的解析而得到它的数据结构模型文件对象的过程,包括首先可通过javaparse工具建立该数据结构模型文件的抽象语法树,其中,通过该抽象语法树中的JCImport节点可以获取到的各个变量的变量内容以及它的导入路径,同时通过抽象语法树中的JCClassDecl节点可以获取到该数据结构模型文件指示的对外暴露类以及该对外暴露类内部的各变量的变量信息,从而可以将两方面得到的信息作为该数据结构模型文件的数据结构模型文件对象。该方式通过javaparse工具为建立任一数据结构模型文件建立对应的抽象语法树,从而通过对抽象语法树的解析,就可以建立该数据结构模型文件的数据结构模型文件对象。该方式实现了自动化解析后端代码中的、对接口进行定义时需要用到的数据结构模型文件,提升了接口参数校验的效率。
在一种可能实现的方法中,所述变量信息包括变量名称、变量类型和变量注解名;所述根据所述数据结构模型文件对象,生成所述接口的后端参数数据结构模型,包括:若所述接口的数据结构模型文件对象中包括至少一个变量类型为非自定义类型的第一变量,则将所述第一变量的变量信息作为所述接口在所述第一变量下的后端参数数据结构模型;若所述接口的数据结构模型文件对象中包括至少一个变量类型为自定义类型的第二变量,则将基于所述第二变量的导入路径获取到的、与所述第二变量同名的内容作为所述接口在所述第二变量下的后端参数数据结构模型。
上述方案中,在对各接口的接口定义文件进行解析后,针对任一个接口在解析后得到的对外暴露类,可以从解析得到的各数据结构模型文件对象中匹配出与之同名的一个数据结构模型文件对象;对于所匹配出的数据结构模型文件对象,其中在含有非自定义类型的变量的同时可能还含有自定义类型的变量,因此,对于非自定义类型的变量,直接可以将变量名对应的变量信息放在该变量下,而对于自定义类型的变量,则可以通过该变量对应的导入路径而获取到与该变量同名的内容,进而可以将所获取的内容放在该变量下。通过该方式,可以实现从数据结构模型文件对象到后端参数数据结构模型的过渡,最后通过将后端参数数据结构模型转换为前端能够识别的前端参数数据结构模型,就可以基于前端参数数据结构模型来对接口的调用请求中所设计的各参数快速进行准确校验了。
在一种可能实现的方法中,各接口包括前端向后端发送接口请求时所带数据的入参数据结构和后端接收到前端发送的接口请求时返回数据的出参数据结构;所述根据对所述后端代码中的各接口定义文件的解析,获取各接口分别对应的对外暴露类,包括:针对各接口定义文件中的任一接口定义文件,获取所述接口定义文件指示的接口的入参数据结构和出参数据结构分别对应的第一对外暴露类和第二对外暴露类。
上述方案中,前后端在通过发送接口进行数据交互的过程中,其中包括前端向后端发送接口请求时携带的数据,即入参,以及后端接收到前端发送的接口请求时返回的数据,即出参;因此前端的接口校验包括对入参和出参的校验,对入参的校验可以基于入参数据结构,对出参的校验可以基于出参数据结构,因此在对后端代码中的接口定义文件进行解析时,可以基于任一个接口定义文件而获取到该接口定义文件指示的接口的入参数据结构和出参数据结构分别对应的第一对外暴露类和第二对外暴露类,如此的话,后续通过对外暴露类名称的匹配,可以获取到用于校验该接口的入参和出参正确性的入参数据结构和出参数据结构。
在一种可能实现的方法中,所述对所述接口的后端参数数据结构模型进行前后端参数的转换,得到所述接口的前端参数数据结构模型,包括:针对所述接口的后端参数数据结构模型中的任一参数,若所述参数的参数值符合基本数据类型,则基于基本数据类型映射表进行转化,得到所述参数在前端的表达;若所述参数的参数值不符合所述基本数据类型,则基于自定义数据类型映射表进行转化,得到所述参数在前端的表达,从而得到所述接口的前端参数数据结构模型。
上述方案中,由于前后端代码的差异性,在得到接口的后端参数数据结构模型后,仍需要将其转换为前端能够识别的前端参数数据结构模型,如此前端在通过接口向后端发送数据时,才能够校验前端接口参数的正确性。其中,在将一接口的后端参数数据结构模型转换为该接口在前端的表达的过程中,一种情况是,后端参数数据结构模型中的一参数的参数值采用的是基本数据类型的表达,那么仅需要基于基本数据类型映射表进行转化,以得到该参数在前端的表达,另一种情况是,该参数的参数值并非采用的是基本数据类型的表达,而是前后端人员预先已经商量好的自定义类型的数据类型,那么对此情况仅需要按照自定义数据类型映射表进行转化,以得到该参数在前端的表达,在完成对后端参数数据结构模型中的所有参数的转换以后,即可得到该接口在前端的参数数据结构模型。
在一种可能实现的方法中,所述基于所述第一接口的前端参数数据结构模型对所述调用请求中的各参数进行校验,确定所述调用请求的正确性,包括:根据所述第一接口的前端参数数据结构模型,对所述调用请求中的各参数进行递归遍历;若确定存在第一参数不满足所述第一参数在所述第一接口的前端参数数据结构模型中的要求,则确定所述第一参数错误并在第一接口参数错误记录池中记录所述错误;在遍历结束后,对所述第一接口参数错误记录池中的各错误进行输出。
上述方案中,在得到接口的前端参数数据结构模型之后,即可使用各前端参数数据结构模型来对相应的接口的调用请求进行校验,其中在对调用请求中的各参数进行校验时,可采用递归的方式对各待校验的参数进行遍历,当遍历到某一参数时,确定该参数并不满足当前接口的前端参数数据结构模型中的要去,则可以确定该参数传输错误并在当前接口参数错误记录池中记录该错误,从而在遍历结束后,可以基于当前接口参数错误记录池中的各错误进行输出,如此便可以减少测试成本以及查错成本。
第二方面,本申请实施例提供一种接口参数校验装置,该装置包括:前端参数数据结构模型获取单元,用于针对前端接收到的对第一接口的调用请求,从前后端转换配置中获取所述第一接口的前端参数数据结构模型;所述前后端转换配置中任一接口的前端参数数据结构模型是通过对后端代码中的各数据结构模型文件和所述后端代码中的各接口定义文件进行解析生成的、所述接口的后端参数数据结构模型进行转换得到的;判断单元,用于基于所述第一接口的前端参数数据结构模型对所述调用请求中的各参数进行校验,确定所述调用请求的正确性。
第三方面,本申请实施例提供了一种计算设备,包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行如第一方面任一实现方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面任一实现方法。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种接口参数校验方法的示意图;
图2为本申请实施例提供的一种ast语法树的示意图;
图3为本申请实施例提供的一种接口校验的流程示意图;
图4为本申请实施例提供的一种接口参数校验装置的示意图;
图5为本申请实施例提供的一种计算设备。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
由于目前在对前端发送的接口参数进行校验时,是通过人工的方式进行的,也即由前端开发人员基于后端开发人员编写的接口文档中的数据结构说明来对每一个接口的入参出参进行校验。该过程中难免出现实际上接口参数已经更新了,但是接口文档未及时更新至前端开发人员的情况,基于该种不同步性,将很容易发生大面积校验失败的情况,以及该人工校验的过程中,需要由前端开发人员根据接口文档为每一个接口的入参出参去编写具体的校验代码,这显然耗时耗力,同时还很难确保不出现漏检某些接口入参出参的问题。
针对上述技术问题,本申请实施例提供一种接口参数校验方法。如图1所示,为本申请实施例提供的一种接口参数校验方法的示意图,该方法包括以下步骤:
步骤101,针对前端接收到的对第一接口的调用请求,从前后端转换配置中获取所述第一接口的前端参数数据结构模型。
在本步骤中,所述前后端转换配置中任一接口的前端参数数据结构模型是通过对后端代码中的各数据结构模型文件和所述后端代码中的各接口定义文件进行解析生成的、所述接口的后端参数数据结构模型进行转换得到的。
步骤102,基于所述第一接口的前端参数数据结构模型对所述调用请求中的各参数进行校验,确定所述调用请求的正确性。
上述方案中,在前端接收到对第一接口的调用请求时,通过获取第一接口的前端参数数据结构模型,其中由于该前端参数数据结构模型是根据第一接口的后端参数数据结构模型进行转换得到的,又由于第一接口的后端参数数据结构模型是根据后端代码中的各数据结构模型文件和各接口定义文件进行解析得到的,由于经解析得到的第一接口的后端参数数据结构模型中包括校验参数是否必须、参数所属的类型等内容,因此通过将所解析得到的后端参数数据结构模型转换为前端可认知的数据结构模型,即前端在第一接口下的参数数据模型,如此就可以基于第一接口的前端参数数据模型对调用请求中的各参数进行自动化校验。该方案可以实现实时性地、全面性地以及高效率地对前端的调用请求进行校验的目标。
以下将结合示例分别对上述一些步骤进行详细说明。
在上述步骤101的一个实施中,所述前后端转换配置中任一接口的前端参数数据结构模型是通过对后端代码中的各数据结构模型文件和所述后端代码中的各接口定义文件进行解析生成的、所述接口的后端参数数据结构模型进行转换得到的,包括:根据对后端代码中的各数据结构模型文件的解析,获取各数据结构模型文件分别对应的数据结构模型文件对象;任一数据结构模型文件对象包括对外暴露类;根据对所述后端代码中的各接口定义文件的解析,获取各接口分别对应的对外暴露类;针对各接口中的任一接口,根据所述接口的对外暴露类,从各数据结构模型文件对象中确定出与所述接口的对外暴露类同名的数据结构模型文件对象;根据所述数据结构模型文件对象,生成所述接口的后端参数数据结构模型;对所述接口的后端参数数据结构模型进行前后端参数的转换,得到所述接口的前端参数数据结构模型。
在前端开发的过程中,可以通过发送接口的方式与后端进行数据交互。该过程中,为了达到数据传输的有效性,对各接口能够进行传输的数据作出相应的规范显得尤为重要。其中,对接口能够进行传输的数据所作出的规范称为接口文档,一般而言,接口文档是由后端开发人员进行编写并维护的,其内容包括各数据结构模型文件和各接口定义文件。
基于此,本申请实施例首先可以从后端代码中获取接口文档。在获取到接口文档后,将可以对当中的各数据结构模型文件以及各接口定义文件分别进行如下处理:
1、对于各数据结构模型文件的处理如下:
说明的是,由于本申请实施例对各数据结构模型文件中的任一个数据结构模型文件的处理方式均相同,故接下来将以对各数据结构模型文件中的一个数据结构模型文件进行处理为例,进行举例说明。
针对各数据结构模型文件中的任一个数据结构模型文件,通过对该数据结构模型文件的解析,可以获取到它对应的数据结构模型文件对象。其中,可以通过下述方式得到与数据结构模型文件对应的数据结构模型文件对象:
在本申请的某些实施中,所述根据对后端代码中的各数据结构模型文件的解析,获取各数据结构模型文件分别对应的数据结构模型文件对象,包括:针对各数据结构模型文件中的任一数据结构模型文件,通过javaparse工具建立所述数据结构模型文件的抽象语法树;所述抽象语法树包括JCImport节点和JCClassDecl节点;基于所述JCImport节点得到第一信息;所述第一信息包括各个变量的变量内容和导入路径;基于所述JCClassDecl节点得到第二信息;所述第二信息包括所述数据结构模型文件指示的对外暴露类和所述对外暴露类内部的各变量的变量信息;将所述第一信息和所述第二信息作为所述数据结构模型文件的数据结构模型文件对象。
例如,对于各数据结构模型文件中的任一个数据结构模型文件,通过使用JavaParse工具,可为该数据结构模型文件生成与它相对应的ast(Abstract Syntax Tree,抽象语法树)语法树,ast语法树由JCTree的内部类(如JCCompilationUnit,JCClassDecl,JCVariableDecl等)作为语法节点而构成。整个ast语法树的根节点为JCCompilationUnit对象,JCCompilationUnit子节点分别为JCPackage、JCImport、JCClassDecl。在解析得到ast语法树后,可以基于下述各步骤获取该数据结构模型文件的数据结构模型文件对象:
步骤1、首先可获取JCImport的内容。具体可通过根节点JCCompilationUnit对象的imports方法获取到所有JCImport对象,并通过迭代循环JCImport对象,可取出每个JCImport对象中导入路径和导入变量的值。
步骤2、接着可获取JCClassDecl节点的数据结构,以得到当前的数据结构模型文件内所有类的数据结构。具体可通过JCTree的accept方法、以获取根节点对象JCCompilationUnit中的JCClassDecl子节点。其中,由于accept方法需要接收一个JCTree.Visitor的方法作为参数,因此,本申请实施例可实现一个JCTree.Visitor的子类,并将该子类作为参数传入JCCompilationUnit.accept方法,该子类内部覆写visitClassDef(访问类节点)方法,包括:该方法的注入参数即为JCClassDecl节点对象,这个对象的name值即为类名。同时,除了获取类的名称还需获得类内部定义的变量名称以及变量类型。所以,本申请实施例还可再实现一个JCTree.Visitor子类,将该子类作为参数传入JCClassDecl.accept方法,该子类内部覆写visitVarDef(访问类节点)方法,该方法的注入参数即为JCVariableDecl节点对象,通过该对象的name值以及vartype值可获取到变量的名称以及类型。此外,通过JCVariableDecl的getAnnotations方法获取变量的注解列表的名称,便于通过约定好的注解名以及传入的参数、方便后续前端来判断变量是否是必须以及最大、最小值等,这样便可得到当前的数据结构模型文件的类以及类的数据结构定义。
步骤3、对当前的数据数据结构模型文件的路径进行字符串处理。具体可包括将路径中‘.’后面的内容去掉,然后将‘/’替换为‘.’,以经过该处理后得到的字符串作为key值,并将步骤1获取到的导入路径和导入变量的值、以及步骤2获取到的类的数据结构存入到缓存变量中,如此可以得到当前的数据结构模型文件对应的数据结构模型文件对象。
对于上述步骤1和步骤2,可以通过如下的例子进行说明。
设有一数据结构模型文件,名为Search.java,路径为cn/framework/dto/Search.java,内容为:
import cn.framework.dto.USER;
public class Search{
private String channelProductId;
private USER user;
对于上述Search.java这一数据结构模型文件,它的对外暴露类名为Search,其中含有2个变量:
1、名为channelProductId的变量属于String(字符串)这一数据类型;
2、名为user的变量属于USER这一数据类型,其中USER这一数据类型为自定义数据类型。
如图2所示,为本申请实施例提供的一种ast语法树的示意图,表示的是对上述Search.java这一数据结构模型文件应用JavaParse工具转化而来的JCCompilationUnit对象。
对于上述步骤3,可以通过如下的例子进行说明。
根据图2所示的JCCompilationUnit对象,对于上述Search.java这一数据结构模型文件,它的数据结构模型文件对象可以表示如下:
2、对于各接口定义文件的处理如下:
说明的是,由于本申请实施例对各接口定义文件中的任一个接口定义文件的处理方式均相同,故接下来将以对各接口定义文件中的一个接口定义文件进行处理为例,进行举例说明。
针对各接口定义文件中的任一个接口定义文件,该接口定义文件指示前端的一个接口,因此通过对该接口定义文件的解析,可以获取到该接口对应的对外暴露类。其中,可以通过下述方式得到接口定义文件指示的接口的对外暴露类:
在本申请的某些实施中,各接口包括前端向后端发送接口请求时所带数据的入参数据结构和后端接收到前端发送的接口请求时返回数据的出参数据结构;所述根据对所述后端代码中的各接口定义文件的解析,获取各接口分别对应的对外暴露类,包括:针对各接口定义文件中的任一接口定义文件,获取所述接口定义文件指示的接口的入参数据结构和出参数据结构分别对应的第一对外暴露类和第二对外暴露类。
前后端在通过发送接口进行数据交互的过程中,其中包括前端向后端发送接口请求时携带的数据,即入参,以及后端接收到前端发送的接口请求时返回的数据,即出参;因此前端的接口校验包括对入参和出参这两方面的校验,对入参的校验可以基于入参数据结构,对出参的校验可以基于出参数据结构。因此,对应到前端的接口在后端代码中的接口定义文件,本申请实施例可以对后端代码中的任一接口定义文件进行解析、转化为ast语法树,然后将需要用到的部分以该接口定义文件指示的接口的url作为key值、存储到一个临时变量中。对于对接口定义文件进行转化得到的ast语法树,本申请实施例可使用到的部分包含以下两项内容:
(1)、该接口入参的数据结构所对应的类的类名,即第一对外暴露类;
(2)、该接口出参的数据结构所对应的类的类名,即第二对外暴露类。
通过上述对接口文档中的各数据结构模型文件的处理,可以得到各数据结构模型文件对应的数据结构模型文件对象,以及对接口文档中的各接口定义文件的处理,可以得到各接口定义文件指示的接口的对外暴露类;在得到这两方面内容之后,本申请实施例可以生成一个接口的后端参数数据结构模型。其中,可以通过以下方式生成接口的后端参数数据结构模型:
首先,针对各接口中的任一接口,根据该接口的对外暴露类,从各数据结构模型文件对象中确定出与该接口的对外暴露类同名的数据结构模型文件对象;接着,可以根据所匹配出的数据结构模型文件,生成该接口的后端参数数据结构模型。其中,可以通过以下方式生成接口的后端参数数据结构模型:
在本申请的某些实施中,所述变量信息包括变量名称、变量类型和变量注解名;所述根据所述数据结构模型文件对象,生成所述接口的后端参数数据结构模型,包括:若所述接口的数据结构模型文件对象中包括至少一个变量类型为非自定义类型的第一变量,则将所述第一变量的变量信息作为所述接口在所述第一变量下的后端参数数据结构模型;若所述接口的数据结构模型文件对象中包括至少一个变量类型为自定义类型的第二变量,则将基于所述第二变量的导入路径获取到的、与所述第二变量同名的内容作为所述接口在所述第二变量下的后端参数数据结构模型。
例如,对一接口而言,通过将该接口的类名作为key值,可从各数据结构模型文件对象中获取到这个类的数据结构。不过,由于在所获取的数据结构中,一些自定义类型(如上述例子中的USER类型)的变量的数据结构是没有在当前的数据结构模型文件中解析出来的,因此需要做一个递归来解析该些自定义类型变量的数据结构,包括:
遍历类中变量数据结构对象,当发现有自定义类型变量时,可先检查这个数据类型的类是否在当前的数据结构模型文件对象中有定义;如果没有,则确定是由外部引入的,所以可在JCImport找到对应的其它数据结构模型文件对象类,然后将此类的数据结构对象以key值为children放入到其对应的自定义类型中(注意,在这里自定义的类型的类内部结构还可能也会有更下一级的自定义类型的变量,所以这里要一直以同样的逻辑往下寻找直到没有自定义类型的变量为止,将这些解析好的类的数据结构存储到缓存中,在获取下一个接口出参入参数据结构的过程中,若发现自定义类型的变量时,则优先检查缓存中是否有之前已解析好的同名自定义类型的变量,可避免重复解析),然后以该接口对应的url为key值存储起来。
最后,所生成的后端参数数据结构模型包含:
1、参数名;
2、参数类型;
3、参数是否必须;
4、参数值的最大长度和最小长度,无则为空;
5、参数的子结构(当参数为复杂数据类型时,如对象、数组以及一些自定义数据类型,需要通过递归得到其具体的子结构)。
例如,设接口A的入参在后端的数据结构模型的内容如下:
其中,首先对上述接口A的入参在后端的参数数据结构模型中涉及的一些名词作出说明:
url:接口A的url值。
reqFields:接口A的请求参数数据结构模型,每一个子元素即为请求参数所需变量,子元素的name为参数名,mustFlag表示此参数是否为必须项(O为必须项、N为非必须项),fieldType为参数值的数据类型。
因此,上述接口A的入参在后端的参数数据结构模型表示的含义如下:
接口A的入参包括2个子元素/参数,分别为“size”和“params”;其中:
对于“size”这一子元素/参数,该参数为必须项,且参数值的数据类型为数值类型;
对于“params”子元素/参数,该参数为必须项,且参数值的数据类型为自定义类型,并包括2个子参数,分别为“name”和“id”;其中,对于“name”这一子参数,该子参数为必须项,且参数值的数据类型为字符串,对于“id”这一子参数,该子参数为非必须项,且参数值的数据类型为数值类型。
通过上述方式,对于前端的一个接口,本申请实施例可以生成该接口的后端参数数据结构模型。由于所生成的数据结构模型仍然属于后端的数据类型,是无法被前端进行识别的。因此,本申请实施例可对接口的后端参数数据结构模型进行转换,转换为前端可以识别的表达。其中,可以通过以下方式对后端参数数据结构模型进行转换:
在本申请的某些实施中,所述对所述接口的后端参数数据结构模型进行前后端参数的转换,得到所述接口的前端参数数据结构模型,包括:针对所述接口的后端参数数据结构模型中的任一参数,若所述参数的参数值符合基本数据类型,则基于基本数据类型映射表进行转化,得到所述参数在前端的表达;若所述参数的参数值不符合所述基本数据类型,则基于自定义数据类型映射表进行转化,得到所述参数在前端的表达,从而得到所述接口的前端参数数据结构模型。
由于前后端代码在执行过程中,一方面是能够基于当前存在有的前后端进行转换的基本数据类型而进行的,同时为了满足不同业务需求,前后端的代码人员还可以提前商量好一些复杂的数据类型以及对应的转换方式。因此,在进行后端参数数据结构模型到前端参数数据结构模型的转换,可分如下两步:
1、对后端一些基本的数据类型,如char、int、byte等,可直接转化为前端对应的基本数据类型。比如,基本数据类型的映射表如下:
(1)char->string
(2)string->string
(3)boolean->boolean
(4)byte->number
(5)short->number
(6)double->number
(7)long->number
(8)float->number
(9)int->number
(10)integer->number
(11)bigDecimal->number
(12)bigInteger->number
(13)date->string
2、对一些后端自定义的数据类型进行转化的过程,相对来说会复杂一些,主要需要识别数组和对象,因此这里需要前端的开发人员去和后端的开发人员做一些基本约定。例如,在自定义数据类型为前端数组(array)时,其对应的申明方式可以为以下几种:
(1)List<ClassB>
(2)Array<ClassB>
(3)Collection<ClassB>
(4)ClassB[]
在对参数的数据类型进行了前后端的转换后,最后,还可转换一些后端对参数的注解(与后端约定好注解字段代表的含义即可):如当前参数是否必须、当前参数的值最小长度和最大长度是多少等内容。至此,可以得到接口的前端参数数据结构模型(具体可以参见下文)。
在上述步骤102的一个实施中,所述基于所述第一接口的前端参数数据结构模型对所述调用请求中的各参数进行校验,确定所述调用请求的正确性,包括:根据所述第一接口的前端参数数据结构模型,对所述调用请求中的各参数进行递归遍历;若确定存在第一参数不满足所述第一参数在所述第一接口的前端参数数据结构模型中的要求,则确定所述第一参数错误并在第一接口参数错误记录池中记录所述错误;在遍历结束后,对所述第一接口参数错误记录池中的各错误进行输出。
接着前述的例子,在得到接口的前端参数数据结构模型之后,前端代码在编译时可将上述得到的前端参数数据结构模型的json文件转化为符合es6模块引入的文件,并在前端项目中引入该json文件。那么,前端代码运行时在发送接口请求入参时,通过此接口的url值、可在上述转化的json文件中拿到对应的入参数据结构模型,并以此递归循环比对具体的请求入参数据是否正确。
例如,现有一对前文例子中的接口A的入参数据结构进行调用的请求,请求内容如下:
在发送接口A的时候,本申请实施例可从引入的json文件获取接口A的入参数据结构模型,其中,该入参数据结构模型的内容如下:
以下是对上述接口A的入参数据结构模型中涉及到的一些名词的说明:
name:为参数名;
mustFlag:此参数是否必须有(O为必须,N为非必须);
filedType:此参数的数据类型(包括string,number,boolen,object,array);
minSize:当参数数据类型为数字时表示其最小为多少,当参数数据类型为字符串时表示此字符串长度最小为多少,当参数数据类型为数组时,表示数组长度最小为多少;
maxSize:当参数数据类型为数字时表示其最大为多少,当参数数据类型为字符串时表示此字符串长度最大为多少,当参数数据类型为数组时,表示数组长度最大为多少;
children表示此参数的子集(引用类型数据如object,array会有子元素)的数据结构类型,其结构仍然是name、mustFlag、filedType、children、minSize、maxSize。
因此,可基于接口A的入参数据结构模型对请求调用中的各参数进行校验,其中如图3所示,为本申请实施例提供的一种接口校验的流程示意图,其中,对于“size”这一参数,由于其参数值“10”不符合数字最大值为8的要求,因此,可以将该错误记录到错误池中,另外对于“id”这一子参数,由于其参数值“test”属于字符串类型,并不符合数字类型,因此可以将该错误也记录到错误池中。当在本次校验完所有的参数后,可以将错误池的各错误进行输出,以减少测试及查错成本。
说明的是,对接口调用请求的出参进行校验可以参考上述对接口调用请求的入参进行校验的过程,不再赘述。
基于同样的构思,本申请实施例提供一种接口参数校验装置,如图4所示,为本申请实施例提供的一种接口参数校验装置的示意图,该装置包括前端参数数据结构模型获取单元401和判断单元402;
前端参数数据结构模型获取单元401,用于针对前端接收到的对第一接口的调用请求,从前后端转换配置中获取所述第一接口的前端参数数据结构模型;所述前后端转换配置中任一接口的前端参数数据结构模型是通过对后端代码中的各数据结构模型文件和所述后端代码中的各接口定义文件进行解析生成的、所述接口的后端参数数据结构模型进行转换得到的;
判断单元402,用于基于所述第一接口的前端参数数据结构模型对所述调用请求中的各参数进行校验,确定所述调用请求的正确性。
进一步的,对于该装置,前端参数数据结构模型获取单元401,具体用于:根据对后端代码中的各数据结构模型文件的解析,获取各数据结构模型文件分别对应的数据结构模型文件对象;任一数据结构模型文件对象包括对外暴露类;根据对所述后端代码中的各接口定义文件的解析,获取各接口分别对应的对外暴露类;针对各接口中的任一接口,根据所述接口的对外暴露类,从各数据结构模型文件对象中确定出与所述接口的对外暴露类同名的数据结构模型文件对象;根据所述数据结构模型文件对象,生成所述接口的后端参数数据结构模型;对所述接口的后端参数数据结构模型进行前后端参数的转换,得到所述接口的前端参数数据结构模型。
进一步的,对于该装置,还包括数据结构模型文件对象确定单元403;数据结构模型文件对象确定单元403,用于:针对各数据结构模型文件中的任一数据结构模型文件,通过javaparse工具建立所述数据结构模型文件的抽象语法树;所述抽象语法树包括JCImport节点和JCClassDecl节点;基于所述JCImport节点得到第一信息;所述第一信息包括各个变量的变量内容和导入路径;基于所述JCClassDecl节点得到第二信息;所述第二信息包括所述数据结构模型文件指示的对外暴露类和所述对外暴露类内部的各变量的变量信息;将所述第一信息和所述第二信息作为所述数据结构模型文件的数据结构模型文件对象。
进一步的,对于该装置,还包括后端参数数据结构模型生成单元404;所述变量信息包括变量名称、变量类型和变量注解名;后端参数数据结构模型生成单元404,用于:若所述接口的数据结构模型文件对象中包括至少一个变量类型为非自定义类型的第一变量,则将所述第一变量的变量信息作为所述接口在所述第一变量下的后端参数数据结构模型;若所述接口的数据结构模型文件对象中包括至少一个变量类型为自定义类型的第二变量,则将基于所述第二变量的导入路径获取到的、与所述第二变量同名的内容作为所述接口在所述第二变量下的后端参数数据结构模型。
进一步的,对于该装置,还包括接口对外暴露类获取单元405;各接口包括前端向后端发送接口请求时所带数据的入参数据结构和后端接收到前端发送的接口请求时返回数据的出参数据结构;接口对外暴露类获取单元405,用于:针对各接口定义文件中的任一接口定义文件,获取所述接口定义文件指示的接口的入参数据结构和出参数据结构分别对应的第一对外暴露类和第二对外暴露类。
进一步的,对于该装置,还包括前后端数据结构模型转换单元406;前后端数据结构模型转换单元406,用于:针对所述接口的后端参数数据结构模型中的任一参数,若所述参数的参数值符合基本数据类型,则基于基本数据类型映射表进行转化,得到所述参数在前端的表达;若所述参数的参数值不符合所述基本数据类型,则基于自定义数据类型映射表进行转化,得到所述参数在前端的表达,从而得到所述接口的前端参数数据结构模型。
进一步的,对于该装置,判断单元402,具体用于:根据所述第一接口的前端参数数据结构模型,对所述调用请求中的各参数进行递归遍历;若确定存在第一参数不满足所述第一参数在所述第一接口的前端参数数据结构模型中的要求,则确定所述第一参数错误并在第一接口参数错误记录池中记录所述错误;在遍历结束后,对所述第一接口参数错误记录池中的各错误进行输出。
本申请实施例还提供了一种计算设备,该计算设备具体可以为桌面计算机、便携式计算机、智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)等。该计算设备可以包括中央处理器(Center Processing Unit,CPU)、存储器、输入/输出设备等,输入设备可以包括键盘、鼠标、触摸屏等,输出设备可以包括显示设备,如液晶显示器(Liquid Crystal Display,LCD)、阴极射线管(Cathode Ray Tube,CRT)等。
存储器,可以包括只读存储器(ROM)和随机存取存储器(RAM),并向处理器提供存储器中存储的程序指令和数据。在本申请实施例中,存储器可以用于存储接口参数校验方法的程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序执行接口参数校验方法。
如图5所示,为本申请实施例提供的一种计算设备的示意图,该计算设备包括:
处理器501、存储器502、收发器503、总线接口504;其中,处理器501、存储器502与收发器503之间通过总线505连接;
所述处理器501,用于读取所述存储器502中的程序,执行上述接口参数校验方法;
处理器501可以是中央处理器(central processing unit,简称CPU),网络处理器(network processor,简称NP)或者CPU和NP的组合。还可以是硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,简称ASIC),可编程逻辑器件(programmable logic device,简称PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,简称CPLD),现场可编程逻辑门阵列(field-programmable gate array,简称FPGA),通用阵列逻辑(generic array logic,简称GAL)或其任意组合。
所述存储器502,用于存储一个或多个可执行程序,可以存储所述处理器501在执行操作时所使用的数据。
具体地,程序可以包括程序代码,程序代码包括计算机操作指令。存储器502可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,简称RAM);存储器502也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,简称HDD)或固态硬盘(solid-state drive,简称SSD);存储器502还可以包括上述种类的存储器的组合。
存储器502存储了如下的元素,可执行模块或者数据结构,或者它们的子集,或者它们的扩展集:
操作指令:包括各种操作指令,用于实现各种操作。
操作系统:包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
总线505可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
总线接口504可以为有线通信接入口,无线总线接口或其组合,其中,有线总线接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线总线接口可以为WLAN接口。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行接口参数校验方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种接口参数校验方法,其特征在于,包括:
针对前端接收到的对第一接口的调用请求,从前后端转换配置中获取所述第一接口的前端参数数据结构模型;所述前后端转换配置中任一接口的前端参数数据结构模型是通过对后端代码中的各数据结构模型文件和所述后端代码中的各接口定义文件进行解析生成的、所述接口的后端参数数据结构模型进行转换得到的;
基于所述第一接口的前端参数数据结构模型对所述调用请求中的各参数进行校验,确定所述调用请求的正确性。
2.如权利要求1所述的方法,其特征在于,
所述前后端转换配置中任一接口的前端参数数据结构模型是通过对后端代码中的各数据结构模型文件和所述后端代码中的各接口定义文件进行解析生成的、所述接口的后端参数数据结构模型进行转换得到的,包括:
根据对后端代码中的各数据结构模型文件的解析,获取各数据结构模型文件分别对应的数据结构模型文件对象;任一数据结构模型文件对象包括对外暴露类;
根据对所述后端代码中的各接口定义文件的解析,获取各接口分别对应的对外暴露类;
针对各接口中的任一接口,根据所述接口的对外暴露类,从各数据结构模型文件对象中确定出与所述接口的对外暴露类同名的数据结构模型文件对象;根据所述数据结构模型文件对象,生成所述接口的后端参数数据结构模型;对所述接口的后端参数数据结构模型进行前后端参数的转换,得到所述接口的前端参数数据结构模型。
3.如权利要求2所述的方法,其特征在于,
所述根据对后端代码中的各数据结构模型文件的解析,获取各数据结构模型文件分别对应的数据结构模型文件对象,包括:
针对各数据结构模型文件中的任一数据结构模型文件,通过javaparse工具建立所述数据结构模型文件的抽象语法树;所述抽象语法树包括JCImport节点和JCClassDecl节点;
基于所述JCImport节点得到第一信息;所述第一信息包括各个变量的变量内容和导入路径;
基于所述JCClassDecl节点得到第二信息;所述第二信息包括所述数据结构模型文件指示的对外暴露类和所述对外暴露类内部的各变量的变量信息;
将所述第一信息和所述第二信息作为所述数据结构模型文件的数据结构模型文件对象。
4.如权利要求3所述的方法,其特征在于,所述变量信息包括变量名称、变量类型和变量注解名;
所述根据所述数据结构模型文件对象,生成所述接口的后端参数数据结构模型,包括:
若所述接口的数据结构模型文件对象中包括至少一个变量类型为非自定义类型的第一变量,则将所述第一变量的变量信息作为所述接口在所述第一变量下的后端参数数据结构模型;
若所述接口的数据结构模型文件对象中包括至少一个变量类型为自定义类型的第二变量,则将基于所述第二变量的导入路径获取到的、与所述第二变量同名的内容作为所述接口在所述第二变量下的后端参数数据结构模型。
5.如权利要求2所述的方法,其特征在于,各接口包括前端向后端发送接口请求时所带数据的入参数据结构和后端接收到前端发送的接口请求时返回数据的出参数据结构;
所述根据对所述后端代码中的各接口定义文件的解析,获取各接口分别对应的对外暴露类,包括:
针对各接口定义文件中的任一接口定义文件,获取所述接口定义文件指示的接口的入参数据结构和出参数据结构分别对应的第一对外暴露类和第二对外暴露类。
6.如权利要求2所述的方法,其特征在于,
所述对所述接口的后端参数数据结构模型进行前后端参数的转换,得到所述接口的前端参数数据结构模型,包括:
针对所述接口的后端参数数据结构模型中的任一参数,若所述参数的参数值符合基本数据类型,则基于基本数据类型映射表进行转化,得到所述参数在前端的表达;
若所述参数的参数值不符合所述基本数据类型,则基于自定义数据类型映射表进行转化,得到所述参数在前端的表达,从而得到所述接口的前端参数数据结构模型。
7.如权利要求1至6任一项所述的方法,其特征在于,
所述基于所述第一接口的前端参数数据结构模型对所述调用请求中的各参数进行校验,确定所述调用请求的正确性,包括:
根据所述第一接口的前端参数数据结构模型,对所述调用请求中的各参数进行递归遍历;
若确定存在第一参数不满足所述第一参数在所述第一接口的前端参数数据结构模型中的要求,则确定所述第一参数错误并在第一接口参数错误记录池中记录所述错误;
在遍历结束后,对所述第一接口参数错误记录池中的各错误进行输出。
8.一种接口参数校验装置,其特征在于,包括:
前端参数数据结构模型获取单元,用于针对前端接收到的对第一接口的调用请求,从前后端转换配置中获取所述第一接口的前端参数数据结构模型;所述前后端转换配置中任一接口的前端参数数据结构模型是通过对后端代码中的各数据结构模型文件和所述后端代码中的各接口定义文件进行解析生成的、所述接口的后端参数数据结构模型进行转换得到的;
判断单元,用于基于所述第一接口的前端参数数据结构模型对所述调用请求中的各参数进行校验,确定所述调用请求的正确性。
9.一种计算机设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于调用所述存储器中存储的计算机程序,按照获得的程序执行如权利要求1-7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如权利要求1-7任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111463409.3A CN114116510A (zh) | 2021-12-03 | 2021-12-03 | 一种接口参数校验方法及装置 |
PCT/CN2022/100674 WO2023098043A1 (zh) | 2021-12-03 | 2022-06-23 | 一种接口参数校验方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111463409.3A CN114116510A (zh) | 2021-12-03 | 2021-12-03 | 一种接口参数校验方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114116510A true CN114116510A (zh) | 2022-03-01 |
Family
ID=80367042
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111463409.3A Pending CN114116510A (zh) | 2021-12-03 | 2021-12-03 | 一种接口参数校验方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114116510A (zh) |
WO (1) | WO2023098043A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023098043A1 (zh) * | 2021-12-03 | 2023-06-08 | 深圳前海微众银行股份有限公司 | 一种接口参数校验方法及装置 |
CN117573762A (zh) * | 2024-01-15 | 2024-02-20 | 杭州数云信息技术有限公司 | 数据连接平台的数据处理方法及装置、存储介质、服务器 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10262095B1 (en) * | 2017-09-28 | 2019-04-16 | Cadence Design Systems, Inc. | Conversion of real number modeling code to cycle-driven simulation interface code for circuit design in digital mixed signal environments |
CN111064725A (zh) * | 2019-12-12 | 2020-04-24 | 广州鲁邦通物联网科技有限公司 | 一种代码零入侵接口校验方法和校验装置 |
CN112395138B (zh) * | 2020-11-20 | 2024-04-02 | 北京华胜天成科技股份有限公司 | 一种校验参数的方法和装置 |
CN113157256B (zh) * | 2021-03-25 | 2024-03-19 | 北京达佳互联信息技术有限公司 | 接口代码的生成方法、装置、电子设备、存储介质及产品 |
CN114116510A (zh) * | 2021-12-03 | 2022-03-01 | 深圳前海微众银行股份有限公司 | 一种接口参数校验方法及装置 |
-
2021
- 2021-12-03 CN CN202111463409.3A patent/CN114116510A/zh active Pending
-
2022
- 2022-06-23 WO PCT/CN2022/100674 patent/WO2023098043A1/zh unknown
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023098043A1 (zh) * | 2021-12-03 | 2023-06-08 | 深圳前海微众银行股份有限公司 | 一种接口参数校验方法及装置 |
CN117573762A (zh) * | 2024-01-15 | 2024-02-20 | 杭州数云信息技术有限公司 | 数据连接平台的数据处理方法及装置、存储介质、服务器 |
CN117573762B (zh) * | 2024-01-15 | 2024-04-16 | 杭州数云信息技术有限公司 | 数据连接平台的数据处理方法及装置、存储介质、服务器 |
Also Published As
Publication number | Publication date |
---|---|
WO2023098043A1 (zh) | 2023-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111428462B (zh) | 通讯协议模板构建的方法及终端设备 | |
US20160350208A1 (en) | Generating test scripts through application integration | |
CN111488174A (zh) | 应用程序接口文档的生成方法、装置、计算机设备及介质 | |
Peng et al. | Static inference meets deep learning: a hybrid type inference approach for python | |
CN114116510A (zh) | 一种接口参数校验方法及装置 | |
CN110633200A (zh) | 用于测试智能合约的方法和设备 | |
CN112035443B (zh) | 基于Linux平台的大数据执行方法、系统、设备及存储介质 | |
US20190138433A1 (en) | Evaluation of library test suites using mutation testing | |
CN113504900A (zh) | 一种编程语言转换方法和装置 | |
CN114579452A (zh) | 接口影响检测方法及相关设备 | |
CN111782526A (zh) | 一种接口测试方法、装置、电子设备及存储介质 | |
Sun et al. | Clover: Closed-Loop Verifiable Code Generation | |
CN113238739A (zh) | 一种插件开发和数据获取方法、装置、电子设备及介质 | |
CN112988163A (zh) | 编程语言智能适配方法、装置、电子设备和介质 | |
Thu et al. | Model driven development of mobile applications using drools knowledge-based rule | |
US11556460B2 (en) | Test case generation for software development using machine learning | |
CN113238940B (zh) | 一种接口测试结果的比对方法、装置、设备和存储介质 | |
US11144287B2 (en) | Compile time validation of programming code | |
CN115022312A (zh) | 多智能合约引擎的实现方法、装置、电子设备及存储介质 | |
CN111399842A (zh) | 一种代码编译方法及装置 | |
Hu et al. | Elix: Path-selective taint analysis for extracting mobile app links | |
CN114510414B (zh) | 一种基于符号执行对智能合约功能属性进行形式化验证的方法及系统 | |
US11036613B1 (en) | Regression analysis for software development and management using machine learning | |
CN117709255B (zh) | 间接访问寄存器的测试方法、装置、设备及介质 | |
WO2024037168A1 (zh) | 建立模型的方法、装置以及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |