接口数据模拟方法、装置、存储介质和电子设备与流程

文档序号:17640158发布日期:2019-05-11 00:37阅读:184来源:国知局
接口数据模拟方法、装置、存储介质和电子设备与流程

本公开涉及网络开发领域,具体地,涉及一种接口数据模拟方法、装置、存储介质和电子设备。



背景技术:

在如今的网络开发(例如,javaweb开发)中,开发者越来越倾向于前后端分离的开发方式。具体地,后端(亦称服务端)只提供业务逻辑的处理,并对外提供服务接口。而前端通过调用服务端提供的接口获取数据,并通过页面向用户展现。在很多情况下,也可通过业务系统对外提供的接口,完成多个系统之间的集成。基于上述开发场景,大多数情况都是先定义服务端对外提供的接口数据(输入参数和输出参数)的格式,并基于约定好的格式生成对应的接口文档,再由各业务系统根据接口文档独立完成自身功能的开发。这就导致在上述开发场景中,通常只有在服务端接口开发完成后,调用方才能对其进行调试,并且在接口调试过程中,会产生大量的接口连接的问题。

相关技术中,为了避免单一服务端或业务系统开发进度对整体开发进度的影响,通常需要为开发环境配置具备mock功能的系统,再通过该系统创建的模拟接口来模拟实际接口的调用以及数据的接收和输出。如此,即使实际接口的功能并未开发完成,调用方依然可以根据模拟接口输出的数据独立完成自己的功能。再在实际接口的功能开发完成后,将模拟接口切换为实际接口,进而完成整体的联调工作。但是,在实际操作中,mock系统仍然存在系统搭建步骤繁琐,维护模拟接口工作量大以及在模拟接口和实际接口进行切换时容易出现地址错误等问题,影响网络开发的整体效率。



技术实现要素:

为克服相关技术中存在的问题,本公开的目的是提供一种接口数据模拟方法、装置、存储介质和电子设备。

为了实现上述目的,根据本公开实施例的第一方面,提供一种接口数据模拟方法,所述方法包括:

根据调用方向目标接口发送的输入参数,发起对所述目标接口的调用请求,所述目标接口与具备目标业务功能的业务系统连接;

在发起所述调用请求后,在预设框架下通过面向切面编程aop技术拦截所述目标接口上附带的模拟mock注解,以获取目标数据,所述目标数据为通过所述mock注解生成的所述目标业务功能对应的业务数据的模拟数据;

通过所述目标接口将所述目标数据返回至所述调用方。

可选的,在所述根据调用方发送的接口入参,触发对目标接口的调用请求之前,所述方法还包括:

根据所述目标业务功能,为所述目标接口添加所述mock注解。

可选的,所述预设框架为spring模型-视图-控制器springmvc框架,所述在发起所述调用请求后,在预设框架下通过面向切面编程aop技术拦截所述目标接口上附带的模拟mock注解,以获取目标数据,包括:

在发起所述调用请求后,检测所述目标接口上是否附带所述mock注解;

当检测到所述目标接口上附带所述mock注解时,通过所述springmvc框架的aop技术拦截所述mock注解;

通过所述springmvc框架的aop技术解析所述mock注解,以获取所述模拟数据,作为所述目标数据。

可选的,所述根据调用方向目标接口发送的输入参数,发起对所述目标接口的调用请求,包括:

接收所述输入参数;

确定所述输入参数是否具备调用所述目标接口所需的参数属性,所述参数属性包括:参数名、参数类型和请求方式;

当确定所述输入参数具备调用所述目标接口所需的参数属性时,发起所述调用请求。

根据本公开实施例的第二方面,提供一种接口数据模拟装置,所述装置包括:

请求发起模块,用于根据调用方向目标接口发送的输入参数,发起对所述目标接口的调用请求,所述目标接口与具备目标业务功能的业务系统连接;

注解拦截模块,用于在发起所述调用请求后,在预设框架下通过面向切面编程aop技术拦截所述目标接口上附带的模拟mock注解,以获取目标数据,所述目标数据为通过所述mock注解生成的所述目标业务功能对应的业务数据的模拟数据;

数据返回模块,用于通过所述目标接口将所述目标数据返回至所述调用方。

可选的,所述装置还包括:

注解添加模块,用于根据所述目标业务功能,为所述目标接口添加所述mock注解。

可选的,所述预设框架为spring模型-视图-控制器springmvc框架,所述注解拦截模块,包括:

注解检测子模块,用于在发起所述调用请求后,检测所述目标接口上是否附带所述mock注解;

