CN111831277A - 虚拟数据生成方法、装置、设备及计算机可读存储介质 - Google Patents
虚拟数据生成方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN111831277A CN111831277A CN202010991899.3A CN202010991899A CN111831277A CN 111831277 A CN111831277 A CN 111831277A CN 202010991899 A CN202010991899 A CN 202010991899A CN 111831277 A CN111831277 A CN 111831277A
- Authority
- CN
- China
- Prior art keywords
- data
- field
- annotation
- application program
- interface
- 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.)
- Granted
Links
Images
Classifications
-
- 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/35—Creation or generation of source code model driven
-
- 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/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请提供了一种虚拟数据生成方法、装置、设备及计算机可读存储介质,涉及云技术领域。方法包括:接收前端对应用程序接口的调用请求;获取应用程序接口的注释数据;注释数据包括应用程序接口的至少一个注释字段;根据每一注释字段和预设的配置数据,确定每一注释字段对应的实例化数据;根据每一注释字段对应的实例化数据,生成应用程序接口的虚拟数据;向前端发送携带虚拟数据的调用响应;调用响应用于模拟应用程序接口对调用请求的响应。通过本申请提供的虚拟数据生成方法,云服务器可以生成应用程序接口的虚拟数据,并提升虚拟数据的生成效率和虚拟数据的真实性。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种虚拟数据生成方法、装置、设备及计算机可读存储介质。
背景技术
随着计算机技术的发展,对计算机程序的需求也越来越多,相应地,计算机程序的开发过程也越来越专业化。例如,对于应用程序的开发过程,往往采用前端和后端分离且并行开发的模式,以提高开发效率。
在前端后端并行开发的过程中,对前端的开发过程往往需要调用后端的应用程序接口,以得到需要的数据。但是,由于开发进度无法同步,经常出现前端需要的应用程序接口还未准备好,进而影响开发进度。为了解决上述问题,传统技术会在前端需要一个特定数据时,直接通过编写特定数据的定义代码的方式为前端提供该特定数据,此方法效率较低,且无法保证该特定数据的真实性。
发明内容
本申请实施例提供一种虚拟数据生成方法、装置、设备及计算机可读存储介质,能够提升虚拟数据的生成效率,提升虚拟数据的真实性。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种虚拟数据生成方法,包括:接收前端对应用程序接口的调用请求;获取应用程序接口的注释数据;注释数据包括应用程序接口的至少一个注释字段;根据每一注释字段和预设的配置数据,确定每一注释字段对应的实例化数据;配置数据用于确定每一注释字段对应的实例化数据;根据每一注释字段对应的实例化数据,生成应用程序接口的虚拟数据;虚拟数据包括每一注释字段对应的实例化数据;向前端发送携带虚拟数据的调用响应;调用响应用于模拟应用程序接口对调用请求的响应。
本申请实施例提供一种虚拟数据生成装置,所述装置包括:接收模块,用于接收前端对应用程序接口的调用请求;获取模块,用于获取应用程序接口的注释数据;注释数据包括应用程序接口的至少一个注释字段;确定模块,用于根据每一注释字段和预设的配置数据,确定每一注释字段对应的实例化数据;生成模块,用于根据每一注释字段对应的实例化数据,生成应用程序接口的虚拟数据;发送模块,用于向前端发送携带虚拟数据的调用响应;调用响应用于模拟应用程序接口对调用请求的响应。
本申请实施例提供一种虚拟数据生成设备,包括:存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的虚拟数据生成方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的虚拟数据生成方法。
本申请实施例具有以下有益效果:
本申请实施例提供的虚拟数据生成方法,相比于传统技术中通过由开发人员为每一应用程序接口构建对应的虚拟数据的方法,可以快速生成与调用请求对应的虚拟数据,可以提高虚拟数据的构建效率;由于根据该应用程序接口对应的注释信息和预设的配置数据生成该虚拟数据,可以使得该虚拟数据更加真实,提高了虚拟数据的真实性,进而可以避免前端开发过程中因虚拟数据格式错误等原因造成的编译错误问题,提升开发效率。
附图说明
图1是本申请实施例提供的虚拟数据生成系统的一个可选的架构示意图;
图2是本申请实施例提供的虚拟数据生成设备的结构示意图;
图3是本申请实施例提供的虚拟数据生成方法的一个可选的流程示意图;
图4是本申请实施例提供的虚拟数据生成方法的一个可选的流程示意图;
图5A是本申请实施例提供的虚拟数据生成方法的一个可选的流程示意图;
图5B是本申请实施例提供的一个可选的应用程序接口文档的展示效果图;
图6是本申请实施例提供的虚拟数据生成方法的一个可选的流程示意图;
图7是本申请实施例提供的虚拟数据生成方法的一个可选的流程示意图;
图8是本申请实施例提供的虚拟数据生成方法的一个可选的流程示意图;
图9是本申请实施例提供的一个可选的应用程序接口文档展示界面示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使在本实施例中描述的本申请实施例能够以除了在在本实施例中图示或描述的以外的顺序实施。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
(1)前端:即网站前台部分,运行在终端设备(如个人电脑,智能手机等)的浏览器上展现给用户浏览的网页。随着互联网技术的发展,HTML5,CSS3,前端框架的应用,跨平台响应式网页设计能够适应各种屏幕分辨率,合适的动效设计,给用户带来极高的用户体验。
(2)API(Application Programming Interface):应用程序接口,是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。用来提供应用程序与开发人员基于某软件或硬件得以访问的一组例程,而又无需访问源码,或理解内部工作机制的细节。
(3)mock(虚拟)数据:又称虚拟后台数据,是一种通过模拟的方式生成应用程序接口需要返回的数据。例如,对于一个接口A返回的数据需要依赖于另一个接口B,但该接口B还未开发完全时候这里会需要用到为接口B构建虚拟数据,来模拟该接口B需要返回的数据。
对于构建虚拟数据,存在以下几种相关技术:(1)在前端需要调用该应用程序接口,以得到该应用程序接口的反馈数据的情况下,直接在前端开发过程中添加该虚拟数据的定义代码,以模拟该反馈数据。也就是说,在正常情况下,调用一个API接口后会通过代码编写反馈数据的接收步骤,由于该API接口未开发成功,则直接在前端代码中添加一个虚拟数据的定义代码,通过定义的方式将该虚拟数据模拟为反馈数据;(2)开发人员去查询每一应用程序接口的注释文档,为每一应用程序接口预先设定一个固定的虚拟数据,在接收到针对应用程序接口的虚拟数据获取请求后,反馈该固定的虚拟数据。
对于上述相关技术,存在以下问题:(1)在前端开发中通过定义的方式构建虚拟数据,当前端需要发布使用时,需要清除之前添加的对虚拟数据的定义代码,导致代码需要反复修改,不仅虚拟数据的生成效率较低,而且会影响前端开发进度;(2)为每一应用程序接口设置一个固定的虚拟数据,耗费人力,而且设置固定的虚拟数据缺乏真实性。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
参见图1,图1是本申请实施例提供的虚拟数据生成系统100的一个可选的架构示意图,为实现支撑一个虚拟数据生成应用,终端(示例性示出了终端400-1和终端400-2)通过网络300连接服务器200,网络300可以是广域网或者局域网,又或者是二者的组合。图1还示出了服务器200可以为服务器集群,该服务器集群包括服务器200-1至200-3,同样地,服务器200-1至200-3可以是实体机器,也可以是利用虚拟化技术(如容器技术及虚拟机技术等)构建的虚拟机器,本申请实施例对此不做限定,当然,在本实施例中也可使用单个服务器来进行服务的提供。
在本申请的一些实施例中,终端通过图形界面(示例性示出了图形界面410-1和图形界面410-2)接收用户对目标服务的选择操作,该目标服务需要调用应用程序接口以实现该目标服务。该终端会向服务器200发送对于该应用程序接口的调用请求,该调用请求用于指示该服务器200根据每一注释字段和预设的配置数据,确定每一注释字段对应的实例化数据;根据每一注释字段对应的实例化数据,生成应用程序接口的虚拟数据;并向终端发送携带虚拟数据的调用响应。终端在接收到该服务器200发送的调用响应后,会解析该调用响应,并得到该调用响应携带的虚拟数据,利用该虚拟数据实现该目标服务。例如,在目标服务为信息查询服务的情况下,该虚拟数据为服务器生成的查询结果,终端可以通过图形界面(示例性示出了图形界面410-1和图形界面410-2)展示该查询结果。
本申请实施例可以借助于云技术(Cloud Technology)实现,云技术是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、以及应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,例如,教育系统的门户网站。
作为示例,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、以及智能手表等,但并不局限于此。终端以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
参见图2,图2是本申请实施例提供的虚拟数据生成设备500的结构示意图,图2所示的虚拟数据生成设备500包括:至少一个处理器510、存储器550、至少一个网络接口520和用户接口530。虚拟数据生成设备500中的各个组件通过总线系统540耦合在一起。可理解,总线系统540用于实现这些组件之间的连接通信。总线系统540除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统540。
处理器510可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口530包括使得能够呈现媒体内容的一个或多个输出装置531,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口530还包括一个或多个输入装置532,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器550包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器550旨在包括任意适合类型的存储器。存储器550可选地包括在物理位置上远离处理器510的一个或多个存储设备。
在本申请的一些实施例中,存储器550能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统551,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块552,用于经由一个或多个(有线或无线)网络接口520到达其他计算设备,示例性的网络接口520包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
显示模块553,用于经由一个或多个与用户接口530相关联的输出装置531(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块554,用于对一个或多个来自一个或多个输入装置532之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在本申请的一些实施例中,本申请实施例提供的虚拟数据生成装置可以采用软硬件结合的方式实现,作为示例,本申请实施例提供的虚拟数据生成装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的虚拟数据生成方法。
在本申请的一些实施例中,本申请实施例提供的虚拟数据生成装置可以采用软件方式实现,图2示出了存储在存储器550中的虚拟数据生成装置555,其可以是程序和插件等形式的软件,包括以下软件模块:接收模块5551、获取模块5552、确定模块5553、生成模块5554和发送模块5555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。
将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的虚拟数据生成方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
将结合本申请实施例提供的服务器的示例性应用和实施,在本申请实施例中,将以服务器为执行主体说明本申请实施例提供的虚拟数据生成方法。
参见图3,图3是本申请实施例提供的虚拟数据生成方法的一个可选的流程示意图,将结合图3示出的步骤进行说明。
在步骤301中,接收前端对应用程序接口的调用请求。
在本申请的一些实施例中,该调用请求中携带了需要调用的应用程序接口的接口标识。服务器在接收到前端发送的调用请求后,会解析该调用请求,获取该应用程序接口的接口标识,通过该接口标识可以确定需要调用的应用程序接口。在一种实现方式中,服务器中预存各应用程序接口的开发状态,该开发状态包括以完成开发过程和未完成开发过程,在该接口标识对应的应用程序接口的开发状态为完成开发过程的情况下,可以直接将该调用请求发送至该应用程序接口,并获取该应用程序接口反馈的输出数据,将该输出数据发送至前端;在该接口标识对应的应用程序接口的开发状态为未完成开发过程的情况下,需要执行步骤302至步骤305以得到与该应用程序接口输出的真实反馈数据相似的虚拟数据。
在步骤302中,获取应用程序接口的注释数据;注释数据包括应用程序接口的至少一个注释字段。
在本申请的一些实施例中,该应用程序接口的注释数据可以预先存储在服务器中,在接收到携带该接口标识的调用请求,且需要生成该接口标识对应的虚拟数据的情况下,可以通过该接口标识在服务器中查找对应的注释数据;该应用程序接口的注释数据也可以预先存储在于该服务器连接的数据库设备中,在接收到携带该接口标识的调用请求,且需要生成该接口标识对应的虚拟数据的情况下,可以通过发送注释数据查询请求至该数据库设备,并接收数据库设备返回的携带该注释数据的查询响应。
在本申请的一些实施例中,该注释数据可以为按照一定的注释规则对该应用程序接口添加的注释数据。该注释数据可以包括应用程序接口的至少一个注释字段,其中,每一注释字段可以对应该应用程序接口中一个参数的注释信息,参数可以包括以下至少之一:输入参数、输出参数、结构参数和封装参数等。对于任意一个参数,其对应的注释字段可以包括以下至之一:关键标记、字段名称信息、字段类型信息和字段描述信息。其中,关键标记表示该注释字段所代表的含义;字段名称信息表示该注释字段对应数据的名称;该字段类型信息表示该注释字段对应数据的数据类型;该字段描述信息用于表示该注释字段对应数据的文字描述。例如下述注释字段:
* @apiSuccess {String} message 错误信息;
其中,对于上述注释字段,其中的关键标记为“@apiSuccess”,表示该注释字段表示返回参数;字段名称信息为“message”,表示该注释字段对应数据的名称为message;字段类型信息为“String”,表示该注释字段对应数据的数据类型为字符串类型;字段描述信息为“错误信息”,表示该注释字段对应数据的文字描述为错误信息。其中,上述注释信息只是一个示例,各种形式的注释信息均可以满足该注释协议。例如,可以采用:“关键标记+字段名称信息+字段类型信息+字段描述信息”、“关键标记+字段类型信息+字段名称信息+字段描述信息”等不同的形式,只要包括“关键标记”、“字段名称信息”、“字段类型信息”和“字段描述信息”的形式既可以满足该注释规则。
在步骤303中,根据每一注释字段和预设的配置数据,确定每一注释字段对应的实例化数据。
在本申请的一些实施例中,该配置数据中包括了多个样本实例化数据,每一个样本示例化数据可以同时与至少一个注释字段存在对应关系,按照上述对应关系,可以在该配置数据的多个样本示例化数据中为每一注释字段分配至少一个实例化数据。
在本申请的一些实施例中,由于注释字段包括以下至少之一:关键标记、字段名称信息、字段类型信息和字段描述信息。因此,每一样本示例化数据可以与由关键标记、字段名称信息、字段类型信息和字段描述信息组成的集合中的至少一个存在对应关系。根据上述对应关系,可以得到每一注释字段对应的实例化数据。
其中,该实例化数据为与真实数据相似的虚拟数据。例如,对于一个注释字段,“*@ apiID { number } ID旅客身份标识”,该应用程序接口对于该注释字段对应的数据进行查询/计算后进行反馈时,往往会反馈包括数字串形式的旅客身份标识,如“7638746”、“84785443”、“7892748”等。因此,该配置数据中会包括同样为数字串形式的样本实例化数据,如“37846276”、“8767863”和“89374856”等,上述的样本实例化数据与“apiID”、“number”、“ID”和“旅客身份标识”均存在对应关系。若对于另一个注释字段,其包含的信息只有字段名称信息“ID”,也会根据该“ID”在该配置数据中找到上述样本实例化数据,并随机选择一个数据作为该注释字段对应的实例化数据,如“37846276”。
在本申请的一些实施例中,若存在N个注释字段,通过步骤303提供的根据每一注释字段和预设的配置数据,确定每一注释字段对应的实例化数据方案,可以得到N个注释字段中每一注释字段对应的实例化数据。例如,若存在3个注释字段,包括旅客标识对应的注释字段、旅客姓名对应的注释字段和旅客缴费的注释字段,可以得到旅客标识对应的实例化数据“lvke232”,旅客姓名对应的实例化数据“张三”和旅客缴费的注释字段“ture”共3个实例化数据。
在步骤304中,根据每一注释字段对应的实例化数据,生成应用程序接口的虚拟数据。
在本申请的一些实施例中,可以获取该应用程序接口对应的封装格式,通过该封装格式对每一注释字段对应的实例化数据进行封装,得到该应用程序接口的虚拟数据。
以该应用程序接口对应的封装格式为JS对象简谱(JavaScript ObjectNotation,JSON)为例,基于上述举例中:旅客标识对应的实例化数据“lvke232”,旅客姓名对应的实例化数据“张三”和旅客缴费的注释字段“ture”共3个实例化数据,可以得到以下虚拟数据:
{
"data": [{
"id": " lvke232"
},
{
"name": “张三”
},
{
"jiaofei": ture
}]
};
其中,“id”为旅客标识,“name”为旅客姓名,“jiaofei”为旅客缴费。
在步骤305中,向前端发送携带虚拟数据的调用响应;调用响应用于模拟应用程序接口对调用请求的响应。
在本申请的一些实施例中,该调用响应与该调用请求相对应,将上述生成的虚拟数据发送至前端,以使前端根据该虚拟数据中的实例化数据完成后续处理。
例如,若前端为一个用于查询旅客缴费情况的网页,该网页接收到用户的查询请求,在正常情况下,该查询请求可以包括身份证号,姓名,航班信息等输入参数,前端将该查询请求发送至服务器中的缴费情况查询接口,该缴费情况查询接口用于根据该输入参数返回对应的旅客缴费信息,该缴费信息可以包括旅客标识、旅客姓名和缴费情况,前端在接收到该缴费信息后,可以将该缴费信息通过交互式界面进行展示或者通过消息推送接口推送至其他终端设备。但是,在实际的开发过程中,对于该缴费情况查询接口还未完成开发,通过上述步骤302至步骤304可以得到与真实反馈消息相同的虚拟数据,并将该虚拟性数据通过该调用响应发送至前端,以使前端根据虚拟数据中的每一注释字段对应的实例化数据进行后续处理,即可以将虚拟数据作为缴费信息通过交互式界面进行展示或者通过消息推送接口推送至其他终端设备。
通过本申请实施例对于图3的上述示例性实施可知,本申请实施例通过可以在接收到对应用程序接口的调用请求后,根据应用程序接口的注释数据自动生成与真实响应数据相似的虚拟数据,并模拟所述应用程序接口对所述调用请求的响应,发送携带该虚拟数据的调用响应至前端。相比于传统技术中通过由开发人员为每一应用程序接口构建对应的虚拟数据的方法,可以快速生成与调用请求对应的虚拟数据,可以提高虚拟数据的构建效率;由于根据该应用程序接口对应的注释信息和预设的配置数据生成该虚拟数据,可以使得该虚拟数据更加真实,提高了虚拟数据的真实性,进而可以避免前端开发过程中因虚拟数据格式错误等原因造成的编译错误问题,提升开发效率。
参见图4,图4是本申请实施例提供的虚拟数据生成方法的一个可选的流程示意图,基于图3,图3中的步骤303可以更新为步骤401至步骤402,将结合图4示出的步骤进行说明。
在步骤401中,获取注释数据中每一注释字段的字段名称信息。
在本申请的一些实施例中,该注释数据中每一注释字段均包含该注释字段对应的字段名称信息。该字段名称信息用于表示该注释字段对应数据的名称。例如注释字段“@apiParam {String} funcName "getRecentPassengerInfo"”,通过解析,可以得到其对应的字段名称可以为funcName。
在步骤402中,利用每一注释字段的字段名称信息在配置数据中进行匹配,确定每一注释字段对应的实例化数据。
在本申请的一些实施例中,该配置数据中的每一样本实例化数据均对应至少一个字段名称信息,相应地,通过每一注释字段的字段名称信息及上述对应关系,可以在该配置数据中的多个样本实例化数据中匹配与每一字段名称信息对应的实例化数据。
在本申请的一些实施例中,该配置数据可以预先存储在服务器中,且该配置数据与该应用程序接口的接口标识相对应,在执行该步骤402之前,可以通过该接口标识在服务器中查找对应的配置数据;该配置数据也可以预先存储在于该服务器连接的数据库设备中,在执行该步骤402之前,可以通过发送配置数据查询请求至该数据库设备,并接收数据库设备返回的携带该配置数据的查询响应。
在本申请的一些实施例中,可以通过下述步骤实现步骤402中利用每一注释字段的字段名称信息在配置数据中进行匹配,确定每一注释字段对应的实例化数据的方案:在步骤4021中,利用每一注释字段的字段名称信息,在配置数据中查找与每一字段名称信息匹配的实例化数据子集;根据每一注释字段对应的实例化数据子集,确定每一注释字段对应的实例化数据。
其中,该配置数据中包括多个样本字段名称,和每一样本字段名称对应的实例化数据子集。在查找匹配的过程中,可以根据每一注释字段的字段名称信息,查找该字段名称信息相同或相似的样本字段名称,将该样本字段名称对应的实例化数据子集作为该字段名称信息对应的实例化数据子集。重复执行上述步骤,直至获取到每一注释字段对应的实例化数据子集。每一实例化数据子集可以包括至少一个样本实例化数据,通过随机算法在该至少一个样本实例化数据中选择一个样本实例化数据作为该注释字段对应的实例化数据。
例如,对于一个注释字段“* @ apiID { number } ID旅客身份标识”,通过解析可以得到该注释字段对应的字段名称信息为“ID”,通过该字段名称信息“ID”在预设的配置数据中匹配,若该配置数据中存在一个样本字段名称信息“ID”,可以看出,该样本字段名称信息与该注释字段对应的字段名称信息相同,因此可以得到该注释字段对应的实例化数据集为该样本字段名称信息“ID”对应的实例化数据集“(121、122)”,其中,该121及122为符合该注释字段真实要求的样本实例化数据,之后,可以随机挑选一个“121”作为该注释字段对应的实例化数据。
在本申请的一些实施例中,在步骤4021中,在利用各注释字段对应的字段名称信息在配置数据中查找对应的实例化数据子集的过程中,若存在至少一个缺省注释字段的情况下,也就是说,该缺省注释字段在所述配置数据中不存在对应的实例化数据子集,进而无法获取对应的实例化数据,因此,需要通过下述方法获取该缺省注释字段对应的实例化数据:
在步骤4022中,获取至少一个缺省注释字段中的字段属性信息;字段属性信息包括以下至少之一:字段类型信息和字段描述信息;根据字段属性信息生成注释字段对应的实例化数据。
其中,由于根据该缺省注释字段信息中的字段名称信息无法获取对应的实例化数据,因此需要获取该缺省注释字段中对于该注释字段的字段属性信息,该字段属性信息可以包括以下至少之一:字段类型信息和字段描述信息。
例如,对于上述的注释字段“* @ apiID {number} ID旅客身份标识”,由于通过字段名称信息“ID”无法获取到对应的实例化数据,因此,需要获取该注释字段对应的字段类型信息“number”和/或字段描述信息“字段描述信息”。
在本申请的一些实施例中,对于一个缺省注释字段,在获取该缺省注释字段对应的字段类型信息的情况下,可以在该预设的配置数据中查找与该字段类型信息对应的至少一个样本实例化数据。并在得到的至少一个样本实例化数据中随机选择一个样本实例化数据作为该注释字段对应的实例化数据。
在本申请的一些实施例中,对于一个缺省注释字段,在获取该缺省注释字段对应的字段类型信息的情况下,可以发送携带该“字段描述信息”的搜索请求至搜索服务器或搜索引擎,并接受该搜索服务器或搜索引擎返回的包括至少一个搜索结果的搜索响应,在该至少一个搜索结果中随机选择一个作为该注释字段对应的实例化数据。例如,对上述的注释字段“* @ apiID { number } ID旅客身份标识”,根据其包含的字段描述信息“旅客身份标识”可以在搜索引擎或搜索服务器中得到对应的搜索结果“zhang3、19880603、旅客2356和lvke8987”,再随机选择一个(例如“lvke8987”)作为该注释字段对应的实例化数据。
在本申请的一些实施例中,对于一个缺省注释字段,在获取该缺省注释字段对应的字段类型信息和字段描述信息的情况下,可以先发送携带该“字段描述信息”的搜索请求至搜索服务器或搜索引擎,并接受该搜索服务器或搜索引擎返回的包括至少一个搜索结果的搜索响应,在根据该字段类型信息在该至少一个搜索结果中随机选择一个作为该注释字段对应的实例化数据。例如,对上述的注释字段“* @ apiID { number } ID旅客身份标识”,根据其包含的字段描述信息“旅客身份标识”可以在搜索引擎或搜索服务器中得到对应的搜索结果“zhang3、19880603、旅客2356和lvke8987”,由于其对应的字段类型信息为“number”因此,符合要求的只有“19880603”,将其作为该注释字段对应的实例化数据。
通过本申请实施例对于图4的上述示例性实施可知,本申请实施例根据每一注释字段中的字段名称信息、字段类型信息、字段描述信息,和预设的配置数据,可以生成更加真实的虚拟数据,相比于传统技术中通过人工构建虚拟数据的方法,不仅可以提高虚拟数据的构建效率而且可以使得该虚拟数据更加真实,提高了构建得到的虚拟数据的真实性。
在本申请的一些实施例中,参见图5A,图5A是本申请实施例提供的虚拟数据生成方法的一个可选的流程示意图,基于图3,所述方法还包括步骤502至步骤504。
在步骤501中,根据预设的解析规则对注释数据进行解析,得到解析结果;解析结果包括接口参数信息;接口参数信息包括至少一个参数的参数名称、参数类型和参数描述。
在本申请的一些实施例中,可以通过以下方式实现对注释数据进行解析,得到包括至少一个参数的参数名称、参数类型和参数描述的解析结果。对于注释数据所在的注释文件,通过文本查找的方式,将由“/**……*/”包裹的文字信息确定为该应用程序接口对应的注释数据。其中,省略号的位置表示注释数据,则起始字符串为“/**”,结束字符串为“*/”,可通过检测注释数据中特定的起始字符串和结束字符串,来确定注释数据在注释文件中所处的注释位置,从而能够根据所确定的注释位置获取注释数据。在注释数据的具体内容中,通过标点符号“@”获取每一参数的参数名称、参数类型和参数描述,其中,可以将标点符号“@”至后续的第一个空格作为该参数的关键标记,将由标点符号“{…}”包裹的信息作为该参数的参数类型,将参数类型后的第一个空格与第二个空格之间的信息作为该参数的参数名称,将该参数名称后的信息作为该参数的参数描述。例如,对于下述注释文件:
“/**
* @apiSuccess {Number} code 0 为正常
* @apiSuccess {String} message 错误信息
* @apiSuccess {RecentPassengerInfo} data 查询结果
*/
省略
”
通过查找“/**……*/”,可以得到该注释文件中的注释数据为:
“* @apiSuccess {Number} code 0 为正常
* @apiSuccess {String} message 错误信息
* @apiSuccess {RecentPassengerInfo} data 查询结果”
并且,通过标点符号“@”可以得知该注释数据中包括3个参数及对应的参数名称、参数类型和参数描述。以“* @apiSuccess {Number} code 0 为正常”为例,符号“@”至第一空格之间的信息“apiSuccess”为该参数的关键标记,符号“{…}”中的信息“Number”为该参数的参数类型,参数类型后的第一个空格与第二个空格之间的信息“code”作为该参数的参数名称,该参数名称后的信息“0 为正常”作为该参数的参数描述。
在步骤502中,根据接口参数信息生成至少一个注释字段。
在本申请的一些实施例中,解析之后得到了每一参数对应的关键标记、参数名称、参数类型和参数描述,由于该注释字段包括“关键标记+字段类型信息+字段名称信息+字段描述信息”,其中,该参数对应的关键标记与注释字段中的“关键标记”对应,该参数对应的参数名称与注释字段中的“字段名称信息”对应,该参数对应的参数类型与注释字段中的“字段类型信息”对应,该参数对应的参数描述与注释字段的“字段描述信息”对应。
以“* @apiSuccess {Number} code 0 为正常”为例,符号“@”至第一空格之间的信息“apiSuccess”为该参数的关键标记,对应该注释字段的“关键标记”;符号“{…}”中的信息“Number”为该参数的参数类型,对应该注释字段的“字段类型信息”;参数类型后的第一个空格与第二个空格之间的信息“code”作为该参数的参数名称,对应该注释字段的“字段名称信息”;该参数名称后的信息“0 为正常”作为该参数的参数描述,对应该注释字段的“字段描述信息”。
在步骤503中,响应于针对应用程序接口的应用程序接口文档的展示请求,根据解析结果生成该应用程序接口的应用程序接口文档。
在本申请的一些实施例中,在该步骤501对该注释数据进行解析的过程中,得到的解析结果还包括以下至少之一:接口描述信息、接口地址、接口作者、接口版本和接口响应示例。根据该解析结果和预设的应用程序接口文档的生成模板,将该解析结果中的接口参数信息、接口描述信息、接口地址、接口作者、接口版本和接口响应示例添加到该生成模板中,可以得到该应用程序接口的应用程序接口文档。
在本申请的一些实施例中,在对该应用程序接口对应的注释数据进行解析之后,由于具体的解析结果以数字代码的形式保存在服务器中,管理人员无法直观的对其进行人工检测,在出现解析错误的情况下难以发现,会导致虚拟数据的生成失败。因此,在解析完成之后,前端可以接收到管理人员通过交互式界面发送的应用程序接口文档的展示请求,以使管理人员通过查看应用程序接口文档的方式检测解析结果是否准确。
在步骤504中,发送携带接口文档的展示指令至前端,展示指令用于指示前端通过交互式界面展示应用程序接口文档。
在本申请的一些实施例中,将步骤与503生成的应用程序接口文档通过接口文档展示指令发送至前端,以使前端通过交互式界面为管理人员展示该应用程序接口文档。请参阅图5B,其示出了一个应用程序接口文档的展示效果图,在该效果图中,展示了应用程序接口文档的展示界面50,可以直观的看到,在该展示界面50中,包括该应用程序接口文档的接口描述信息51、接口地址52、接口作者53、接口版本54、接口参数信息55和接口响应示例56。
在本申请的一些实施例中,前端还可以通过该交互式界面接收管理人员对接口描述信息、接口地址、接口作者、接口版本和接口响应示例的修改操作,并将修改后的修正信息返回至服务器,服务器根据该修正信息对该应用程序接口文档和该应用程序接口对应的至少一个注释字段进行修正。
通过本申请实施例对于图5A的上述示例性实施可知,本申请实施例通过设定一定的解析规则,自动对应用程序接口对应的注释数据进行解析,相比于传统技术中,通过人工编写API文档的方案,不仅提高了应用程序文档的生成效率,而且准确率更高,在前后端并行开发的过程中,准确率更高的应用程序文档可以保证开发进度。并且,本申请实施例还可以实时展示根据解析结果生成的应用程序文档,还可以根据人工修改操作对该解析结果进行修正,在提升用户使用体验的同时,进一步提升了解析准确率,为虚拟数据的构建过程中的真实性提供了保证。
在本申请的一些实施例中,参见图6,图6是本申请实施例提供的虚拟数据生成方法的一个可选的流程示意图,基于图3,所述方法还可以包括步骤601和步骤602。
在步骤601中,检测调用请求中的测试标识。
在本申请的一些实施例中,在服务器接收到前端发送的调用请求后,通过解析该调用请求,可以检测该调用请求中是否存在测试标识。其中,该测试标识可以以预设的文本序列或参数体现,例如,可以在该调用请求中携带“test”的文本标识,或者携带“test”参数,且将该“test”参数赋值为1,标识该调用请求用于请求该应用程序接口对应的虚拟数据。
在本申请的一些实施例中,在该调用请求携带该测试标识的情况下,执行步骤302。例如,该调用请求中携带“test”的文本标识,或者携带参数赋值为1的“test”参数。
在本申请的一些实施例中,在该调用请求未携带该测试标识的情况下,执行步骤602。例如,该调用请求中未携带“test”的文本标识,或者携带参数赋值为0的“test”参数。
在步骤602中,调用应用程序接口。
在本申请的一些实施例中,由于该调用请求未携带该测试标识,表示该调用请求用于调用真实的应用程序接口,以得到真实的反馈数据。因此,需要将该调用请求中的输入参数发送至对应的应用程序接口中,并得到该应用程序接口的真实反馈。在该应用程序接口未完成开发的情况下,即找不到对应的应用程序接口的情况下,发送错误信息至前端。
通过本申请实施例对于图6的上述示例性实施可知,本申请可以在真实调用应用接口和使用虚拟数据两种方案中自由切换,相比于传统技术中通过人工构建该虚拟数据的方案,本申请不需要对代码反复修改,即可完成真实调用应用接口到使用虚拟数据之间的切换,提高了开发人员的使用体验。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请提供的实施例可以根据注释协议及配置在测试环境为API接口自动生成API文档及Mock数据(虚拟数据)。
在相关技术中,为了生成API接口相应的API接口文档,需要对该API接口进行注释,并通过人工对注释的信息进行统计,编写对应的API文档。
相关技术中的注释方式可以如下:
/**
* @api getRecentPassengerInfo 拉取最近一次订单信息
* @apiDescription 返回最近一次填写的信息
* @apiGroup careService
* @apiParam {String} funcName "getRecentPassengerInfo"
* @apiParam {String} serviceName 服务类别(specialPassenger:特殊服务登记,batteryCar:电瓶车,wheelChair:爱心轮椅)
* @apiSuccess {Number} code 0 为正常
* @apiSuccess {String} message 错误信息
* @apiSuccess {RecentPassengerInfo} data 查询结果
*/
相关技术中的通过人工对上述注释信息进行统计,并编写界面显示代码,可以通过界面显示该API对应的接口文档界面。
可以看出,相关技术在实际的测试环境中会存在下述问题:
(1)相关技术中通过人工编写API文档,不仅效率低,而且容易出错,在前后端并行开发的过程中,不仅影响开发进度,而且在API文档出现错误的情况下,容易造成前后端的开发错误。
(2)在生成API文档之后,如果前后端开发进度不一致,在前端需要调用后端中某一个服务接口时,该服务接口还未完成开发,则需要通过人工的方式参阅该API文档手动构建一个虚拟数据,效率较低。
(3)通过手动构建的虚拟数据,无法随着API文档的变更进行变更,在需要对API文档进行修正的情况下,需要人工再次对该API接口对应的所有虚拟数据进行重新构建。
(4)在测试环境下通过人工构建该虚拟数据后,在前端进行发布使用时,需要手动清除,对应的代码需要反复修改,容易出现虚拟数据忘记清除,导致发布出去的服务程序无法正常提供服务。
为了解决上述问题,本申请实施例提供了一个虚拟数据生成方法,本申请提供的虚拟数据生成方法,可以通过增加关键标记返回里的注释字段及配置约定,来实现自动生成Mock数据。
首先,本申请提供的虚拟数据生成方法可以对API接口的注释信息进行自动解析。需要说明的是,对该API接口的注释信息需要按照预设的注释协议进行注释,该注释协议包括:对于该API接口的一个参数,需要采用“关键标记”、“注释字段”、“注释类型”和“字段描述”的形式进行描述,例如下述注释信息:
* @apiSuccess {String} message 错误信息
其中,对于上述注释信息,其中的关键标记为“@apiSuccess”,注释字段为“message”,注释类型为“String”,字段描述为“错误信息”。其中,上述注释信息只是一个示例,各种形式的注释信息均可以满足该注释协议。例如,可以采用:“关键标记+注释字段+注释类型+字段描述”、“关键标记+注释类型+注释字段+字段描述”等不同的形式,只要包括“关键标记”、“注释字段”、“注释类型”和“字段描述”的形式既可以满足该注释协议。
在本申请的一些实施例中,该虚拟数据生成方法可以应用在所有软件项目和web系统中,为了实现终端与应用层并行开发,应用层只需要提前声明一个空的API控制器及方法名(即接口名),并根据注释协议规范编写好注释,终端调用时带上test=1的入参业务框架探测到test=1,即会通过注释解析引擎解析返回关键标记apiSuccess,自动返回Mock数据,mock数据又会根据注释字段就配置约定表里寻找是否有相应约定数据,如果有则随机挑选一个数据,如果没有,则根据注释类型自动生成一个mock数据。根据生成的文档,可以预览到该api接口入参出参说明。
请参阅图7,图7为本申请实施例提供的虚拟数据生成方法的一个可选的流程示意图。其中,虚拟数据生成的过程是由服务器侧完成。该服务器侧包括业务框架701、注释解析引擎702、规则定义表703和API接口704。
其中:业务框架701用于接收终端侧705的API调用请求,在接收到API调用请求后,发送虚拟数据生成请求至注释解析引擎702;该业务框架701还用于接收注释解析引擎702返回的虚拟数据。
注释解析引擎702用于接收业务框架701发送的虚拟数据生成请求,根据该虚拟数据生成请求对应的目标API,向目标API接口704获取对应的API文档(注释文件,并解析生成API文档);并根据该API文档中各“关键标记”在规则定义表703中查找对应的约定数据(可以在多个中随机选择一个);若根据“关键标记”在规则定义表703中找不到对应的数据,可以根据该“关键标记”的“字段类型或字段描述”生成一个数据。由于API文档中包含了N个“关键标记”,因此,生成的虚拟数据为包括了N个“关键标记”对应的N个虚拟数据。将虚拟数据返回至业务框架701。
API接口704用于保存人工添加的注释文件,还用于解析该注释文件,得到API文档。
在实际应用之前,针对API接口704,需要“开发者”按照规范添加注释,其中,该规范可以是“关键标记+注释字段+注释类型+字段描述”的形式。针对该接口的注释可以以单独文件(例如,注释文件)进行保存。
在实际应用的过程中,请参阅图8,图8为本申请实施例提供的虚拟数据生成方法的一个可选的流程示意图。包括以下步骤:
在步骤801中,终端侧会发送API调用请求至服务器侧。其中,该API调用请求包括目标API接口的标识和测试标识(test=1)。服务器检测到该测试标识后,会执行步骤802。
例如,若需要调用的api为旅客资料查询接口,该API接口的输入参数为旅客身份标识,输出参数为旅客个人信息、航班信息、查询结果。
采用本方案,则终端侧会发送携带旅客身份标识和测试标识的API调用请求至服务器侧,服务器侧在检测到该测试标识后,会执行生成mock数据的步骤,生成的mock数据包括该旅客资料查询接口所有参数对应的数据。
在步骤802中,服务器侧中的业务框架发送携带旅客资料查询接口标识的请求至注释解析引擎,该注释解析引擎从旅客资料查询接口处得到对应的注释数据(或API文档)。
例如,在上述举例的基础上,注释解析引擎获取旅客资料查询接口对应的注释数据(或API文档),包括下表1所示:
在步骤803中,根据在步骤802中得到的各字段,在规则定义表中查找对应的约定数据。如果有则随机挑选一个数据,如果没有,则根据注释类型自动生成一个 mock 数据。
例如,在上述举例的基础上,通过如下表2所示的规则定义表,生成mock数据。
从表2的最后一列可以看出,最后生成的mock数据包括:{121、Li、562、根据类型String生成虚拟数据};其中,根据该“类型String”可以随机生成的“String1”,进而可以得到生成的mock数据包括{121、Li、562、String1}。
在步骤804中,将生成的mock数据通过业务框架返回至终端侧,流程结束。
在本申请的一些实施例中,在上述步骤802中,注释解析引擎在得到该应用程序接口对应的注释数据后,会对该注释数据进行解析,得到该应用程序接口对应的API文档,在接收到针对该API文档的展示指令后,会通过交互式界面展示该API文档。在上述举例的基础上,可以生成如图9所示的应用程序接口文档展示界面示意图,图9中的界面90显示了“@apiID”的注释信息91,“@apiPersonInf” 的注释信息92,“@apiFlightInf” 的注释信息93和“@apiSuccess” 的注释信息94。
下面继续说明本申请实施例提供的虚拟数据生成装置555的实施为软件模块的示例性结构,在本申请的一些实施例中,如图2所示,存储在存储器550的虚拟数据生成装置555中的软件模块可以包括:
接收模块5551,用于接收前端对应用程序接口的调用请求;
获取模块5552,用于获取所述应用程序接口的注释数据;所述注释数据包括所述应用程序接口的至少一个注释字段;
确定模块5553,用于根据每一所述注释字段和预设的配置数据,确定每一所述注释字段对应的实例化数据;
生成模块5554,用于根据每一所述注释字段对应的实例化数据,生成所述应用程序接口的虚拟数据;
发送模块5555,用于向所述前端发送携带所述虚拟数据的调用响应;所述调用响应用于模拟所述应用程序接口对所述调用请求的响应。
在本申请的一些实施例中,所述确定模块5553,还用于获取注释数据中每一注释字段的字段名称信息;利用每一注释字段的字段名称信息在配置数据中进行匹配,确定每一注释字段对应的实例化数据。
在本申请的一些实施例中,所述确定模块5553,还用于利用每一注释字段的字段名称信息,在配置数据中查找与每一字段名称信息匹配的实例化数据子集;根据每一注释字段对应的实例化数据子集,确定每一注释字段对应的实例化数据。
在本申请的一些实施例中,在存在至少一个缺省注释字段的情况下,所述确定模块5553,还用于获取至少一个缺省注释字段中的字段属性信息;字段属性信息包括以下至少之一:字段类型信息和字段描述信息;根据字段属性信息生成注释字段对应的实例化数据。
在本申请的一些实施例中,虚拟数据生成装置555还包括解析模块、展示模块和检测模块,其中:
解析模块,用于根据预设的解析规则对注释数据进行解析,得到解析结果;解析结果包括接口参数信息;接口参数信息包括至少一个参数的参数名称、参数类型和参数描述;根据接口参数信息生成至少一个注释字段。
在本申请的一些实施例中,解析结果还包括以下至少之一:接口描述信息、接口地址、接口作者、接口版本和接口响应示例,展示模块,用于响应于针对应用程序接口的应用程序接口文档的展示请求,根据解析结果生成该应用程序接口的应用程序接口文档;发送携带接口文档的展示指令至前端,展示指令用于指示前端通过交互式界面展示应用程序接口文档。
检测模块,用于检测调用请求中的测试标识;在调用请求携带测试标识的情况下,获取应用程序接口的注释数据;在调用请求未携带测试标识的情况下,调用应用程序接口。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的虚拟数据生成方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的虚拟数据生成方法,例如,如图3、图4、图5A、图6、图7或图8示出的方法。
在本申请的一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在本申请的一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上所述,通过本申请实施例能够实现以下技术效果:
(1)通过接收前端对应用程序接口的调用请求;获取应用程序接口的注释数据;注释数据包括应用程序接口的至少一个注释字段;根据每一注释字段和预设的配置数据,确定每一注释字段对应的实例化数据;根据每一注释字段对应的实例化数据,生成应用程序接口的虚拟数据;向前端发送携带虚拟数据的调用响应;调用响应用于模拟应用程序接口对调用请求的响应。如此,可以在接收到对应用程序接口的调用请求后,根据应用程序接口的注释数据自动生成与真实响应数据相似的虚拟数据,并模拟所述应用程序接口对所述调用请求的响应,发送携带该虚拟数据的调用响应至前端。相比于传统技术中通过由开发人员为每一应用程序接口构建对应的虚拟数据的方法,可以快速生成与调用请求对应的虚拟数据,可以提高虚拟数据的构建效率;由于根据该应用程序接口对应的注释信息和预设的配置数据生成该虚拟数据,可以使得该虚拟数据更加真实,提高了虚拟数据的真实性,进而可以避免前端开发过程中因虚拟数据格式错误等原因造成的编译错误问题,提升开发效率。
(2)根据每一注释字段中的字段名称信息、字段类型信息、字段描述信息,和预设的配置数据,可以生成更加真实的虚拟数据,提高虚拟数据的构建效率的同时,提高了构建得到的虚拟数据的真实性。
(3)通过设定一定的解析规则,自动对应用程序接口对应的注释数据进行解析,相比于传统技术中,通过人工编写API文档的方案,不仅提高了应用程序文档的生成效率,而且准确率更高,在前后端并行开发的过程中,准确率更高的应用程序文档可以保证开发进度。并且,本申请实施例还可以实时展示根据解析结果生成的应用程序文档,还可以根据人工修改操作对该解析结果进行修正,在提升用户使用体验的同时,进一步提升了解析准确率,为虚拟数据的构建过程中的真实性提供了保证。
(4)可以在真实调用应用接口和使用虚拟数据两种方案中自由切换,相比于传统技术中通过人工构建该虚拟数据的方案,本申请不需要对代码反复修改,即可完成真实调用应用接口到使用虚拟数据之间的切换,提高了开发人员的使用体验。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (10)
1.一种虚拟数据生成方法,其特征在于,包括:
接收前端对应用程序接口的调用请求;
获取所述应用程序接口的注释数据;所述注释数据包括所述应用程序接口的至少一个注释字段;
根据每一所述注释字段和预设的配置数据,确定每一所述注释字段对应的实例化数据;
根据每一所述注释字段对应的实例化数据,生成所述应用程序接口的虚拟数据;
向所述前端发送携带所述虚拟数据的调用响应;所述调用响应用于模拟所述应用程序接口对所述调用请求的响应。
2.根据权利要求1所述的方法,其特征在于,根据每一所述注释字段和预设的配置数据,确定每一所述注释字段对应的实例化数据,包括:
获取所述注释数据中每一所述注释字段的字段名称信息;
利用每一所述注释字段的字段名称信息在所述配置数据中进行匹配,确定每一所述注释字段对应的实例化数据。
3.根据权利要求2所述的方法,所述利用每一所述注释字段的字段名称信息在所述配置数据中进行匹配,确定每一所述注释字段对应的实例化数据,包括:
利用每一所述注释字段的字段名称信息,在所述配置数据中查找与每一所述字段名称信息匹配的实例化数据子集;
根据每一所述注释字段对应的实例化数据子集,确定每一所述注释字段对应的实例化数据。
4.根据权利要求3所述的方法,在存在至少一个缺省注释字段的情况下,所述缺省注释字段在所述配置数据中不存在对应的实例化数据,所述方法还包括:
获取所述至少一个缺省注释字段中的字段属性信息;所述字段属性信息包括以下至少之一:字段类型信息和字段描述信息;
根据所述字段属性信息生成所述注释字段对应的实例化数据。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
根据预设的解析规则对所述注释数据进行解析,得到解析结果;所述解析结果包括接口参数信息;所述接口参数信息包括至少一个参数的参数名称、参数类型和参数描述;
根据所述接口参数信息生成所述至少一个注释字段。
6.根据权利要求5所述的方法,其特征在于,所述解析结果还包括以下至少之一:接口描述信息、接口地址、接口作者、接口版本和接口响应示例,所述方法还包括:
响应于针对所述应用程序接口的应用程序接口文档的展示请求,根据所述解析结果生成该所述应用程序接口的应用程序接口文档;
发送携带所述接口文档的展示指令至前端,所述展示指令用于指示所述前端通过交互式界面展示所述应用程序接口文档。
7.根据权利要求1至4任一项所述的方法,其特征在于,在所述获取所述应用程序接口的注释数据的步骤之前,还包括:
检测所述调用请求中的测试标识;
在所述调用请求携带所述测试标识的情况下,获取所述应用程序接口的注释数据;
在所述调用请求未携带所述测试标识的情况下,调用所述应用程序接口。
8.一种虚拟数据生成装置,其特征在于,包括:
接收模块,用于接收前端对应用程序接口的调用请求;
获取模块,用于获取所述应用程序接口的注释数据;所述注释数据包括所述应用程序接口的至少一个注释字段;
确定模块,用于根据每一所述注释字段和预设的配置数据,确定每一所述注释字段对应的实例化数据;
生成模块,用于根据每一所述注释字段对应的实例化数据,生成所述应用程序接口的虚拟数据;
发送模块,用于向所述前端发送携带所述虚拟数据的调用响应;所述调用响应用于模拟所述应用程序接口对所述调用请求的响应。
9.一种虚拟数据生成设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010991899.3A CN111831277B (zh) | 2020-09-21 | 2020-09-21 | 虚拟数据生成方法、系统、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010991899.3A CN111831277B (zh) | 2020-09-21 | 2020-09-21 | 虚拟数据生成方法、系统、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111831277A true CN111831277A (zh) | 2020-10-27 |
CN111831277B CN111831277B (zh) | 2021-06-25 |
Family
ID=72918421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010991899.3A Active CN111831277B (zh) | 2020-09-21 | 2020-09-21 | 虚拟数据生成方法、系统、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111831277B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385384A (zh) * | 2021-12-28 | 2022-04-22 | 联通智网科技股份有限公司 | 一种应用编程接口调用方法及相关设备 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080127070A1 (en) * | 2006-10-23 | 2008-05-29 | Roland Barcia | System and method for instantiating an interface or abstract class in application code |
US20080295076A1 (en) * | 2007-05-23 | 2008-11-27 | Microsoft Corporation | Graphical user interface testing |
US20130227388A1 (en) * | 2012-02-28 | 2013-08-29 | Microsoft Corporation | Persistent Storage of Profile Data for Script Compilation |
CN105681126A (zh) * | 2015-12-30 | 2016-06-15 | 合一网络技术(北京)有限公司 | 一种基于协议接口的自动化测试方法及系统 |
US20170061379A1 (en) * | 2015-08-28 | 2017-03-02 | Magnum Software Development, Ltd. | Systems and methods for master-client virtual workspace communication and management |
CN106528400A (zh) * | 2016-09-22 | 2017-03-22 | 深圳峰创智诚科技有限公司 | Mock测试方法和装置 |
CN108268570A (zh) * | 2017-01-04 | 2018-07-10 | 武汉斗鱼网络科技有限公司 | 一种开发接口的方法及装置 |
CN108415834A (zh) * | 2018-02-12 | 2018-08-17 | 平安科技(深圳)有限公司 | 注解后端校验方法、装置、计算机设备及存储介质 |
CN109739656A (zh) * | 2018-11-29 | 2019-05-10 | 东软集团股份有限公司 | 接口数据模拟方法、装置、存储介质和电子设备 |
CN111273913A (zh) * | 2020-01-20 | 2020-06-12 | 北京明略软件系统有限公司 | 一种输出规范表示的应用程序接口数据的方法及装置 |
CN111475331A (zh) * | 2020-03-24 | 2020-07-31 | 平安银行股份有限公司 | 数据校验方法、装置、计算机设备和存储介质 |
-
2020
- 2020-09-21 CN CN202010991899.3A patent/CN111831277B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080127070A1 (en) * | 2006-10-23 | 2008-05-29 | Roland Barcia | System and method for instantiating an interface or abstract class in application code |
US20080295076A1 (en) * | 2007-05-23 | 2008-11-27 | Microsoft Corporation | Graphical user interface testing |
US20130227388A1 (en) * | 2012-02-28 | 2013-08-29 | Microsoft Corporation | Persistent Storage of Profile Data for Script Compilation |
US20170061379A1 (en) * | 2015-08-28 | 2017-03-02 | Magnum Software Development, Ltd. | Systems and methods for master-client virtual workspace communication and management |
CN105681126A (zh) * | 2015-12-30 | 2016-06-15 | 合一网络技术(北京)有限公司 | 一种基于协议接口的自动化测试方法及系统 |
CN106528400A (zh) * | 2016-09-22 | 2017-03-22 | 深圳峰创智诚科技有限公司 | Mock测试方法和装置 |
CN108268570A (zh) * | 2017-01-04 | 2018-07-10 | 武汉斗鱼网络科技有限公司 | 一种开发接口的方法及装置 |
CN108415834A (zh) * | 2018-02-12 | 2018-08-17 | 平安科技(深圳)有限公司 | 注解后端校验方法、装置、计算机设备及存储介质 |
CN109739656A (zh) * | 2018-11-29 | 2019-05-10 | 东软集团股份有限公司 | 接口数据模拟方法、装置、存储介质和电子设备 |
CN111273913A (zh) * | 2020-01-20 | 2020-06-12 | 北京明略软件系统有限公司 | 一种输出规范表示的应用程序接口数据的方法及装置 |
CN111475331A (zh) * | 2020-03-24 | 2020-07-31 | 平安银行股份有限公司 | 数据校验方法、装置、计算机设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114385384A (zh) * | 2021-12-28 | 2022-04-22 | 联通智网科技股份有限公司 | 一种应用编程接口调用方法及相关设备 |
CN114385384B (zh) * | 2021-12-28 | 2023-11-21 | 联通智网科技股份有限公司 | 一种应用编程接口调用方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111831277B (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109976761B (zh) | 软件开发工具包的生成方法、装置及终端设备 | |
US8671389B1 (en) | Web application resource manager on the web and localizable components | |
CN111324833A (zh) | 页面展示方法、装置、电子设计及计算机可读介质 | |
CN113018870B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
JP2013084259A (ja) | ウェブ・ブラウザー画面の段階的な視覚的比較 | |
CN110955409B (zh) | 在云平台上创建资源的方法和装置 | |
CN113076104A (zh) | 页面生成方法、装置、设备及存储介质 | |
CN113238929B (zh) | 基于Mock数据的代码测试方法、装置、电子设备及存储介质 | |
CN112463154A (zh) | 页面生成方法、装置、系统和电子设备 | |
CN109634579A (zh) | 代码生成方法、装置、计算机装置及存储介质 | |
CN111797020A (zh) | 基于动态字节码的mock数据方法及装置 | |
CN115599386A (zh) | 代码生成方法、装置、设备及存储介质 | |
US10282398B1 (en) | Editing tool for domain-specific objects with reference variables corresponding to preceding pages | |
CN111831277B (zh) | 虚拟数据生成方法、系统、设备及计算机可读存储介质 | |
US20220334853A1 (en) | System and method for accelerating modernization of user interfaces in a computing environment | |
CN116775034A (zh) | 内核观测程序的构建方法、装置及设备 | |
CN114579461A (zh) | 浏览器兼容性检测方法及相关设备 | |
CN114115855A (zh) | 代码复用方法及装置、计算机可读存储介质、电子设备 | |
CN114254232A (zh) | 云产品页面生成方法、装置、计算机设备和存储介质 | |
US11960560B1 (en) | Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof | |
Sommer | Comparison and evaluation of cross-platform frameworks for the development of mobile business applications | |
CN117573127B (zh) | 一种页面搭建方法、装置、电子设备及介质 | |
CN112732254B (zh) | 网页开发方法、装置、计算机设备和存储介质 | |
CN115705272A (zh) | 一种页面测试的方法、相关装置及设备 | |
CN114528013A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40030682 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |