CN111752644A - 接口模拟方法、装置、设备及存储介质 - Google Patents

接口模拟方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN111752644A
CN111752644A CN202010561293.6A CN202010561293A CN111752644A CN 111752644 A CN111752644 A CN 111752644A CN 202010561293 A CN202010561293 A CN 202010561293A CN 111752644 A CN111752644 A CN 111752644A
Authority
CN
China
Prior art keywords
interface
simulation
code
background
configuration data
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
Application number
CN202010561293.6A
Other languages
English (en)
Inventor
俞亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202010561293.6A priority Critical patent/CN111752644A/zh
Publication of CN111752644A publication Critical patent/CN111752644A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines

Abstract

本公开实施例公开了一种接口模拟方法、装置、设备及存储介质。所述方法包括:获取后台接口定义文件;解析所述后台接口定义文件,获取接口配置数据;其中,所述接口配置数据包括接口数据结构、接口名称及接口请求方式;根据所述接口配置数据生成对应的接口模拟代码;调用并运行所述接口模拟代码以进行接口模拟。本公开实施例提供的技术方案,有效解决了前端开发人员花费大量时间去重复编写模拟接口代码的技术问题,可以基于后台接口定义文件自动生成接口模拟代码,实现接口模拟,大大提高了前端开发效率。

Description