注解拦截子模块,用于当检测到所述目标接口上附带所述mock注解时,通过所述springmvc框架的aop技术拦截所述mock注解;

数据获取子模块,用于通过所述springmvc框架的aop技术解析所述mock注解,以获取所述模拟数据,作为所述目标数据。

可选的,所述请求发起模块,包括:

参数接收子模块,用于接收所述输入参数;

参数检测子模块,确定所述输入参数是否具备调用所述目标接口所需的参数属性,所述参数属性包括:参数名、参数类型和请求方式;

请求发起子模块,用于当确定所述输入参数具备调用所述目标接口所需的参数属性时,发起所述调用请求。

根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本公开实施例第一方面提供的接口数据模拟方法的步骤。

根据本公开实施例的第四方面,提供一种电子设备,包括:

存储器,其上存储有计算机程序;

处理器,用于执行所述存储器中的所述计算机程序,以实现本公开实施例第一方面提供的接口数据模拟方法的步骤。

通过上述技术方案,本公开能够根据调用方向目标接口发送的输入参数,发起对该目标接口的调用请求,该目标接口与具备目标业务功能的业务系统连接;在发起该调用请求后,在预设框架下通过面向切面编程aop技术拦截该目标接口上附带的模拟mock注解,以获取目标数据,该目标数据为通过该mock注解生成的该目标业务功能对应的业务数据的模拟数据;通过该目标接口将该目标数据返回至该调用方。能够根据接口功能直接对接口返回的业务数据进行模拟和输出,在降低单一接口开发进度对整体开发进度的影响的同时,避免对接口本身进行模拟的步骤,减少维护模拟接口所需的工作量,提高整体开发效率。

本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本公开的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本公开,但并不构成对本公开的限制。在附图中:

图1是根据一示例性实施例示出的一种接口数据模拟方法的流程图;

图2是根据图1所示实施例示出的另一种接口数据模拟方法的流程图;

图3是根据图2所示实施例示出的一种注解拦截方法的流程图;

图4是根据图2所示实施例示出的一种调用请求发起方法的流程图;

图5是根据一示例性实施例示出的一种接口数据模拟装置的框图;

图6是根据图5所示实施例示出的另一种接口数据模拟装置的框图;

图7是根据图6所示实施例示出的一种注解拦截模块的框图;

图8是根据图6所示实施例示出的一种请求发起模块的框图;

图9是根据一示例性实施例示出的一种电子设备的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

图1是根据一示例性实施例示出的一种接口数据模拟方法的流程图,如图1所示,该方法包括:

步骤101,根据调用方向目标接口发送的输入参数,发起对该目标接口的调用请求。

其中,该目标接口与具备目标业务功能的业务系统连接。

以该目标业务功能为查询用户信息为例,此时,该目标接口为以用户id作为输入参数并且以该用户id对应的用户信息为输出参数的接口。在调用方向该目标接口输入一个用户id后,需要对本次输入的该用户id的参数名、参数类型和请求方式进行检测,并在该用户id满足该目标接口定义的参数属性时,发起调用请求。需要说明的是,该业务系统为网络开发项目的一部分,该网络开发项目为多个业务系统的集成。并且,此处设定该业务系统此时并未完成开发,即无法通过该目标接口的调用以及参数的输入和输出实现该目标业务功能。

步骤102,在发起该调用请求后,在预设框架下通过面向切面编程aop技术拦截该目标接口上附带的模拟mock注解,以获取目标数据。

其中,该目标数据为通过该mock(模拟)注解生成的该目标业务功能对应的业务数据的模拟数据。该预设框架可以为springmvc(model-view-controller,模型-视图-控制器)框架。上述的输入参数和该目标数据的数据格式均为json(javascriptobjectnotation,javascript对象简谱)格式。该mock注解可以直接支持json格式字符串。该springmvc框架自身能够提供aop(aspectorientedprogramming,面向切面编程)技术,利用该aop技术可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性。在本公开实施例中,该aop技术可以根据代码功能对代码进行分片拦截。

依然以该目标业务功能为查询用户信息为例,附带mock注解的目标接口可以表示为:

其中,“publicmap<string,object>getuser(stringuserid)”为该目标接口的参数属性定义,“returnnull”的位置即为业务系统开发完成后与该目标接口进行连接的位置(在本公开实施例中,将接口的返回值定义为“returnnull”旨在避免未完成的业务系统对注解拦截过程造成的不良影响)。另外,“@mock("{\"code\":\"0\",\"name\":\"张三\",\"mobile\":\"18611112222\"}")”为上述mock注解。可以理解的是,对该mock注解的检测和拦截实际为对上述的“@mock()”字符的检测,而“@mock()”字符的括号中的内容即为将以json格式输出的业务数据。

