接口数据生成方法、装置、计算设备及可读存储介质与流程

未命名 09-11 阅读:251 评论:0


1.本发明涉及计算机领域,尤其涉及一种接口数据生成方法、装置、计算设备及可读存储介质。


背景技术:

2.前后端分离目前已成为互联网项目开发的业界标准使用方式,其为大型分布式架构、弹性计算架构、微服务架构、多端化服务打下了坚实的基础。然而,在前后端分离的情况下,技术人员在进行软件开发或测试时经常遇到下述问题:需求宣讲完毕后,前端工程师需等待后端接口完成后才能开始工作;测试过程中,接口返回的数据状态不足以覆盖所有情况,而从接口端又不方便修改数据。
3.基于此,目前常用的解决方案是:前端工程师通过引入mockjs,先拦截ajax请求,return返回自己定义好的接口数据,接口实现完毕后再把mock开关关闭。
4.然而,该方案存在一定的弊端。首先,需要前端手动编写代码来自己造数据,显然这会增加前端的工作量。其次,如果后端在实现接口过程中对双方约定好的字段(即属性)有所调整的话,前端并不能动态跟随改变,这就会增加变化后还需要重新维护数据对象的成本。最后,对项目本身而言会增加额外的代码侵入,而且还需要引入mockjs。
5.为此,亟需一种接口数据生成方法以解决上述技术问题。


技术实现要素:

6.为此,本发明提供了一种接口数据生成方法、装置、计算设备及可读存储介质,以力图解决或者至少缓解上面存在的问题。
7.根据本发明的一个方面,提供一种接口数据生成方法,在计算设备中执行,该计算设备中存储有预先配置的各扩展规则和基础规则,各扩展规则至少由业务属性描述和业务数据集构成,各基础规则为一通用属性的标识,业务属性为与业务相关的属性,通用属性为与业务无关的属性,该方法包括:响应于调用任一接口的请求,解析该接口的接口特征,接口特征至少包括接口的响应体中各属性的标识;检测是否存在与解析得到的接口特征相匹配的扩展规则;若存在相匹配的扩展规则,则从匹配到的每一扩展规则的业务数据集中选取业务数据作为该扩展规则中所描述的业务属性的数据;若接口的响应体中还存在未返回数据的属性,则依据其标识检测是否存在与接口特征相匹配的基础规则;若存在相匹配的基础规则,则基于匹配到的每一基础规则,生成与该基础规则相匹配的通用属性的数据;若当前接口的响应体中仍存在未返回数据的属性,则针对剩余的各属性,基于其数据类型生成该属性的数据;将获得的所有属性的数据组装成该接口的接口数据,返回给接口调用方。
8.可选地,在根据本发明的接口数据生成方法中,检测是否存在与解析得到的接口特征相匹配的扩展规则,包括:依据接口的响应体中各属性的标识,检测每一扩展规则所描述的业务属性是否为响应体中的属性;若一扩展规则所描述的业务属性为响应体中的属性,则判定该扩展规则为与解析得到的接口特征相匹配的一条扩展规则。
9.可选地,在根据本发明的接口数据生成方法中,接口特征还包括接口的请求路径,各扩展规则还包括请求路径筛选条件,以及检测是否存在与解析得到的接口特征相匹配的扩展规则,包括:针对每一扩展规则,检测解析得到接口的请求路径是否符合该扩展规则的请求路径筛选条件;若符合,则依据接口的响应体中各属性的标识,检测该扩展规则所描述的业务属性是否为响应体中的属性;若是,则判定该扩展规则为与解析得到的接口特征相匹配的一条扩展规则。
10.可选地,在根据本发明的接口数据生成方法中,从匹配到的每一扩展规则的业务数据集中选取业务数据作为该扩展规则中所描述的业务属性的数据,包括:采用数据块随机算法,从匹配到的每一扩展规则的业务数据集中选取业务数据作为该扩展规则中所描述的业务属性的数据。
11.可选地,在根据本发明的接口数据生成方法中,在从匹配到的每一扩展规则的业务数据集中选取业务数据作为该扩展规则中所描述的业务属性的数据之后,还包括:通过将接口的响应体中各属性的标识与已获取到数据的各业务属性的标识进行比对,检测接口的响应体中是否还存在未返回数据的属性。
12.可选地,在根据本发明的接口数据生成方法中,检测是否存在与解析得到的接口特征相匹配的基础规则,包括:在进行扩展规则匹配之后,针对接口的响应体中还未返回数据的每一属性,将其标识与各基础规则进行比对;若一基础规则与该属性的标识比对成功,则判定该基础规则为与解析得到的接口特征相匹配的一条基础规则。
13.可选地,在根据本发明的接口数据生成方法中,计算设备中还存储有预先配置的各类型规则,各类型规则为属性的数据类型,以及针对剩余的各属性,基于其数据类型生成该属性的数据,包括:在进行扩展规则和基础规则匹配之后,针对剩余的各属性,查找与该属性的数据类型相匹配的类型规则,并基于该类型规则生成该属性的数据。
14.可选地,在根据本发明的接口数据生成方法中,基础规则包括姓名、日期、时间、地址、邮箱、颜色、手机号、图片以及身份证号,类型规则包括字符串、整型以及浮点型。
15.可选地,在根据本发明的接口数据生成方法中,与汽车业务相关的业务属性包括汽车品牌、车系、车型以及经销商,与手机相关的业务属性包括手机品牌以及手机型号。
16.根据本发明的又一个方面,提供一种接口数据生成装置,驻留在计算设备中,该计算设备中存储有预先配置的各扩展规则和基础规则,各扩展规则至少由业务属性描述和业务数据集构成,各基础规则为一通用属性的标识,业务属性为与业务相关的属性,通用属性为与业务无关的属性,该装置包括:接口特征解析器,适于响应于调用任一接口的请求,解析该接口的接口特征,接口特征至少包括该接口的响应体中各属性的标识;扩展规则匹配器,适于检测是否存在与解析得到的接口特征相匹配的扩展规则;业务数据选取器,适于若存在相匹配的扩展规则,则从匹配到的每一扩展规则的业务数据集中选取业务数据作为该扩展规则中所描述的业务属性的数据;基础规则匹配器,适于若接口的响应体中还存在未返回数据的属性,则依据其标识检测是否存在与解析得到的接口特征相匹配的基础规则;通用数据生成器,适于若存在相匹配的基础规则,则基于匹配到的每一基础规则,生成与该基础规则相匹配的通用属性的数据;剩余数据生成器,适于若当前接口的响应体中仍存在未返回数据的属性,则针对剩余的各属性,基于其数据类型生成该属性的数据;接口数据组装器,适于将获得的所有属性的数据组装成该接口的接口数据,返回给接口调用方。
17.根据本发明的又一个方面,提供一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,程序指令被配置为适于由至少一个处理器执行,程序指令包括用于执行根据本发明的接口数据生成方法的指令。
18.根据本发明的又一个方面,提供一种存储有程序指令的可读存储介质,当程序指令被计算设备读取并执行时,使得计算设备执行根据本发明的接口数据生成方法。
19.根据本发明的接口数据生成方法,在接收到调用任一接口的请求后,先自动解析该接口的接口特征,然后将解析得到的接口特征与预先配置的各规则进行匹配,最后根据匹配到的规则生成该接口的接口数据,返回给接口调用方。可见,本发明提供了一种自动生成接口数据的方法,只要接口定义完成即可执行,如此前端工程师便无需等待接口开发完成后再开始工作,从而可以省去前端等待接口的实现时间。而且,通过本发明,前端便无需再依赖于单接口手动mock或配置来获取接口数据,从而可以提高效率。因此,本发明能实现前后端更高效的并行开发。另外,本发明生成的接口数据更安全,更符合实际业务需求。
附图说明
20.为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
21.图1示出了根据本发明一个实施例的计算设备100的结构框图;
22.图2示出了根据本发明一个实施例的接口数据生成方法200的流程图;
23.图3示出了根据本发明一个实施例的接口数据生成装置300的结构框图。
具体实施方式
24.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
25.图1示出了计算设备100的物理组件(即,硬件)的框图。在基本配置中,计算设备100包括至少一个处理单元102和系统存储器104。根据一个方面,取决于计算设备的配置和类型,处理单元102可以实现为处理器。系统存储器104包括但不限于易失性存储(例如,随机存取存储器)、非易失性存储(例如,只读存储器)、闪速存储器、或者这样的存储器的任何组合。根据一个方面,系统存储器104中包括操作系统105和程序模块106,程序模块106中包括接口数据生成装置300,接口数据生成装置300被配置为执行本发明的接口数据生成方法200。
26.根据一个方面,操作系统105例如适合于控制计算设备100的操作。此外,示例结合图形库、其他操作系统、或任何其他应用程序而被实践,并且不限于任何特定的应用或系统。在图1中通过在虚线108内的那些组件示出了该基本配置。根据一个方面,计算设备100具有额外的特征或功能。例如,根据一个方面,计算设备100包括额外的数据存储设备(可移
动的和/或不可移动的),例如磁盘、光盘、或者磁带。这样额外的存储在图1中是由可移动存储109和不可移动存储110示出的。
27.如在上文中所陈述的,根据一个方面,在系统存储器104中存储有程序模块。根据一个方面,程序模块可以包括一个或多个应用程序,本发明不限制应用程序的类型,例如应用程序可以包括:电子邮件和联系人应用程序、文字处理应用程序、电子表格应用程序、数据库应用程序、幻灯片展示应用程序、绘画或计算机辅助应用程序、网络浏览器应用程序等。
28.根据一个方面,可以在包括分立电子元件的电路、包含逻辑门的封装或集成的电子芯片、利用微处理器的电路、或者在包含电子元件或微处理器的单个芯片上实践示例。例如,可以经由其中在图1中所示出的每个或许多组件可以集成在单个集成电路上的片上系统(soc)来实践示例。根据一个方面,这样的soc设备可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元、以及各种应用功能,其全部作为单个集成电路而被集成(或“烧”)到芯片基底上。当经由soc进行操作时,可以经由在单个集成电路(芯片)上与计算设备100的其他组件集成的专用逻辑来对在本文中所描述的功能进行操作。还可以使用能够执行逻辑操作(例如and、or和not)的其他技术来实践本发明的实施例,所述其他技术包括但不限于机械、光学、流体、和量子技术。另外,可以在通用计算机内或在任何其他任何电路或系统中实践本发明的实施例。
29.根据一个方面,计算设备100还可以具有一个或多个输入设备112,例如键盘、鼠标、笔、语音输入设备、触摸输入设备等。还可以包括输出设备114,例如显示器、扬声器、打印机等。前述设备是示例并且也可以使用其他设备。计算设备100可以包括允许与其他计算设备118进行通信的一个或多个通信连接116。合适的通信连接116的示例包括但不限于:rf发射机、接收机和/或收发机电路;通用串行总线(usb)、并行和/或串行端口。
30.如在本文中所使用的术语计算机可读介质包括计算机存储介质。计算机存储介质可以包括以任何用于存储信息(例如,计算机可读指示、数据结构、或程序模块)的方法或技术来实现的易失性的和非易失性的、可移动的和不可移动的介质。系统存储器104、可移动存储109、和不可移动存储110都是计算机存储介质的示例(即,存储器存储)。计算机存储介质可以包括随机存取存储器(ram)、只读存储器(rom)、电可擦只读存储器(eeprom)、闪速存储器或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光存储、盒式磁带、磁带、磁盘存储器或其他磁存储设备、或者可用于存储信息并且可以由计算设备100访问的任何其他制品。根据一个方面,任何这样的计算机存储介质都可以是计算设备100的一部分。计算机存储介质不包括载波或其他经传播的数据信号。
31.根据一个方面,通信介质是由计算机可读指令、数据结构、程序模块、或者经调制的数据信号(例如,载波或其他传输机制)中的其他数据实施的,并且包括任何信息传递介质。根据一个方面,术语“经调制的数据信号”描述了具有一个或多个特征集或者以将信息编码在信号中的方式改变的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接之类的有线介质,以及诸如声学、射频(rf)、红外线的、以及其他无线介质之类的无线介质。
32.图2示出了根据本发明一个实施例的接口数据生成方法,方法200适于在计算设备(例如图1所示的计算设备100)中执行,该计算设备中存储有预先配置的各扩展规则和基础
规则。
33.根据本发明的一个实施例,各基础规则可以为一通用属性的标识,进一步地,可以为一通用属性的名称。其中,通用属性是指与业务无关的属性,因此,在一些实施例中,基础规则可以为姓名、日期、时间、地址、邮箱、颜色、手机号、图片以及身份证号等,这些属性均与具体业务无关。
34.而扩展规则,根据本发明的一个实施例,其至少由业务属性描述和业务数据集构成。即,每一扩展规则至少由对业务属性的相关描述和由多个业务数据所构成的业务数据集两部分构成,具体地,各扩展规则可以表示为{响应体中业务属性的描述}=[{业务数据1},{业务数据2}

]。进一步地,在一些实施例中,业务属性描述部分中可以包含业务属性的名称或类型,即在业务属性描述部分中限定业务属性的名称或类型。其中,关于业务属性,在此说明一下,业务属性是指与业务相关的属性(即具体业务中特有的属性),如,在汽车行业(即汽车业务)中,业务属性可以包括汽车品牌、车系、车型、经销商等,在手机行业中,业务属性可以包括手机品牌、手机型号等,在酒类垂直电商行业中,业务属性则可以包括酒的类别(如白酒、啤酒、葡萄酒)、酒的品牌(如茅台、五粮液、汾酒)、酒的产地等。
[0035]
如图2所示,本发明的接口数据生成方法200始于210。在210中,响应于调用任一接口的请求,解析该接口的接口特征。根据本发明的一个实施例,调用接口的请求可以包括接口的接口定义,如此在接收到调用任一接口的请求时,则可根据该接口的接口定义来解析该接口的接口特征。其中,接口特征至少包括接口的响应体中各属性(或者说各字段)的标识,进一步地,各属性的标识可以为各属性的名称。也就是说,当接收到调用任一接口的请求时,则至少解析包括该接口的响应体中各属性的名称的接口特征。
[0036]
随后,进入220,检测是否存在与解析得到的接口特征相匹配的扩展规则。其中,可以依据解析得到的接口的响应体中各属性的标识,检测每一扩展规则所描述的业务属性是否为该接口的响应体中的属性。若一扩展规则所描述的业务属性为解析得到的响应体中的一属性,则判定该扩展规则为与此接口特征相匹配的一条扩展规则。
[0037]
具体地,在一些实施例中,可以将每一扩展规则的业务属性描述部分中所涉及的属性的名称与解析得到的接口的响应体中各属性的名称进行比对,若某一扩展规则的业务属性描述部分中涉及的属性的名称与接口的响应体中某一属性的名称相同,则判定该扩展规则为与解析得到的接口特征相匹配的一条扩展规则。否则,判定该扩展规则与解析得到的接口特征不匹配。
[0038]
另外,在一些实施例中,接口特征还可以包括接口的请求路径,即在接收到任一接口的调用请求后,不仅解析该接口的响应体中各属性的名称,还解析该接口的请求路径,而各扩展规则还可以包括请求路径筛选条件,如可以表示为{请求url过滤条件表达式}:{响应体中业务属性的描述}=[{业务数据1},{业务数据2}

]。如此,在检测是否存在与解析得到的接口特征相匹配的扩展规则时,则可通过如下方式进行检测。
[0039]
首先,针对每一扩展规则,检测解析得到的接口的请求路径是否符合该扩展规则的请求路径筛选条件,若不符合,则判定该扩展规则与解析得到的接口特征不匹配,若符合,则依据解析得到的接口的响应体中各属性的标识,继续检测该扩展规则所描述的业务属性是否为该接口的响应体中的一属性,若是,则判定该扩展规则为与解析得到的接口特征相匹配的一条扩展规则,若不是,则判定该扩展规则与解析得到的接口特征不匹配。
[0040]
为了更好的理解上述的匹配过程,下面给出一示例。其中,一扩展规则描述语句为:%/getdealers%:*.dealername=['北京中汽雷日专营店','北京首汽腾达','德驿通程'],%/getdeal ers%:*.deal er id=['1001','1002','1003'],其表示的含义是——对所有请求路径中包含“/getdealers”的请求做拦截,将返回体(即响应体)中属性名为dealername的字段,设置三组业务数据。另外,解析得到的接口的请求路径链接为http://xxxmock.com/getdealers,并且解析得到的接口的响应体中包含dealername属性名。
[0041]
显然,请求路径http://xxxmock.com/getdealers符合该扩展规则的请求路径的筛选条件。并且,扩展规则描述语句%/getdealers%:*.dealername=['北京中汽雷日专营店','北京首汽腾达','德驿通程']中描述的业务属性dealername为接口的响应体中的一属性,则判定扩展规则描述语句%/getdealers%:*.dealername=['北京中汽雷日专营店','北京首汽腾达','德驿通程']为与此接口特征相匹配的一条扩展规则。
[0042]
至此,便完成了是否存在与解析得到的接口特征相匹配的扩展规则的检测。其中,如果存在与解析得到的接口特征相匹配的扩展规则,则进入230,从匹配到的每一扩展规则的业务数据集中选取业务数据作为该扩展规则中所描述的业务属性的数据。具体地,可以从匹配到的每一扩展规则的业务数据集中随机选取一业务数据作为响应体中与该扩展规则相匹配的业务属性(即该扩展规则中所描述的业务属性)的业务数据。例如,继续以上述给出的示例为例,在判定扩展规则描述语句%/getdealers%:*.dealername=['北京中汽雷日专营店','北京首汽腾达','德驿通程']为与解析得到的接口特征相匹配的一条扩展规则后,则可随机从'北京中汽雷日专营店'、'北京首汽腾达'、'德驿通程'三个业务数据(即经销商)中选取一业务数据作为dealername属性的业务数据。其中,如果选取'北京首汽腾达',则返回体示例性如下:
[0043]
{
[0044]
"dealer id":1002,
[0045]
"dealername":"北京首汽腾达"
[0046]
}
[0047]
另外,为了最大程度的保证所生成的数据与数据之间的依赖、层级关系,在匹配到与解析得到的接口特征相匹配的扩展规则之后,根据本发明的一个实施例,可以采用数据块随机算法,来从匹配到的各扩展规则的业务数据集中选取业务数据作为该扩展规则中所描述的业务属性的数据。具体地,若每个扩展规则中配置的业务数据的数量相等(即每个扩展规则的业务数据集中业务数据的个数相等),则当从匹配到的各扩展规则的业务数据集中选取业务数据时,选取相同序数的业务数据,若部分扩展规则中配置的业务数据的数量是另一部分扩展规则中配置的业务数据的数量的倍数时,则当从匹配到的各扩展规则的业务数据集中选取业务数据时,如果从业务数据数量最少的扩展规则中选取的是序数为m的业务数据,则当从业务数据数量多的扩展规则中选取业务数据时,若该扩展规则中的业务数据的数量是业务数据数量最少的扩展规则中业务数据量的n倍,则从第[1+n(m-1)]个业务数据至第mn个业务数据中选取业务数据,其中,m和n均为正整数。
[0048]
下面作一示例,扩展规则1为业务属性brandname设置了'奔驰'、'宝马'、'奥迪'三个业务数据,扩展规则2为业务属性seriesname设置了'奔驰e级'、'宝马5系'、'奥迪a6l'三个业务数据。可见,扩展规则1和扩展规则2设置的业务数据的个数均为3,如此,当从扩展规
则1和2中选取业务数据时,则选取相同序数的业务数据,如,若从扩展规则1中选取序数为2的业务数据'宝马',则从扩展规则2中也选取序数为2的业务数据,即'宝马5系',可见,这样选取出的品牌(即brandname)和车系(即seriesname)则是相对应的。上述给出的是业务数据数量相同的示例。在此,对于呈倍数关系的业务数据量也进行一下说明。假如扩展规则1为业务属性brandname配置的仍是三个业务数据,而扩展规则2为业务属性seriesname配置的是六个业务数据,即扩展规则2中车系数据的数量是扩展规则1中的品牌数据的数量的2倍,则当从扩展规则1和2中选取业务数据时,如果从扩展规则1中选取序数为1的品牌数据,那么从扩展规则2中挑选车系数据时,则从序数为1和序数为2的车系数据中随机选取一个,如此则可最大程度的保证所生成数据之间的依赖关系。
[0049]
至此,便完成了扩展规则的匹配,并从匹配到的扩展规则中获取到了响应体中若干个属性的业务数据。接着,将解析得到的接口的响应体中各属性的标识与已获取到数据的各业务属性的标识进行比对,以检测接口的响应体中是否还存在未返回数据的属性。
[0050]
其中,对于解析得到的接口的响应体中的每一属性,如果均存在一获取到数据的业务属性的标识与其标识相同,则判定该接口的响应体中的各属性均已返回数据,随后将获得的所有数据组装成该接口的接口数据,并返回给接口调用方(即进入270)。否则,即解析得到的若干属性的标识未在已获取到数据的各业务属性的标识中查找到,则判定该接口的响应体中还存在未返回数据的属性,随后进入240。
[0051]
在240中,依据还未返回数据的属性的标识,检测是否存在与解析得到的接口特征相匹配的基础规则。具体地,可以针对接口的响应体中还未返回数据的每一属性,将其标识与各基础规则进行比对,若一基础规则与该属性的标识比对成功,则判定该基础规则为与解析得到的接口特征相匹配的一条基础规则。其中,上述已指出各基础规则可以为一通用属性的名称,属性的标识可以为属性的名称,因此,在一些实施例中,具体可以为,针对接口的响应体中还未返回数据的每一属性,将其名称与各基础规则进行比对,若一基础规则中记录的通用属性的名称与该属性的名称相同,则判定该基础规则为与解析得到的接口特征相匹配的一条基础规则。
[0052]
为了更好理解基础规则的匹配,下面给出一示例。其中,基础规则包括姓名、日期、时间、地址、邮箱、颜色、手机号、图片以及身份证号,解析得到的接口的响应体中包括四个属性,其名称分别为image、email、telephone以及cardid。显然,在将image、email、telephone以及cardid分别与各基础规则进行比对后,图片会与image比对成功,邮箱会与email比对成功、手机号会与telephone比对成功、身份证号会与cardid比对成功,如此,则判定基础规则图片、邮箱、手机号以及身份证号均为与解析得到的接口特征相匹配的一条基础规则。
[0053]
其中,在判定存在与解析得到的接口特征相匹配的基础规则后,则进入250,基于匹配到的每一基础规则,生成与该基础规则相匹配的通用属性的数据。根据本发明的一个实施例,每一基础规则可以对应有其默认的生成方式,如此在匹配到任一基础规则后,则可根据该基础规则的默认生成方式通过mock服务自动生成一数据,并将其作为与此基础规则相匹配的通用属性的数据。例如,基础规则手机号,对应的是生成一11位的手机号码,那么对于属性telephone,在其与基础规则手机号匹配成功后,则会自动随机生成一个11位的手机号码,作为属性telephone的数据。
[0054]
下面以上述给出的示例为例,在图片与image比对成功,邮箱与email比对成功、手机号与telephone比对成功、身份证号与cardid比对成功后,根据各基础规则的默认生成方式,自动通过mock服务为属性image生成一图片url链接数据、为属性email生成一邮箱地址、为属性telephone生成一手机号码以及为属性cardid生成一身份证号码,具体如下:
[0055]
{
[0056]
"image":"http://dummyimage.com/160x600",
[0057]
"email":"s.graiy@rolwqt.mw",
[0058]
"telphone":"13136021743",
[0059]
"cardid":"131028198789878988"
[0060]
}
[0061]
至此,便完成了扩展规则以及基础规则的匹配。接着,将解析得到的接口的响应体中各属性的标识与当前已获取到数据的各属性的标识进行比对,以检测接口的响应体中是否仍存在未返回数据的属性,关于具体的检测过程,请参考上述相关描述,在此不再赘述。其中,如果检测结果为接口的响应体中的各属性均已返回数据,则随之将获得的所有数据组成该接口的接口数据,返回给接口调用方(即进入270)。否则,即接口的响应体中仍存在未返回数据的属性,则进入260。
[0062]
在260中,针对剩余的各属性(即当前接口的响应体中仍未返回数据的各属性),基于其数据类型生成该属性的数据。其中,根据本发明的一个实施例,接口特征还可以包括接口的响应体中各属性的数据类型,即在接收到任一接口的调用请求后,除解析该接口的请求路径,响应体中各属性的名称之外,还解析接口的响应体中各属性的数据类型。进一步地,在一些实施例中,除预先配置扩展规则和基础规则之外,还配置类型规则,并将配置好的各类型规则存储在计算设备中。其中,各类型规则可以为属性的数据类型,如字符串、整型浮点型等等,因此类型规则可以包括字符串、整型以及浮点型等。
[0063]
如此,在针对剩余的每一属性,基于其数据类型生成该属性的数据时,则可以先查找与该属性的数据类型相匹配的类型规则。其中,上述已知出各类型规则为一种数据类型,因此该步骤即为查找为当前属性的数据类型的类型规则。在查找到该类型规则后,则基于该类型规则生成该属性的数据。同样,每一类型规则可以对应有其默认的生成方式,如此在查找到一匹配的类型规则后,则可根据该类型规则的默认生成方式通过mock服务自动生成一数据,并将其作为与此类型规则相匹配的属性的数据。例如,类型规则字符串,对应的是生成一字符串,那么对于属性xxxx,在其与类型规则字符串匹配成功后,则会自动随机生成一字符串,作为属性xxxx的数据。
[0064]
至此,便得到了接口的响应体中各属性的数据,随后进入270,将获得的所有属性的数据组装成该接口的接口数据,返回给接口调用方。具体地,可以按照接口的响应体结构(可根据该接口的接口定义解析得到),来将获得的各属性的数据组装成该接口的接口数据。
[0065]
上述则是本发明的接口数据生成方法。在此再说明两点,其一,如果未检测到与解析得到的接口特征相匹配的任一扩展规则,则直接执行检测是否存在与解析得到的接口特征相匹配的基础规则的步骤。其二,如果未检测到与解析得到的接口特征相匹配的任一基础规则,则直接执行针对剩余的各属性,基于其数据类型生成该属性的数据的步骤。
[0066]
本发明还提供了一种接口数据生成装置。图3示出了根据本发明一个实施例的接口数据生成装置300的结构框图,适于驻留在计算设备100中。其中,该计算设备100中存储有预先配置的各扩展规则和基础规则,各扩展规则至少由业务属性描述和业务数据集构成,各基础规则为一通用属性的标识,业务属性为与业务相关的属性,通用属性为与业务无关的属性。如图3所示,该接口数据生成装置300包括接口特征解析器310、扩展规则匹配器320、业务数据选取器330、基础规则匹配器340、通用数据生成器350、剩余数据生成器360以及接口数据组装器370。
[0067]
接口特征解析器310,适于响应于调用任一接口的请求,解析该接口的接口特征,接口特征至少包括接口的响应体中各属性的标识。
[0068]
扩展规则匹配器320,适于检测是否存在与解析得到的接口特征相匹配的扩展规则。
[0069]
业务数据选取器330,适于若存在相匹配的扩展规则,则从匹配到的每一扩展规则的业务数据集中选取业务数据作为该扩展规则中所描述的业务属性的数据。
[0070]
基础规则匹配器340,适于若接口的响应体中还存在未返回数据的属性,则依据其标识检测是否存在与解析得到的接口特征相匹配的基础规则。
[0071]
通用数据生成器350,适于若存在相匹配的基础规则,则基于匹配到的每一基础规则,生成与该基础规则相匹配的通用属性的数据。
[0072]
剩余数据生成器360,适于若当前接口的响应体中仍存在未返回数据的属性,则针对剩余的各属性,基于其数据类型生成该属性的数据。
[0073]
接口数据组装器370,适于将获得的所有属性的数据组装成接口的接口数据,返回给接口调用方。
[0074]
根据本发明的接口数据生成方法,在接收到调用任一接口的请求后,先自动解析该接口的接口特征,然后将解析得到的接口特征与预先配置的各规则进行匹配,最后根据匹配到的规则生成该接口的接口数据,返回给接口调用方。可见,本发明提供了一种自动生成接口数据的方法,其中,只要接口定义完成即可执行,如此前端工程师便无需等待接口开发完成后再开始工作,从而可以省去前端等待接口的实现时间。而且,通过本发明,前端便无需再依赖于单接口手动mock或配置来获取接口数据,从而可以提高效率。因此,本发明能实现前后端更高效的并行开发。另外,本发明生成的接口数据更符合实际业务需求。
[0075]
a8、如a1-a7中任一项所述的方法,其中,基础规则包括姓名、日期、时间、地址、邮箱、颜色、手机号、图片以及身份证号,类型规则包括字符串、整型以及浮点型。a9、如a1-a8中任一项所述的方法,其中,与汽车业务相关的业务属性包括汽车品牌、车系、车型以及经销商,与手机相关的业务属性包括手机品牌以及手机型号。
[0076]
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、u盘、软盘、cd-rom或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
[0077]
在程序代码在可编程计算机上执行的情况下,计算设备一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至
少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的接口数据生成方法。
[0078]
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
[0079]
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0080]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0081]
应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。
[0082]
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
[0083]
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0084]
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。
[0085]
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
[0086]
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来
描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
[0087]
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