接口模拟方法、装置、设备及存储介质
技术领域
本公开实施例涉及软件开发技术领域,尤其涉及一种接口模拟方法、装置、设备及存储介质。
背景技术
在进行项目开发的过程中,经常涉及到前端开发和后端开发。通常,前端开发和后端开发由不同的开发人员进行独立开发。比如网页开发方面,往往需要网页工程师和后台工程师分开同时开发,最后通过沟通达成一种网络接口的交互协议,来实现网页与网络后台的交互。
通常,后端只提供业务逻辑的处理,并对外提供服务接口(ApplicationProgramming Interface,应用程序编程接口);而前端通过调用后端提供的接口获取数据,并通过页面向用户展现。然而,在前端开发过程中,经常要与以后端提供的接口为基础,在后端没有完成接口开发的情况下,容易导致前端开发无法进行,为了解决上述技术问题,需要进行接口模拟。
现有技术中,需要前端开发人员按照每个后台接口的定义分别编写接口代码,这样不仅容易出错,而且花费较多时间,导致前端开发效率较低。
发明内容
本公开实施例提供一种接口模拟方法、装置、设备及存储介质,可以自动生成接口模拟代码,实现接口模拟,提高前端开发效率。
第一方面,本公开实施例提供了一种接口模拟方法,包括:
获取后台接口定义文件;
解析所述后台接口定义文件,获取接口配置数据;其中,所述接口配置数据包括接口数据结构、接口名称及接口请求方式;
根据所述接口配置数据生成对应的接口模拟代码;
调用并运行所述接口模拟代码以进行接口模拟。
第二方面,本公开实施例还提供了一种接口模拟装置,包括:
接口定义文件获取模块,用于获取后台接口定义文件;
接口配置数据获取模块,用于解析所述后台接口定义文件,获取接口配置数据;其中,所述接口配置数据包括接口数据结构、接口名称及接口请求方式;
接口模拟代码生成模块,用于根据所述接口配置数据生成对应的接口模拟代码;
接口模拟模块,用于调用并运行所述接口模拟代码以进行接口模拟。
第三方面,本公开实施例还提供了一种电子设备,所述电子设备包括:
一个或多个处理装置;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现如本公开实施例所述的接口模拟方法。
第四方面,本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现如本公开实施例所述的接口模拟方法。
本公开实施例,获取后台接口定义文件,并解析后台接口定义文件,获取接口配置数据,其中,接口配置数据包括接口数据结构、接口名称及接口请求方式,然后根据接口配置数据生成对应的接口模拟代码,最后调用并运行接口模拟代码以进行接口模拟。本公开实施例提供的接口模拟方法,有效解决了前端开发人员花费大量时间去重复编写模拟接口代码的技术问题,可以基于后台接口定义文件自动生成接口模拟代码,实现接口模拟,大大提高了前端开发效率。
附图说明
图1是本公开一实施例中的一种接口模拟方法的流程图;
图2是本公开另一实施例中的一种接口模拟方法的流程图;
图3是本公开另一实施例中的一种接口模拟装置的结构示意图;
图4是本公开另一实施例中的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
图1为本公开一实施例提供的一种接口模拟方法的流程图,本公开实施例可适用于前端开发过程中进行接口模拟的情况,该方法可以由接口模拟装置来执行,该装置可由硬件和/或软件组成,并一般可集成在具有接口模拟功能的设备中,该设备可以是服务器、移动终端或服务器集群等电子设备。如图1所示,该方法具体包括如下步骤:
步骤110,获取后台接口定义文件。
在本公开实施例中,从后台获取后台接口定义文件,可选的,当检测到接口模拟事件被触发时,从后台获取后台接口定义文件。其中,接口定义文件可以理解为在进行某一个项目开发时,前端开发人员和后端开发人员共同协商后的接口规范性文件。可以理解的是,后台接口定义文件中包含了基于结构化语言对接口进行描述的规范信息,如接口的请求与响应格式等数据信息。
由于现在后台基本采用微服务的方式完成业务需求,后台提供的每个微服务可对应一个后台接口定义文件,在每个后台接口定义文件中可只包含对一个接口的规范性定义,也可包括对多个接口的规范性定义,本公开实施例对此不作限定。
可选的,后台接口定义文件包括基于Thrift规范语言描述的接口定义文件。Thrift是一种接口描述语言和二进制通讯协议,它被用来定义和创建跨语言的服务。它被当作一个远程过程调用(Remote Procedure Call,RPC)框架来使用,是由Facebook为“大规模跨语言服务开发”而开发的。它通过一个代码生成引擎联合了一个软件栈,来创建不同程度的、无缝的跨平台高效服务,可以使用C#、C++(基于POSIX兼容系统)、Cappuccino、Cocoa、Delphi、Erlang、Go、Haskell、Java、Node.js、OCaml、Perl、PHP、Python、Ruby和Smalltalk。
步骤120,解析所述后台接口定义文件,获取接口配置数据;其中,所述接口配置数据包括接口数据结构、接口名称及接口请求方式。
在本公开实施例中,读取并解析后台接口定义文件,获取接口配置数据。可选的,所述后台接口定义文件中包括至少一个接口请求方法;解析所述后台接口定义文件,获取接口配置数据,包括:解析所述后台接口定义文件中的至少一个接口请求方法,获取与接口请求方法对应的接口配置数据;其中,一个接口请求方法对应一个接口。示例性的,后台接口定义文件中包含一个或多个接口请求方法,每个接口请求方法对一个接口,解析每个接口请求方法的声明,获取每个接口对应的接口配置数据。
其中,接口配置数据可以包括接口数据结构、接口名称及接口请求方式。接口配置数据可以包括接口请求参数、接口响应参数、接口请求参数类型及接口响应参数类型等信息。接口请求方式可以理解为接口行为类型,也即对资源的处理方式,可以包括post(创建资源),get(获取网络中某个地址的资源),delete(删除网络资源),put(更新资源),options(选择资源),patch(更新网络资源)等方式。其中,接口请求方式以注释的方式设置在后台接口定义文件中。示例性的,后台接口定义文件的结构为:接口数据结构、接口名称//接口请求方式。
步骤130,根据所述接口配置数据生成对应的接口模拟代码。
可选的,根据所述接口配置数据生成对应的接口模拟代码,包括:获取预先创建的后台代码模板;根据所述接口配置数据和所述后台代码模板生成对应的接口模拟代码。示例性的,获取后台代码模板,例如,后台代码模板可以为Express代码模板,其中,Express是一种保持最低程度规模的灵活Node.js Web应用程序框架,为Web和移动应用程序提供一组强大的功能。根据接口配置数据和后台代码模板生成对应的接口模拟代码。
可选的,根据所述接口配置数据和所述后台代码模板生成对应的接口模拟代码,包括:基于所述接口数据结构确定结果返回函数;基于所述后台代码模板和所述接口名称生成路由声明代码;其中,所述路由声明代码中包含所述接口名称;根据所述路由声明代码和所述接口请求方式生成路由处理代码;其中,所述路由处理代码中包含所述接口请求方式;根据所述路由处理代码和所述结果返回函数生成接口模拟代码。
示例性的,解析接口数据结构,并根据接口数据结构确定返回函数。然后,在后台代码模板中根据接口名称插入路由声明代码,其中,路由声明代码中包含接口名称;然后再根据接口请求方式在路由声明代码中插入路由处理代码,其中,路由处理代码中包含接口请求方式;最后根据结果返回函数和路由处理方式生成接口模拟代码。可以理解的是,路由声明代码用于表征进行接口模拟时模拟的目标接口(与接口名称同名的接口);路由处理代码用于表征对目标接口(与接口名称同名的接口)进行模拟的过程中,对目标接口提供的资源或数据的处理方式;接口模拟代码用于表征对目标接口(与接口名称同名的接口)进行模拟的过程中,对目标接口提供的资源或数据按照接口请求方式进行处理后的数据返回结果,其中,数据返回结果通过结果返回函数来获取。
可选的,基于所述接口数据结构确定结果返回函数,包括:解析所述接口数据结构的各个组成项,并针对每个组成项,判断所述组成项是否为可选项;当所述组成项为可选项时,生成一个随机数,并当随机数大于预设阈值时,根据所述组成项的数据类型确定结果返回函数;当所述组成项为必选项时,根据所述组成项的数据类型确定结果返回函数。
在本公开实施例中,Thrift可以提供required(必需的)和optional(可选择的)两个关键字,分别用于表示对应的字段是必选的还是可选的。当某字段为required时,表示该字段为必选字段;当某字段为optional时,表示该字段为可选字段。接口数据结构中包含多个组成项,每个组成项中不仅包含关键字段信息还包含关键字段的数据类型,并且每个组成项可用required和optional表征该组成项为必选项还是可选项。示例性的,接口数据结构中包括成员信息组成项和成员性别组成项,而成员信息组成项的关键字required,则表示成员信息组成项为必选项,成员性别组成项的关键字为optional,则表示成员性别组成项为可选项。
具体的,通过解析接口数据结构的各个组成项,不仅可以确定各个组成项是必选项还是可选项,还可以确定各个组成项的数据类型。针对接口数据结构中的每个组成项,判断组成项是否为可选项。当组成项为可选项时,生成一个随机数,并进一步判断该随机数是否大于预设阈值。示例性的,生成0-1之间的一个随机数,并进一步判断随机数是否大于0.5。当随机数大于预设阈值时,进一步根据组成项的数据类型确定结果返回函数。示例性的,当组成项的数据类型为byte(有符号字节)型时,结果返回函数为能够返回0-255的随机整数的函数;当组成项的数据类型为i16(16位有符号整数)型时,结果返回函数为能够返回-32768到32767的随机整数的函数;当组成项的数据类型为i32(32位有符号整数)型时,结果返回函数为能够返回-2147483648到2147483647的随机整数的函数;当组成项的数据类型为i64(64位有符号整数)型时,结果返回函数为能够返回-9223372036854775808到9223372036854775807的随机整数的函数;当组成项的数据类型为double(64位浮点数)型时,结果返回函数为能够返回-1.7*10(-308)到1.7*10(308)的随机数的函数;当组成项的数据类型为string(字符串)型时,结果返回函数为能够返回某固定范围的随机字符串的函数,其中,固定范围可由用户根据需求进行设定;当组成项的数据类型为bool(布尔变量)型时,结果返回函数为能够返回true或者false的函数。可选的,当随机数小于预设阈值时,结果返回函数为不做任何操作的函数。可选的,当接口数据结构的组成项为必选型时,可直接根据组成项的数据类型确定结果返回函数。
步骤140,调用并运行所述接口模拟代码以进行接口模拟。
在本公开实施例中,当接口模拟代码生成后,调用并运行该接口模拟代码以对接口进行模拟。示例性的,当基于创建的后台代码模板和接口配置数据生成接口模拟代码时,也即在后台代码模板中生成接口模拟代码时,可通过启动后台代码模板中的node命令,来调用并运行接口模拟代码从而进行接口模拟。
可选的,调用所述接口模拟代码以进行接口模拟,包括:当接收到接口模拟请求时,对所述接口模拟请求进行解析,获取待模拟接口的端口号;从所述接口模拟代码中调用并运行与所述端口号对应的目标接口模拟代码以进行接口模拟。示例性的,当前端可发需要对某个未开发或正处于开发中的接口进行模拟时,可通过终端向服务器发送接口模拟请求,接口模拟请求中可携带待模拟接口的端口号。通过对接口模拟请求进行解析,获取待模拟接口的端口号,并从接口模拟代码中调用包含该端口号的目标接口模拟代码,然后运行该目标接口代码,从而实现对目标接口(接口名称与端口号相同的接口)的模拟。
可选的,在运行接口模拟代码进行接口模拟的过程中,可以通过调用结果返回函数来返回接口模拟的数据。示例性的,通过调用结果返回函数来返回接口模拟的数据包括:预先创建一个空的json对象,并将该空的json对象设为empty;读取传入的接口数据结构,针对该接口数据结构中的每个组成项,将组成项输入结果返回函数,得到生成结果data,将组成项设为ITME,并将ITEM对应的属性名作为键,data作为值,插入到empty中,从而生成接口模拟的返回数据。
本公开实施例提供的接口模拟方法,获取后台接口定义文件,并解析后台接口定义文件,获取接口配置数据,其中,接口配置数据包括接口数据结构、接口名称及接口请求方式,然后根据接口配置数据生成对应的接口模拟代码,最后调用并运行接口模拟代码以进行接口模拟。本公开实施例提供的接口模拟方法,有效解决了前端开发人员花费大量时间去重复编写模拟接口代码的技术问题,可以基于后台接口定义文件自动生成接口模拟代码,实现接口模拟,大大提高了前端开发效率。
图2是本公开另一实施例中的一种接口模拟方法的流程图,作为对上述实施例的进一步解释,如图2所示,该方法包括如下步骤:
步骤210,获取后台接口定义文件。
步骤220,解析所述后台接口定义文件中的至少一个接口请求方法,获取与接口请求方法对应的接口配置数据,其中,所述接口配置数据包括接口数据结构、接口名称及接口请求方式。
步骤230,获取预先创建的后台代码模板。
步骤240,基于所述接口数据结构确定结果返回函数。
可选的,基于所述接口数据结构确定结果返回函数,包括:解析所述接口数据结构的各个组成项,并针对每个组成项,判断所述组成项是否为可选项;当所述组成项为可选项时,生成一个随机数,并当随机数大于预设阈值时,根据所述组成项的数据类型确定结果返回函数;当所述组成项为必选项时,根据所述组成项的数据类型确定结果返回函数。
步骤250,基于所述后台代码模板和所述接口名称生成路由声明代码。
其中,所述路由声明代码中包含所述接口名称。
步骤260,根据所述路由声明代码和所述接口请求方式生成路由处理代码。
其中,所述路由处理代码中包含所述接口请求方式。
步骤270,根据所述路由处理代码和所述结果返回函数生成接口模拟代码。
步骤280,当接收到接口模拟请求时,对所述接口模拟请求进行解析,获取待模拟接口的端口号。
步骤290,从所述接口模拟代码中调用并运行与所述端口号对应的目标接口模拟代码以进行接口模拟。
本公开实施例,通过后台接口定义文件确定接口数据结构、接口名称及接口请求方式等接口配置数据,然后根据接口配置数据和预先创建的后台代码模板生成接口模拟代码,最后调用并运行接口模拟代码以进行接口模拟。本公开实施例提供的接口模拟方法,有效解决了前端开发人员花费大量时间去重复编写模拟接口代码的技术问题,可以基于后台接口定义文件自动生成接口模拟代码,实现接口模拟,大大提高了前端开发效率。
图3为本公开另一实施例提供的一种接口模拟装置的结构示意图。如图3所示,该装置包括:接口定义文件获取模块310,接口配置数据获取模块320、接口模拟代码生成模块330和接口模拟模块340。
接口定义文件获取模块310,用于获取后台接口定义文件;
接口配置数据获取模块320,用于解析所述后台接口定义文件,获取接口配置数据;其中,所述接口配置数据包括接口数据结构、接口名称及接口请求方式;
接口模拟代码生成模块330,用于根据所述接口配置数据生成对应的接口模拟代码;
接口模拟模块340,用于调用并运行所述接口模拟代码以进行接口模拟。
本公开实施例提供的接口模拟装置,获取后台接口定义文件,并解析后台接口定义文件,获取接口配置数据,其中,接口配置数据包括接口数据结构、接口名称及接口请求方式,然后根据接口配置数据生成对应的接口模拟代码,最后调用并运行接口模拟代码以进行接口模拟。本公开实施例提供的接口模拟方法,有效解决了前端开发人员花费大量时间去重复编写模拟接口代码的技术问题,可以基于后台接口定义文件自动生成接口模拟代码,实现接口模拟,大大提高了前端开发效率。
可选的,所述后台接口定义文件中包括至少一个接口请求方法;
所述接口配置数据获取模块,用于:
解析所述后台接口定义文件中的至少一个接口请求方法,获取与接口请求方法对应的接口配置数据;其中,一个接口请求方法对应一个接口。
可选的,所述接口模拟代码生成模块,包括:
代码模板获取单元,用于获取预先创建的后台代码模板;
接口模拟代码生成单元,用于根据所述接口配置数据和所述后台代码模板生成对应的接口模拟代码。
可选的,接口模拟代码生成单元,包括:
返回函数确定子单元,用于基于所述接口数据结构确定结果返回函数;
路由声明代码生成子单元,用于基于所述后台代码模板和所述接口名称生成路由声明代码;其中,所述路由声明代码中包含所述接口名称;
路由处理代码生成子单元,用于根据所述路由声明代码和所述接口请求方式生成路由处理代码;其中,所述路由处理代码中包含所述接口请求方式;
接口模拟代码生成子单元,用于根据所述路由处理代码和所述结果返回函数生成接口模拟代码。
可选的,所述返回函数确定子单元,用于:
解析所述接口数据结构的各个组成项,并针对每个组成项,判断所述组成项是否为可选项;
当所述组成项为可选项时,生成一个随机数,并当随机数大于预设阈值时,根据所述组成项的数据类型确定结果返回函数;
当所述组成项为必选项时,根据所述组成项的数据类型确定结果返回函数。
可选的,所述接口模拟模块,用于:
当接收到接口模拟请求时,对所述接口模拟请求进行解析,获取待模拟接口的端口号;
从所述接口模拟代码中调用并运行与所述端口号对应的目标接口模拟代码以进行接口模拟。
上述装置可执行本公开前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本公开实施例中详尽描述的技术细节,可参见本公开前述所有实施例所提供的方法。
下面参考图4,其示出了适于用来实现本公开实施例的电子设备300的结构示意图。本公开实施例中的电子设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端,或者各种形式的服务器,如独立服务器或者服务器集群。图4示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图4所示,电子设备300可以包括处理装置(例如中央处理器、图形处理器等)301,其可以根据存储在只读存储装置(ROM)302中的程序或者从存储装置305加载到随机访问存储装置(RAM)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有电子设备300操作所需的各种程序和数据。处理装置301、ROM 302以及RAM 303通过总线304彼此相连。输入/输出(I/O)接口305也连接至总线304。
通常,以下装置可以连接至I/O接口305:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置306;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置307;包括例如磁带、硬盘等的存储装置308;以及通信装置309。通信装置309可以允许电子设备300与其他设备进行无线或有线通信以交换数据。虽然图4示出了具有各种装置的电子设备300,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行词语的推荐方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置309从网络上被下载和安装,或者从存储装置305被安装,或者从ROM 302被安装。在该计算机程序被处理装置301执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取后台接口定义文件;解析所述后台接口定义文件,获取接口配置数据;其中,所述接口配置数据包括接口数据结构、接口名称及接口请求方式;根据所述接口配置数据生成对应的接口模拟代码;调用并运行所述接口模拟代码以进行接口模拟。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑设备(CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开实施例的一个或多个实施例,本公开实施例提供了一种接口模拟方法,包括:
获取后台接口定义文件;
解析所述后台接口定义文件,获取接口配置数据;其中,所述接口配置数据包括接口数据结构、接口名称及接口请求方式;
根据所述接口配置数据生成对应的接口模拟代码;
调用并运行所述接口模拟代码以进行接口模拟。
进一步地,所述后台接口定义文件中包括至少一个接口请求方法;
解析所述后台接口定义文件,获取接口配置数据,包括:
解析所述后台接口定义文件中的至少一个接口请求方法,获取与接口请求方法对应的接口配置数据;其中,一个接口请求方法对应一个接口。
进一步地,根据所述接口配置数据生成对应的接口模拟代码,包括:
获取预先创建的后台代码模板;
根据所述接口配置数据和所述后台代码模板生成对应的接口模拟代码。
进一步地,根据所述接口配置数据和所述后台代码模板生成对应的接口模拟代码,包括:
基于所述接口数据结构确定结果返回函数;
基于所述后台代码模板和所述接口名称生成路由声明代码;其中,所述路由声明代码中包含所述接口名称;
根据所述路由声明代码和所述接口请求方式生成路由处理代码;其中,所述路由处理代码中包含所述接口请求方式;
根据所述路由处理代码和所述结果返回函数生成接口模拟代码。
进一步地,基于所述接口数据结构确定结果返回函数,包括:
解析所述接口数据结构的各个组成项,并针对每个组成项,判断所述组成项是否为可选项;
当所述组成项为可选项时,生成一个随机数,并当随机数大于预设阈值时,根据所述组成项的数据类型确定结果返回函数;
当所述组成项为必选项时,根据所述组成项的数据类型确定结果返回函数。
进一步地,调用所述接口模拟代码以进行接口模拟,包括:
当接收到接口模拟请求时,对所述接口模拟请求进行解析,获取待模拟接口的端口号;
从所述接口模拟代码中调用并运行与所述端口号对应的目标接口模拟代码以进行接口模拟。
注意,上述仅为本公开的较佳实施例及所运用技术原理。本领域技术人员会理解,本公开不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本公开的保护范围。因此,虽然通过以上实施例对本公开进行了较为详细的说明,但是本公开不仅仅限于以上实施例,在不脱离本公开构思的情况下,还可以包括更多其他等效实施例,而本公开的范围由所附的权利要求范围决定。

Claims (10)

1.一种接口模拟方法,其特征在于,包括:
获取后台接口定义文件;
解析所述后台接口定义文件,获取接口配置数据;其中,所述接口配置数据包括接口数据结构、接口名称及接口请求方式;
根据所述接口配置数据生成对应的接口模拟代码;
调用并运行所述接口模拟代码以进行接口模拟。
2.根据权利要求1所述的方法,其特征在于,所述后台接口定义文件中包括至少一个接口请求方法;
解析所述后台接口定义文件,获取接口配置数据,包括:
解析所述后台接口定义文件中的至少一个接口请求方法,获取与接口请求方法对应的接口配置数据;其中,一个接口请求方法对应一个接口。
3.根据权利要求1所述的方法,其特征在于,根据所述接口配置数据生成对应的接口模拟代码,包括:
获取预先创建的后台代码模板;
根据所述接口配置数据和所述后台代码模板生成对应的接口模拟代码。
4.根据权利要求3所述的方法,其特征在于,根据所述接口配置数据和所述后台代码模板生成对应的接口模拟代码,包括:
基于所述接口数据结构确定结果返回函数;
基于所述后台代码模板和所述接口名称生成路由声明代码;其中,所述路由声明代码中包含所述接口名称;
根据所述路由声明代码和所述接口请求方式生成路由处理代码;其中,所述路由处理代码中包含所述接口请求方式;
根据所述路由处理代码和所述结果返回函数生成接口模拟代码。
5.根据权利要求4所述的方法,其特征在于,基于所述接口数据结构确定结果返回函数,包括:
解析所述接口数据结构的各个组成项,并针对每个组成项,判断所述组成项是否为可选项;
当所述组成项为可选项时,生成一个随机数,并当随机数大于预设阈值时,根据所述组成项的数据类型确定结果返回函数;
当所述组成项为必选项时,根据所述组成项的数据类型确定结果返回函数。
6.根据权利要求1所述的方法,其特征在于,调用所述接口模拟代码以进行接口模拟,包括:
当接收到接口模拟请求时,对所述接口模拟请求进行解析,获取待模拟接口的端口号;
从所述接口模拟代码中调用并运行与所述端口号对应的目标接口模拟代码以进行接口模拟。
7.一种接口模拟装置,其特征在于,包括:
接口定义文件获取模块,用于获取后台接口定义文件;
接口配置数据获取模块,用于解析所述后台接口定义文件,获取接口配置数据;其中,所述接口配置数据包括接口数据结构、接口名称及接口请求方式;
接口模拟代码生成模块,用于根据所述接口配置数据生成对应的接口模拟代码;
接口模拟模块,用于调用并运行所述接口模拟代码以进行接口模拟。
8.根据权利要求7所述的装置,其特征在于,所述后台接口定义文件中包括至少一个接口请求方法;
所述接口配置数据获取模块,用于:
解析所述后台接口定义文件中的至少一个接口请求方法,获取与接口请求方法对应的接口配置数据;其中,一个接口请求方法对应一个接口。
9.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理装置;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现如权利要求1-6中任一所述的接口模拟方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理装置执行时实现如权利要求1-6中任一所述的接口模拟方法。
CN202010561293.6A 2020-06-18 2020-06-18 接口模拟方法、装置、设备及存储介质 Pending CN111752644A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010561293.6A CN111752644A (zh) 2020-06-18 2020-06-18 接口模拟方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010561293.6A CN111752644A (zh) 2020-06-18 2020-06-18 接口模拟方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN111752644A true CN111752644A (zh) 2020-10-09

Family

ID=72675538

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010561293.6A Pending CN111752644A (zh) 2020-06-18 2020-06-18 接口模拟方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN111752644A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113138757A (zh) * 2021-05-11 2021-07-20 中国工商银行股份有限公司 前端代码自动生成方法、装置、服务器、系统及介质
CN113922999A (zh) * 2021-09-29 2022-01-11 上加下信息技术成都有限公司 基于路由管理的权限管理配置方法、系统及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107577622A (zh) * 2017-08-01 2018-01-12 广州酷狗计算机科技有限公司 后端接口模拟方法、设备及存储介质
US10089219B1 (en) * 2017-01-20 2018-10-02 Intuit Inc. Mock server for testing
CN109726098A (zh) * 2018-03-16 2019-05-07 平安科技(深圳)有限公司 接口测试方法、装置及计算机可读存储介质
CN109753432A (zh) * 2018-12-21 2019-05-14 瑞庭网络技术(上海)有限公司 一种接口性能测试方法、装置、服务器及系统
CN110489101A (zh) * 2019-07-15 2019-11-22 北京字节跳动网络技术有限公司 接口模拟方法、系统、介质和电子设备
CN111181805A (zh) * 2019-12-25 2020-05-19 航天信息股份有限公司 一种基于测试用例的微服务测试挡板生成方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10089219B1 (en) * 2017-01-20 2018-10-02 Intuit Inc. Mock server for testing
CN107577622A (zh) * 2017-08-01 2018-01-12 广州酷狗计算机科技有限公司 后端接口模拟方法、设备及存储介质
CN109726098A (zh) * 2018-03-16 2019-05-07 平安科技(深圳)有限公司 接口测试方法、装置及计算机可读存储介质
CN109753432A (zh) * 2018-12-21 2019-05-14 瑞庭网络技术(上海)有限公司 一种接口性能测试方法、装置、服务器及系统
CN110489101A (zh) * 2019-07-15 2019-11-22 北京字节跳动网络技术有限公司 接口模拟方法、系统、介质和电子设备
CN111181805A (zh) * 2019-12-25 2020-05-19 航天信息股份有限公司 一种基于测试用例的微服务测试挡板生成方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MONIKAH: "vue使用express mock模拟后台接口数据(新手亲试)", pages 1 - 3, Retrieved from the Internet <URL:https://blog.csdn.net/qq_40072782/article/details/102679609> *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113138757A (zh) * 2021-05-11 2021-07-20 中国工商银行股份有限公司 前端代码自动生成方法、装置、服务器、系统及介质
CN113138757B (zh) * 2021-05-11 2024-03-29 中国工商银行股份有限公司 前端代码自动生成方法、装置、服务器、系统及介质
CN113922999A (zh) * 2021-09-29 2022-01-11 上加下信息技术成都有限公司 基于路由管理的权限管理配置方法、系统及电子设备

Similar Documents

Publication Publication Date Title
CN110457144B (zh) 一种实现前端应用的方法、装置、介质和设备
CN111338623B (zh) 一种开发用户界面的方法、装置、介质和电子设备
CN112684968A (zh) 页面展示方法、装置、电子设备和计算机可读介质
CN111309304B (zh) 一种生成idl文件的方法、装置、介质和电子设备
US11818491B2 (en) Image special effect configuration method, image recognition method, apparatus and electronic device
CN111596991A (zh) 交互操作执行方法、装置和电子设备
CN112631590A (zh) 组件库生成方法、装置、电子设备和计算机可读介质
CN110377273B (zh) 一种数据处理的方法、装置、介质和电子设备
CN111752644A (zh) 接口模拟方法、装置、设备及存储介质
CN111597107A (zh) 信息输出方法、装置和电子设备
CN112416303B (zh) 软件开发工具包热修复方法、装置及电子设备
CN113220281A (zh) 一种信息生成方法、装置、终端设备及存储介质
CN110704050B (zh) 模块初始化方法、装置、电子设备及计算机可读存储介质
CN111857658A (zh) 一种渲染动态组件的方法、装置、介质和电子设备
CN116860286A (zh) 页面动态更新方法、装置、电子设备和计算机可读介质
CN111124541A (zh) 一种配置文件的生成方法、装置、设备及介质
CN113807056B (zh) 一种文档名称序号纠错方法、装置和设备
CN111309323B (zh) 参数初始化方法、装置和电子设备
CN111460020B (zh) 用于解析消息的方法、装置、电子设备和介质
CN112230986A (zh) 项目文件生成方法、装置、电子设备和计算机可读介质
CN113296771A (zh) 页面显示方法、装置、设备和计算机可读介质
CN109669720B (zh) 基于Promise的链式异步请求处理方法、装置及电子设备
CN111753238A (zh) 数据映射方法、装置和电子设备
CN112688863B (zh) 网关数据处理方法、装置及电子设备
CN112346728B (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