另外,根据该注解生成的json格式的目标数据为:

其中的用户编号、用户姓名和电话号码等用户信息即为输入参数“用户id”所对应的输出参数。可以理解的是,这些输出参数并不是由接口输出的,而是根据该目标接口上附带的mock注解模拟出来的。

步骤103,通过该目标接口将该目标数据返回至该调用方。

综上所述,本公开能够根据调用方向目标接口发送的输入参数,发起对该目标接口的调用请求,该目标接口与具备目标业务功能的业务系统连接;在发起该调用请求后,在预设框架下通过面向切面编程aop技术拦截该目标接口上附带的模拟mock注解,以获取目标数据,该目标数据为通过该mock注解生成的该目标业务功能对应的业务数据的模拟数据;通过该目标接口将该目标数据返回至该调用方。能够根据接口功能直接对接口返回的业务数据进行模拟和输出,在降低单一接口开发进度对整体开发进度的影响的同时,避免对接口本身进行模拟的步骤,减少维护模拟接口所需的工作量,提高整体开发效率。

图2是根据图1所示实施例示出的另一种接口数据模拟方法的流程图,如图2所示,在步骤101之前,该方法还可以包括:

步骤104,根据该目标业务功能,为该目标接口添加该mock注解。

示例地,在通过步骤101-103对目标接口输出的业务数据进行模拟之前,需要为所有业务系统还没有开发完成的接口添加mock注解。所添加的mock注解需要以接口对应的业务功能为依据,并保证模拟出的数据的数据格式与业务系统输出的数据格式一致。

图3是根据图2所示实施例示出的一种注解拦截方法的流程图,如图3所示,上述步骤102可以包括:

步骤1021,在发起该调用请求后,检测该目标接口上是否附带该mock注解。

示例地,当检测到该目标接口上附带该mock注解时,可以继续进行步骤1022和1023,以获取接口返回的该目标数据;当检测到该目标接口上未附带该mock注解时,可以通过该目标接口对应的业务系统,根据该输入参数生成实际的业务数据,并通过该目标接口返回该实际的业务数据。实际上,在本公开实施例中,每个业务系统未开发完成的接口都会被添加mock注解,而业务系统未开发完成的接口的输出参数通常被定义为空值。因此,针对于业务系统未开发完成的接口,当检测到该目标接口上未附带该mock注解时,此处返回的实际的业务数据为空值。

步骤1022,当检测到该目标接口上附带该mock注解时,通过该springmvc框架的aop技术拦截该mock注解。

步骤1023,通过该springmvc框架的aop技术解析该mock注解,以获取该模拟数据,作为该目标数据。

图4是根据图2所示实施例示出的一种调用请求发起方法的流程图,如图4所示,上述步骤101可以包括:

步骤1011,接收该输入参数。

步骤1012,确定该输入参数是否具备调用该目标接口所需的参数属性。

其中,该参数属性包括:参数名、参数类型和请求方式。

步骤1013,当确定该输入参数具备调用该目标接口所需的参数属性时,发起该调用请求。

示例地,当接口为与已开发完成的业务系统连接的正常接口时,原本的参数输入目标接口的过程中实际上已经包含对输入参数的参数属性进行检测的功能,但是,上述的目标数据并不一定是通过该目标接口直接输出的,而可能是根据mock注解直接模拟生成的(即并未通过接口的参数属性校验),因此,在接收到该输入参数时,需要对输入参数的参数属性进行检测,以确保该输入参数为与该目标接口匹配的输入参数。

综上所述,本公开能够根据调用方向目标接口发送的输入参数,发起对该目标接口的调用请求,该目标接口与具备目标业务功能的业务系统连接;在发起该调用请求后,在预设框架下通过面向切面编程aop技术拦截该目标接口上附带的模拟mock注解,以获取目标数据,该目标数据为通过该mock注解生成的该目标业务功能对应的业务数据的模拟数据;通过该目标接口将该目标数据返回至该调用方。能够根据接口功能直接对接口返回的业务数据进行模拟和输出,在降低单一接口开发进度对整体开发进度的影响的同时,避免对接口本身进行模拟的步骤,减少维护模拟接口所需的工作量,提高整体开发效率。