技术特征:
1.一种接口数据生成方法,适于在计算设备中执行,所述计算设备中存储有预先配置的各扩展规则和基础规则,所述各扩展规则至少由业务属性描述和业务数据集构成,所述各基础规则为一通用属性的标识,所述业务属性为与业务相关的属性,所述通用属性为与业务无关的属性,所述方法包括:响应于调用任一接口的请求,解析所述接口的接口特征,所述接口特征至少包括所述接口的响应体中各属性的标识;检测是否存在与所述接口特征相匹配的扩展规则;若存在相匹配的扩展规则,则从匹配到的每一扩展规则的业务数据集中选取业务数据作为该扩展规则中所描述的业务属性的数据;若所述接口的响应体中还存在未返回数据的属性,则依据其标识检测是否存在与所述接口特征相匹配的基础规则;若存在相匹配的基础规则,则基于匹配到的每一基础规则,生成与该基础规则相匹配的通用属性的数据;若当前接口的响应体中仍存在未返回数据的属性,则针对剩余的各属性,基于其数据类型生成该属性的数据;将获得的所有属性的数据组装成所述接口的接口数据,返回给接口调用方。2.如权利要求1所述的方法,其中,所述检测是否存在与所述接口特征相匹配的扩展规则,包括:依据所述接口的响应体中各属性的标识,检测每一扩展规则所描述的业务属性是否为所述响应体中的属性;若一扩展规则所描述的业务属性为所述响应体中的属性,则判定该扩展规则为与所述接口特征相匹配的一条扩展规则。3.如权利要求1或2所述的方法,其中,所述接口特征还包括所述接口的请求路径,所述各扩展规则还包括请求路径筛选条件,以及所述检测是否存在与所述接口特征相匹配的扩展规则,包括:针对每一扩展规则,检测所述接口的请求路径是否符合该扩展规则的请求路径筛选条件;若符合,则依据所述接口的响应体中各属性的标识,检测该扩展规则所描述的业务属性是否为所述响应体中的属性;若是,则判定该扩展规则为与所述接口特征相匹配的一条扩展规则。4.如权利要求1-3中任一项所述的方法,其中,从匹配到的每一扩展规则的业务数据集中选取业务数据作为该扩展规则中所描述的业务属性的数据,包括:采用数据块随机算法,从匹配到的每一扩展规则的业务数据集中选取业务数据作为该扩展规则中所描述的业务属性的数据。5.如权利要求1-4中任一项所述的方法,其中,在从匹配到的每一扩展规则的业务数据集中选取业务数据作为该扩展规则中所描述的业务属性的数据之后,还包括:通过将所述接口的响应体中各属性的标识与已获取到数据的各业务属性的标识进行比对,检测所述接口的响应体中是否还存在未返回数据的属性。6.如权利要求1-5中任一项所述的方法,其中,检测是否存在与所述接口特征相匹配的
基础规则,包括:在进行扩展规则匹配之后,针对所述接口的响应体中还未返回数据的每一属性,将其标识与所述各基础规则进行比对;若一基础规则与该属性的标识比对成功,则判定该基础规则为与所述接口特征相匹配的一条基础规则。7.如权利要求1-6中任一项所述的方法,其中,所述计算设备中还存储有预先配置的各类型规则,所述各类型规则为属性的数据类型,以及针对剩余的各属性,基于其数据类型生成该属性的数据,包括:在进行扩展规则和基础规则匹配之后,针对剩余的各属性,查找与该属性的数据类型相匹配的类型规则,并基于该类型规则生成该属性的数据。8.一种接口数据生成装置,适于驻留在计算设备中,所述计算设备中存储有预先配置的各扩展规则和基础规则,所述各扩展规则至少由业务属性描述和业务数据集构成,所述各基础规则为一通用属性的标识,所述业务属性为与业务相关的属性,所述通用属性为与业务无关的属性,所述装置包括:接口特征解析器,适于响应于调用任一接口的请求,解析所述接口的接口特征,所述接口特征至少包括所述接口的响应体中各属性的标识;扩展规则匹配器,适于检测是否存在与所述接口特征相匹配的扩展规则;业务数据选取器,适于若存在相匹配的扩展规则,则从匹配到的每一扩展规则的业务数据集中选取业务数据作为该扩展规则中所描述的业务属性的数据;基础规则匹配器,适于若所述接口的响应体中还存在未返回数据的属性,则依据其标识检测是否存在与所述接口特征相匹配的基础规则;通用数据生成器,适于若存在相匹配的基础规则,则基于匹配到的每一基础规则,生成与该基础规则相匹配的通用属性的数据;剩余数据生成器,适于若当前接口的响应体中仍存在未返回数据的属性,则针对剩余的各属性,基于其数据类型生成该属性的数据;接口数据组装器,适于将获得的所有属性的数据组装成所述接口的接口数据,返回给接口调用方。9.一种计算设备,包括:至少一个处理器;以及存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-7中任一项所述方法的指令。10.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-7中任一项所述方法。

技术总结
本发明公开了一种接口数据生成方法、装置、计算设备及可读存储介质。该方法包括:响应于调用任一接口的请求,解析该接口的接口特征;检测是否存在与接口特征匹配的扩展规则;若存在,则从匹配到的每一扩展规则的业务数据集中选取业务数据作为该扩展规则中描述的业务属性的数据;若接口的响应体中还存在未返回数据的属性,则依据其标识检测是否存在与接口特征匹配的基础规则;若存在,则基于匹配到的每一基础规则,生成与该基础规则匹配的通用属性的数据;若当前接口的响应体中仍存在未返回数据的属性,则针对剩余的各属性,基于其数据类型生成该属性的数据;将获得的各数据组装成接口数据,返回给调用方。本发明能实现前后端更高效的并行开发。更高效的并行开发。更高效的并行开发。


技术研发人员:张华
受保护的技术使用者:天津车之家软件有限公司
技术研发日:2023.06.15
技术公布日:2023/9/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