图5是根据一示例性实施例示出的一种接口数据模拟装置的框图,如图5所示,该装置500包括:

请求发起模块510,用于根据调用方向目标接口发送的输入参数,发起对该目标接口的调用请求,该目标接口与具备目标业务功能的业务系统连接;

注解拦截模块520,用于在发起该调用请求后,在预设框架下通过面向切面编程aop技术拦截该目标接口上附带的模拟mock注解,以获取目标数据,该目标数据为通过该mock注解生成的该目标业务功能对应的业务数据的模拟数据;

数据返回模块530,用于通过该目标接口将该目标数据返回至该调用方。

图6是根据图5所示实施例示出的另一种接口数据模拟装置的框图,如图6所示,该装置500还包括:

注解添加模块540,用于根据该目标业务功能,为该目标接口添加该mock注解。

图7是根据图6所示实施例示出的一种注解拦截模块的框图,如图7所示,该预设框架为spring模型-视图-控制器springmvc框架,该注解拦截模块520,包括:

注解检测子模块521,用于在发起该调用请求后,检测该目标接口上是否附带该mock注解;

注解拦截子模块522,用于当检测到该目标接口上附带该mock注解时,通过该springmvc框架的aop技术拦截该mock注解;

数据获取子模块523,用于通过该springmvc框架的aop技术解析该mock注解,以获取该模拟数据,作为该目标数据。

图8是根据图6所示实施例示出的一种请求发起模块的框图,如图8所示,

该请求发起模块,包括:

参数接收子模块,用于接收该输入参数;

参数检测子模块,确定该输入参数是否具备调用该目标接口所需的参数属性,该参数属性包括:参数名、参数类型和请求方式;

请求发起子模块,用于当确定该输入参数具备调用该目标接口所需的参数属性时,发起该调用请求。

综上所述,本公开能够根据调用方向目标接口发送的输入参数,发起对该目标接口的调用请求,该目标接口与具备目标业务功能的业务系统连接;在发起该调用请求后,在预设框架下通过面向切面编程aop技术拦截该目标接口上附带的模拟mock注解,以获取目标数据,该目标数据为通过该mock注解生成的该目标业务功能对应的业务数据的模拟数据;通过该目标接口将该目标数据返回至该调用方。能够根据接口功能直接对接口返回的业务数据进行模拟和输出,在降低单一接口开发进度对整体开发进度的影响的同时,避免对接口本身进行模拟的步骤,减少维护模拟接口所需的工作量,提高整体开发效率。

关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图9是根据一示例性实施例示出的一种电子设备900的框图。如图9所示,该电子设备900可以包括:处理器901,存储器902,多媒体组件903,输入/输出(i/o)接口904,以及通信组件905。

其中,处理器901用于控制该电子设备900的整体操作,以完成上述的接口数据模拟方法中的全部或部分步骤。存储器902用于存储各种类型的数据以支持在该电子设备900的操作,这些数据例如可以包括用于在该电子设备900上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器902可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom),可编程只读存储器(programmableread-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。多媒体组件903可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器902或通过通信组件905发送。音频组件还包括至少一个扬声器,用于输出音频信号。i/o接口904为处理器901和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件905用于该电子设备900与其他设备之间进行有线或无线通信。无线通信,例如wi-fi,蓝牙,近场通信(nearfieldcommunication,简称nfc),2g、3g或4g,或它们中的一种或几种的组合,因此相应的该通信组件905可以包括:wi-fi模块,蓝牙模块,nfc模块。

在一示例性实施例中,电子设备900可以被一个或多个应用专用集成电路(applicationspecificintegratedcircuit,简称asic)、数字信号处理器(digitalsignalprocessor,简称dsp)、数字信号处理设备(digitalsignalprocessingdevice,简称dspd)、可编程逻辑器件(programmablelogicdevice,简称pld)、现场可编程门阵列(fieldprogrammablegatearray,简称fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的接口数据模拟方法。

在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器902,上述程序指令可由电子设备900的处理器901执行以完成上述的接口数据模拟方法。

以上结合附图详细描述了本公开的优选实施方式,但是,本公开并不限于上述实施方式中的具体细节,在本公开的技术构思范围内,本领域技术人员在考虑说明书及实践本公开后,容易想到本公开的其它实施方案,均属于本公开的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。同时本公开的各种不同的实施方式之间也可以进行任意组合,只要其不违背本公开的思想,其同样应当视为本公开所公开的内容。本公开并不局限于上面已经描述出的精确结构,本公开的范围仅由所附的权利要求来限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1