1.本公开涉及计算机技术领域,尤其涉及一种文本生成方法、装置、电子设备、存储介质及产品。
背景技术:
2.应用开发过程中,应用程序的前后端开发可能是解耦的。其中,应用程序对应的前端页面负责提供视图,后端服务负责提供相应的内容,前后端之间需要进行对接才可使应用程序正常运行。
3.相关技术中,前端技术人员往往需要根据后端提供的接口文档,定义后端接口涉及的字段类型,创建模拟数据,并编写前端调用后端接口的程序代码,从而完成前后端之间的对接操作。
4.然而,相关技术中,应用前后端开发的对接操作高度依赖人工,应用开发人工成本高、耗时长,后端接口过多时容易出现漏洞,应用开发效率较低。
技术实现要素:
5.本公开提供一种文本生成方法、装置、电子设备、存储介质及产品,以至少解决相关技术中应用前后端开发的对接操作高度依赖人工,应用开发人工成本高、耗时长,后端接口过多时容易出现漏洞,应用开发效率较低的问题。本公开的技术方案如下:
6.根据本公开实施例的第一方面,提供一种文本生成方法,包括:
7.获取目标接口对应的注释文本;
8.基于所述注释文本,确定所述目标接口对应的接口属性信息;
9.对所述接口属性信息进行字符对象化处理,得到所述目标接口对应的字符对象;
10.基于所述字符对象,生成所述目标接口对应的目标文本,所述目标文本用于指示应用程序调用所述目标接口。
11.在示例性实施例中,所述基于所述注释文本,确定所述目标接口对应的接口属性信息,包括:
12.从所述接口属性信息中提取所述目标接口对应的接口地址信息、请求方法信息、接口请求信息以及接口响应信息;其中,所述接口属性信息包括所述接口地址信息、所述请求方法信息、所述接口请求信息以及所述接口响应信息;
13.所述对所述接口属性信息进行字符对象化处理,得到所述目标接口对应的字符对象,包括:
14.对所述接口地址信息、所述请求方法信息、所述接口请求信息以及所述接口响应信息进行所述字符对象化处理,得到所述目标接口对应的字符对象。
15.在示例性实施例中,所述字符对象包括至少一种对象属性信息,所述至少一种对象属性信息用于表征所述接口属性信息,所述基于所述字符对象,生成所述目标接口对应的目标文本,包括:
16.对所述字符对象进行第一递归操作处理,得到所述至少一种对象属性信息对应的数据类型信息;
17.基于所述至少一种对象属性信息以及所述数据类型信息,生成所述目标文本。
18.在示例性实施例中,所述方法还包括:
19.获取运行环境参数信息;
20.根据所述运行环境参数信息,确定目标文件类型;
21.所述基于所述至少一种对象属性信息以及所述数据类型信息,生成所述目标文本,包括:
22.对所述至少一种对象属性信息以及所述数据类型信息进行第二递归操作处理,生成所述目标文件类型对应的目标文本。
23.在示例性实施例中,所述方法还包括:
24.基于所述数据类型信息,生成所述目标接口对应的模拟资源数据,所述模拟资源数据的数据类型与所述数据类型信息相匹配,所述模拟资源数据用于替代所述目标接口对应的实际资源数据进行接口测试。
25.在示例性实施例中,所述方法还包括:
26.基于所述目标文本,发送针对所述目标接口的接口服务请求;
27.拦截所述接口服务请求;
28.若所述接口服务请求对应的目的地址与接口地址信息相匹配,则基于所述模拟资源数据,生成所述目标接口关联的第一响应信息,所述第一响应信息是基于所述模拟资源数据生成的响应信息。
29.在示例性实施例中,所述方法还包括:
30.基于所述目标文本,向所述目标接口对应的服务器发送接口服务请求;
31.接收所述服务器发送的第二响应信息,所述第二响应信息是基于所述目标接口对应的实际资源数据生成的响应信息。
32.在示例性实施例中,所述获取目标接口对应的注释文本,包括:
33.获取目标文档;
34.获取目标正则表达式,所述目标正则表达式用于表征所述目标接口对应的注释文本特征;
35.基于所述目标正则表达式对所述目标文档进行字符匹配处理,得到所述目标文档中与所述目标正则表达式匹配的所述注释文本。
36.根据本公开实施例的第二方面,提供一种文本生成装置,包括:
37.注释文本获取模块,被配置为执行获取目标接口对应的注释文本;
38.接口属性确定模块,被配置为执行基于所述注释文本,确定所述目标接口对应的接口属性信息;
39.字符对象生成模块,被配置为执行对所述接口属性信息进行字符对象化处理,得到所述目标接口对应的字符对象;
40.目标文本生成模块,被配置为执行基于所述字符对象,生成所述目标接口对应的目标文本,所述目标文本用于指示应用程序调用所述目标接口。
41.在示例性实施例中,所述接口属性确定模块,包括:
42.属性信息提取单元,被配置为执行从所述接口属性信息中提取所述目标接口对应的接口地址信息、请求方法信息、接口请求信息以及接口响应信息;其中,所述接口属性信息包括所述接口地址信息、所述请求方法信息、所述接口请求信息以及所述接口响应信息;
43.所述字符对象生成模块,具体被配置为执行对所述接口地址信息、所述请求方法信息、所述接口请求信息以及所述接口响应信息进行所述字符对象化处理,得到所述目标接口对应的字符对象。
44.在示例性实施例中,所述字符对象包括至少一种对象属性信息,所述至少一种对象属性信息用于表征所述接口属性信息,所述目标文本生成模块,包括:
45.数据类型确定单元,被配置为执行对所述字符对象进行第一递归操作处理,得到所述至少一种对象属性信息对应的数据类型信息;
46.目标文本生成单元,被配置为执行基于所述至少一种对象属性信息以及所述数据类型信息,生成所述目标文本。
47.在示例性实施例中,所述装置还包括:
48.环境参数获取模块,被配置为执行获取运行环境参数信息;
49.文件类型确定模块,被配置为执行根据所述运行环境参数信息,确定目标文件类型;
50.所述基于所述目标文本生成单元,具体被配置为执行对所述至少一种对象属性信息以及所述数据类型信息进行第二递归操作处理,生成所述目标文件类型对应的目标文本。
51.在示例性实施例中,所述装置还包括:
52.模拟数据生成模块,被配置为执行基于所述数据类型信息,生成所述目标接口对应的模拟资源数据,所述模拟资源数据的数据类型与所述数据类型信息相匹配,所述模拟资源数据用于替代所述目标接口对应的实际资源数据进行接口测试。
53.在示例性实施例中,所述装置还包括:
54.接口请求发送模块,被配置为执行基于所述目标文本,发送针对所述目标接口的接口服务请求;
55.接口请求拦截模块,被配置为执行拦截所述接口服务请求;
56.第一响应信息生成模块,被配置为执行若所述接口服务请求对应的目的地址与接口地址信息相匹配,则基于所述模拟资源数据,生成所述目标接口关联的第一响应信息,所述第一响应信息是基于所述模拟资源数据生成的响应信息。
57.在示例性实施例中,所述装置还包括:
58.接口请求发送模块,被配置为执行基于所述目标文本,向所述目标接口对应的服务器发送接口服务请求;
59.第二响应信息生成模块,被配置为执行接收所述服务器发送的第二响应信息,所述第二响应信息是基于所述目标接口对应的实际资源数据生成的响应信息。
60.在示例性实施例中,所述注释文本获取模块,包括:
61.目标文档获取模块,被配置为执行获取目标文档;
62.正则表达式获取模块,被配置为执行获取目标正则表达式,所述目标正则表达式用于表征所述目标接口对应的注释文本特征;
63.注释文本匹配模块,被配置为执行基于所述目标正则表达式对所述目标文档进行字符匹配处理,得到所述目标文档中与所述目标正则表达式匹配的所述注释文本。
64.根据本公开实施例的第三方面,提供一种电子设备,包括:处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如上述第一方面中任一项所述的方法。
65.根据本公开实施例的第四方面,提供一种计算机可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行本公开实施例的第一方面中任一所述方法。
66.根据本公开实施例的第五方面,提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本公开实施例的第一方面中任一所述方法。
67.本公开的实施例提供的技术方案至少带来以下有益效果:
68.通过获取目标接口对应的注释文本,可以从注释文本中确定目标接口对应的接口属性信息,通过对接口属性信息进行字符对象化处理,可以得到字符对象,基于该字符对象可以自动生成能够指示应用程序调用目标接口的目标文本,无需人工手动编写对接应用前后端的程序代码,有效降低应用开发成本,缩短应用开发耗时,提高了应用开发的自动化程度,从整体上提升了应用开发效率。
69.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
70.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
71.图1是根据一示例性实施例示出的一种应用环境的示意图。
72.图2是根据一示例性实施例示出的一种文本生成方法的流程图一;
73.图3是根据一示例性实施例示出的一种文本生成方法的流程图二;
74.图4示例性示出了一种注释文本的示意图;
75.图5是根据一示例性实施例示出的一种文本生成方法的流程图三;
76.图6示例性示出了一种目标文本的示意图;
77.图7示例性示出了一种模拟资源数据的示意图;
78.图8示例性示出了一种编辑器执行目标代码的示意图一;
79.图9示例性示出了一种编辑器执行目标代码的示意图二;
80.图10是根据一示例性实施例示出的一种文本生成装置框图;
81.图11是根据一示例性实施例示出的一种用于文本生成的电子设备的框图。
具体实施方式
82.为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
83.需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用
的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
84.需要说明的是,本公开所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
85.请参阅图1,图1是根据一示例性实施例示出的一种应用环境的示意图,如图1所示,该应用环境可以包括终端100和服务器200。
86.终端100可以用于面向任一用户提供榜单数据展示服务。具体的,终端100可以包括但不限于智能手机、台式计算机、平板电脑、笔记本电脑、智能音箱、数字助理、增强现实(augmented reality,ar)/虚拟现实(virtual reality,vr)设备、智能可穿戴设备等类型的电子设备,也可以为运行于上述电子设备的软体,例如应用程序等。可选的,电子设备上运行的操作系统可以包括但不限于安卓系统、ios系统、linux、windows等。
87.在一个可选的实施例中,服务器200可以为终端100提供后台服务。具体的,服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是云服务器。
88.此外,需要说明的是,图1所示的仅仅是本公开提供的一种应用环境,在实际应用中,还可以包括其他应用环境,例如可以包括更多的终端。
89.本说明书实施例中,上述终端100以及服务器200可以通过有线或无线通信方式进行直接或间接地连接,本公开在此不做限制。
90.图2是根据一示例性实施例示出的一种文本生成方法的流程图一,如图2所示,该文本生成方法用于终端电子设备中,包括以下步骤(201~204)。
91.步骤201,获取目标接口对应的注释文本。
92.注释文本用于表征目标接口的接口信息,用于对目标接口作对应的解释说明,程序开发人员可以根据注释文本了解目标接口的相关信息。
93.上述目标接口为应用程序对应的后端接口,用于连接应用程序对应的前端页面,前端页面可通过上述后端接口,调用后端数据或者对后端数据进行相应的操作。
94.接口是一系列抽象方法的声明,是一些方法特征的集合,这些方法都应该是抽象的,需要由具体的类去实现,然后第三方就可以通过这组抽象方法调用,让具体的类执行具体的方法。
95.在示例性实施例中,如图3所示,上述步骤201的实施过程包括如下步骤(2011~2013),图3是根据一示例性实施例示出的一种文本生成方法的流程图二。
96.步骤2011,获取目标文档。
97.上述目标文档包括上述注释文本。可选地,上述目标文档包括但不限于目标接口对应的接口说明文档、代码文档等文本文档。
98.步骤2012,获取目标正则表达式。
99.正则表达式(regular expression)是一种可以用于模式匹配和替换的强有力的工具,是由一系列普通字符和特殊字符组成的能明确描述文本字符的文字匹配模式。
100.目标正则表达式用于表征目标接口对应的注释文本特征。正则表达式是由一个字符序列形成的搜索模式,即当用户在文本中搜索数据时,可以用搜索模式来描述用户要查询的内容。正则表达式可用于所有文本搜索和文本替换的操作。
101.获取上述目标正则表达式和上述目标文档,可以达到如下目的。测试目标文档的某个模式,例如,可以对目标文档中的字符串进行测试,测试该字符串是否存在预设模式,这也被称为数据有效性验证。替换文本,可以在文档中使用正则表达式来标识特定文字,然后可以将其全部搜索出来,或替换成别的文字。查找文本,可以通过正则表达式,从目标文档中获取用户想要的特定部分。
102.可选地,上述目标正则表达式是与注释格式对应的正则表达式。可选地,上述正则表达式为javascript的正则表达式。
103.步骤2013,基于目标正则表达式对目标文档进行字符匹配处理,得到目标文档中与目标正则表达式匹配的注释文本。
104.在本技术实施例中,可通过上述目标正则表达式,对目标文档中的文本内容进行字符匹配处理,找到目标文档中与目标正则表达式匹配的注释文本,比如符合注释格式的注释文本。
105.可选地,上述注释文本为注释代码。
106.通过上述正则表达式对上述目标文档进行字符串匹配,可以自动快速准确地识别出文档中有关后端接口的注释代码,无需人工查找审阅注释代码,降低应用开发成本。
107.步骤202,基于注释文本,确定目标接口对应的接口属性信息。
108.上述注释文本中能够表征目标接口的相关信息,因此获取上述注释文本中的内容字符后,可以从中确定目标接口对应的接口属性信息,比如接口标识(url)、请求方法(method)、请求数据(request),响应数据(response)等属性信息,本技术实施例对此不作限定。
109.在示例性实施例中,如图3所示,上述步骤202可由下述步骤2021替换实施。
110.步骤2021,从接口属性信息中提取目标接口对应的接口地址信息、请求方法信息、接口请求信息以及接口响应信息。
111.其中,接口属性信息包括接口地址信息、请求方法信息、接口请求信息以及接口响应信息。
112.在示例性实施例中,上述接口地址信息用于表征目标接口对应的资源地址。可选地,接口地址信息为目标接口对应的url地址。
113.在示例性实施例中,上述请求方法信息用于表征目标接口对应的请求方法。上述请求方法包括但不限于get、post、head、options、put、patch、delete、trace、connect等方法。
114.其中,get方法用于请求指定的页面信息,并返回实体主体;head方法类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头;post方法用于向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据被包含在请求体中。post请求可能会导致新的资源的建立和/或已有资源的修改;put方法用于从客户端向服务器传送的数据取代指定的文档的内容;delete方法用于请求服务器删除指定的页面;connect方法用于http/1.1协议中预留给能够将连接改为管道方式的代理服务器;options方法允许客户端
查看服务器的性能;trace方法用于回显服务器收到的请求,主要用于测试或诊断;patch方法是对put方法的补充,用来对已知资源进行局部更新。
115.在示例性实施例中,上述接口请求信息用于表征请求数据信息。比如向目标接口发送的请求数据的数据属性、数值、数据格式等。
116.在示例性实施例中,上述接口响应信息用于表征目标接口返回的响应结果。比如目标接口返回的响应数据、数据操作信息等。
117.在一个示例中,如图4所示,其示例性示出了一种注释文本的示意图。图4示出的编辑器界面40中第1行至第18行显示了后端接口对应的一段注释文本。其中,“//@ac-method-ur1;post/demo/url”中表示该后端接口对应的请求方法信息为post方法,后端接口对应的接口地址信息为demo/url;“@ac-request;{"demo":"123"}”表示该后端接口对应的接口请求信息为{"demo":"123"};“@ac-response{"data":{”demo":[{'test":"123"}]},"result":"1","message":"success”}”表示该后端接口对应的接口响应信息为{"data":{”demo":[{'test":"123"}]},"result":"1","message":"success”}。
[0118]
步骤203,对接口属性信息进行字符对象化处理,得到目标接口对应的字符对象。
[0119]
字符对象是可操作对象,上述字符对象化处理用于将接口属性信息转化为编辑器可操作的字符对象。可选地,上述字符对象为javascript对象。
[0120]
在面向对象的编程语言中,例如javascript,对象是包含一些列属性和方法的集合体。一个属性包含属性名和属性值,这个值可以是任意类型的数据,也可以是个函数。这种情况下函数也被称为方法。方法用于定义对象的行为方式。
[0121]
在一种可能的实施方式中,利用javascript json(javascript object notation,基于javascript编程语言的轻量级的数据交换格式)中的json.parse方法实现上述对象化处理,将字符序列形式的接口属性信息还原为可操作的javascript对象,也就是对象的反序列化。其中,json主要用于与服务器进行数据交换,json.parse方法用于将json字符序列转换为对象。
[0122]
在示例性实施例中,字符对象包括至少一种对象属性信息,至少一种对象属性信息用于表征接口属性信息。
[0123]
在示例性实施例中,执行上述步骤2021之后,如图3所示,上述步骤203可由下述步骤2031替换实施。
[0124]
步骤2031,对接口地址信息、请求方法信息、接口请求信息以及接口响应信息进行字符对象化处理,得到目标接口对应的字符对象。
[0125]
上述接口地址信息、请求方法信息、接口请求信息以及接口响应信息可转换为字符对象中的对象属性信息。可选地,至少一种对象属性信息包括地址属性信息、请求方法属性信息、请求数据属性信息以及接口响应属性信息,分别与上述接口地址信息、请求方法信息、接口请求信息以及接口响应信息相对应。
[0126]
通过获取目标接口的接口地址信息、请求方法信息、接口请求信息以及接口响应信息,并对其进行对象化处理,可以自动生成能够表征目标接口各项属性的可操作对象,无需人工编写字符对象,能够降低应用开发成本,缩短应用开发时间,提升应用开发效率。
[0127]
步骤204,基于字符对象,生成目标接口对应的目标文本。
[0128]
目标文本用于指示应用程序调用目标接口。在示例性实施例中,上述目标文本为
调用目标接口的程序代码。
[0129]
上述目标文本包括javascript接口调用代码和typescript接口调用代码。typescript是javascript的一个超集,支持ecmascript 6标准,可以编译成纯javascript,编译出来的javascript可以运行在任何浏览器上。
[0130]
在示例性实施例中,字符对象包括至少一种对象属性信息,至少一种对象属性信息用于表征接口属性信息。
[0131]
在示例性实施例中,可根据不同的程序开发环境中文件类型,执行不同文件类型对应的代码生成操作,以生成上述目标文本。如图5所示,上述方法还包括如下步骤(205~206),以确定程序开发环境中文件类型,图5是根据一示例性实施例示出的一种文本生成方法的流程图三。
[0132]
步骤205,获取运行环境参数信息。
[0133]
在示例性实施例中,可根据electron获取上述运行环境参数信息。上述运行环境参数信息用于表征当前程序开发环境。
[0134]
其中,electron是一种运行环境库,基于electron,可以用前端编程语言写桌面应用。运行环境参数信息包括环境变量(environment variables),环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数。
[0135]
步骤206,根据运行环境参数信息,确定目标文件类型。
[0136]
提供electron的环境变量,述环境变量包括文件类型参数,可以确定当前文件类型。与当前程序开发环境匹配的文件类型为上述目标文件类型,即上述当前文件类型。
[0137]
在程序开发环境中涉及的目标文件类型为typescript类型的情况下,如图3所示,上述步骤204的实施过程包括如下步骤(2041~2042)。
[0138]
步骤2041,对字符对象进行第一递归操作处理,得到至少一种对象属性信息对应的数据类型信息。
[0139]
上述第一递归操作的过程包括遍历字符对象中的各项字符属性信息,以确定每种对象属性信息对应的数据类型,生成字符对象对应的对象类型文本,上述对象类型文本可表征上述至少一种对象属性信息以及数据类型信息。
[0140]
可选地,字符对象中的各项字符字段可表征上述对象属性信息,相应的,数据类型信息用于表征字符字段对应的数据类型。
[0141]
步骤2042,基于至少一种对象属性信息以及数据类型信息,生成目标文本。
[0142]
在生成typescript类型的目标文本的过程中,通过对字符对象进行递归操作,可以确定对象属性信息对应的数据类型,从而才可以根据对象属性信息以及数据类型信息,生成typescript类型的目标文本,实现在typescript环境下自动生成接口调用代码的目标,确保目标文本的正确性。
[0143]
在示例性实施例中,如图5所示,上述步骤2042的实施过程包括如下步骤2042a。
[0144]
步骤2042a,对至少一种对象属性信息以及数据类型信息进行第二递归操作处理,生成目标文件类型对应的目标文本。
[0145]
上述第二递归操作处理的过程包括遍历上述对象类型文本中各项表征字符属性信息的字符字段,并且能够获取确定每种字符字段对应的数据类型,从而可以按照上述数据类型生成上述目标文本。
[0146]
由于上述对象类型文本可表征上述至少一种对象属性信息以及数据类型信息,因此可基于上述对象类型文本中,与目标文本模板关联的字符字段按照字符字段对应的数据类型,添加至目标文本模板中的对应位置上,得到上述目标文本。上述目标文本模板是与目标接口的接口属性信息匹配的文本模板。
[0147]
通过确定当前应用开发环境对应的文件类型,可以生成与当前文件类型匹配的接口调用代码,确保生成代码的正确性,并且能够丰富本公开技术方案的应用场景,在不同环境下均可生成响应的接口调用代码。
[0148]
在一个示例中,如图6所示,其示例性示出了一种目标文本的示意图。图6示出的编辑器界面60中第33行至第35行显示了调用后端接口的一段接口调用代码,即上述目标文本。界面60中第20行至第32行显示了能够表征字符对象中各项属性信息对应的数据类型的类型对象文本。其中,“interface fetchdemourlparam{demo:string;}”表示名为fetchdemourlparam的后端接口(interface)的接口请求信息中的属性字段“demo”的数据类型为字符串类型(string);“interface fetchdemourlres{data:demo:{test:string}[];};result:string;message:string;}”表示名为fetchdemourlres的接口(interface)对应的接口响应信息中的属性字段“demo”的数据类型为数组类型(“[]”表示数组),属性字段“result”和属性字段“message”的数据类型均为字符串类型(string),“demo”数组中包括的数组属性字段“test”的数据类型为字符串类型(string)。
[0149]
上述接口调用代码可根据上述类型对象文本自动生成,比如第33行的代码“export function fetchdemourl(param:fetchdemourlparam):promise《fetchdemourlres”中,“fetchdemourl”、“fetchdemourlparam”、“fetchdemourlres”均是通过识别上述类型对象文本自动填写至预设代码模板中的内容,其余内容均是预设代码模板中的内容。对于第34行的代码页同样如此,“return request.post('/demo/url',param);”中“post()”是根据目标接口对应的请求方法信息对应的post方法确定的方法字段,“/demo/url'”是自动填写的目标接口对应的请求地址,其余内容为代码模板内容。
[0150]
此外,目标代码中“export”语句用于从模块中导出实时绑定的函数、对象或原始值,以便其他程序可以通过import语句使用它们。被导出的绑定值依然可以在本地进行修改。在使用import进行导入时,这些绑定值只能被导入模块所读取,但在export导出模块中对这些绑定值进行修改,所修改的值也会实时地更新。“promise”是进行异步操作的一种解决方案,比传统的处理方法(回调函数/处理事件)更加合理,es6将其写入了语言标准,统一了语法,原生提供了promise。promise可以想象成一个装有各种结果的容器,里面装有某个时间返回来的结果,你可以在需要的时候拿取它并进行一些事件处理。
[0151]
在另一种可能的实施方式中,基于上述字符对象,获取与所述目标接口对应的目标文本模板;将字符对象中与目标文本模板关联的对象属性信息(比如字符字段)添加至上述目标文本模板中的对应位置上,得到上述目标文本。上述目标文本模板是与目标接口的接口属性信息匹配的文本模板。
[0152]
可选地,在目标文本对应的文件类型为javascript类型的情况下执行上述过程,可以直接根据字符对象生成上述目标文本。具体地,可根据electron提供的环境变量,获取当前文件类型,上述环境变量包括文件类型参数。若当前文件类型为javascript类型,则可基于字符对象,生成目标接口对应的目标文本。
[0153]
可选地,生成上述可操作的字符对象后,可以根据接口对应的接口属性信息,比如目标接口涉及的url地址、请求方法、请求信息以及响应信息,确定适用于该目标接口的接口调用代码模板(即上述目标文本模板),再将字符对象中与接口调用代码模板相关的字段填入至接口调用代码模板中,生成上述目标接口对应的接口调用代码。
[0154]
在示例性实施例中,可执行目标文本实现与目标接口的交互操作,从而将应用前后端连接起来,具体过程包括:基于目标文本,向目标接口对应的服务器发送接口服务请求;服务器接口服务请求之后,根据接口服务请求中的请求信息和请求方法,对目标接口在服务中对应的实际资源数据进行相应的操作,生成第二响应信息并发送给终端;终端接收接收服务器发送的第二响应信息,第二响应信息是基于目标接口对应的实际资源数据生成的响应信息。
[0155]
通过执行上述自动生成的目标文本进行接口调用,即可使得前端请求、后端响应,提升了应用程序开发效率。
[0156]
在一些应用场景中,应用前端后端是解耦合同时开发的,目标接口仅是制定了相关的对接规范,但是还不支持调用。在目标接口不支持调用的情况下,可以建立接口代理服务,使用虚拟的接口资源数据模拟接口提供的服务的过程,实现对目标文本的测试。因此,如图5所示,上述方法还包括如下步骤207。
[0157]
步骤207,基于数据类型信息,生成目标接口对应的模拟资源数据。
[0158]
模拟资源数据的数据类型与数据类型信息相匹配,模拟资源数据用于替代目标接口对应的实际资源数据进行接口测试。上述模拟资源数据可以是随机生成的符合数据类型的数据,上述模拟资源数据与上述字符对象中各项字符字段相对应,可作为各项字符字段对应具体的属性数据。
[0159]
在一个示例中,如图7所示,其示例性示出了一种模拟资源数据的示意图。图7所示的代理服务页面70中展示了根据相关属性字段的数据类型生成的模拟资源数据。在上述图6的示例中,数组属性字段“text”的数据类型为字符串,并且数组属性字段“text”对应的字段数据为响应数据。因此,在相关接口为开发完成的情况下,或者在本地设备未与相关接口对应的服务器连接的情况下,可为数组属性字段“text”随机生成符合字符串类型的模拟资源数据,从而使用模拟资源数据代替实际资源数据进行接口测试。
[0160]
代理服务页面70中显示了数组属性字段“text”对应的模拟字段数据。比如,“text”对应的模拟字段数据为“syyh3hizifny7cnzhg9f0zp57ngq3nlryks”等数据。接口代理服务检测到对相关接口的请求之后,可基于模拟资源数据生成响应信息并将其返回给请求方,从而模拟调用相关接口的实际过程,并根据结果来判断自动生成的接口调用代码是否可用。
[0161]
按照上述数据类型生成上述模拟资源数据,能够保证模拟资源数据的准确性和真实性,从而保证接口代理服务的可靠性。
[0162]
在示例性实施例中,基于上述模拟资源数据可以搭建上述接口代理服务。可选地,通过node创建http服务,当用户请求相应接口时,接口代理服务会对请求进行拦截,并将请求的url与之前从注释文本中获取的url匹配,如果匹配成功,则返回随机生成的数据,如果没有匹配,再访问远程服务。因此,如图5所示,上述方法还包括如下步骤(208~210)。
[0163]
步骤208,基于目标文本,发送针对目标接口的接口服务请求。
[0164]
步骤209,拦截接口服务请求。
[0165]
通过上述接口代理服务拦截上述接口服务请求。上述接口代理服务为本地服务。
[0166]
在一个示例中,如图8所示,其示例性示出了一种编辑器执行目标代码的示意图一。图8所示的编辑器界面80中,显示了执行状态提示框81,图8中执行状态提示框81显示的内容为“sernice has been startd om port 3000”,表示已经执行上述接口调用代码,接口调用服务已经在端口3000开启。
[0167]
步骤210,若接口服务请求对应的目的地址与接口地址信息相匹配,则基于模拟资源数据,生成目标接口关联的第一响应信息。
[0168]
第一响应信息是基于模拟资源数据生成的响应信息。模拟资源数据是存储于本地的资源数,用于实现上述接口代理服务,为本地接口代理服务提供数据源支持。
[0169]
在一个示例中,如图9所示,其示例性示出了一种编辑器执行目标代码的示意图二。图9中执行状态提示框81显示的内容更新为“stop server successed”,表示通过执行上述接口调用代码,已经成功获得响应信息并停止服务。
[0170]
通过拦截前端发送的接口服务请求,并根据本地存储的模拟资源数据即可提供模拟实际应用中的接口服务,返回虚拟的响应信息,从而在本地侧即可完成对目标代码的测试工作,无需等待目标接口的服务搭建完成即可实现具有交互效果的测试,降低了应用开发成本和测试成本,提升了应用开发和测试的灵活性。
[0171]
可选地,如图5所示,上述步骤210之后,还包括如下步骤(211~212)。
[0172]
步骤211,若接口服务请求对应的目的地址与接口地址信息不匹配,则继续向目标接口对应的服务器发送接口服务请求。
[0173]
步骤212,接收服务器发送的第二响应信息。
[0174]
第二响应信息是基于目标接口对应的实际资源数据生成的响应信息。
[0175]
综上所述,本公开提供的技术方案,通过获取目标接口对应的注释文本,可以从注释文本中确定目标接口对应的接口属性信息,通过对接口属性信息进行字符对象化处理,可以得到字符对象,基于该字符对象可以自动生成能够指示应用程序调用目标接口的目标文本,无需人工手动编写对接应用前后端的程序代码,有效降低应用开发成本,缩短应用开发耗时,提高了应用开发的自动化程度,从整体上提升了应用开发效率。
[0176]
应用前后端开发场景是本公开提供的技术方案一种典型的应用场景,通过在应用前后端开发场景中应用本公开提供的技术方案,能够极大程度的减少了前端技术人员在与后端对接接口时所用时间,也大大提高了接口代码产出的统一性和正确性,并且前端技术人员缩减了该部分时间后,有更多的精力专注前端页面交互流程,间接减少了漏洞数量,提高了需求前后端交接质量。总之,用更少的时间完成前后端对接,也就有更多的时间去解决其他技术问题,提高整体应用开发效率,降低了应用开发成本。
[0177]
图10是根据一示例性实施例示出的一种文本生成装置框图。参照图10,该装置1000包括:注释文本获取模块1001、接口属性确定模块1002、字符对象生成模块1003、目标文本生成模块1004。
[0178]
注释文本获取模块1001,被配置为执行获取目标接口对应的注释文本;
[0179]
接口属性确定模块1002,被配置为执行基于所述注释文本,确定所述目标接口对应的接口属性信息;
[0180]
字符对象生成模块1003,被配置为执行对所述接口属性信息进行字符对象化处理,得到所述目标接口对应的字符对象;
[0181]
目标文本生成模块1004,被配置为执行基于所述字符对象,生成所述目标接口对应的目标文本,所述目标文本用于指示应用程序调用所述目标接口。
[0182]
在示例性实施例中,所述接口属性确定模块1002,包括:
[0183]
属性信息提取单元,被配置为执行从所述接口属性信息中提取所述目标接口对应的接口地址信息、请求方法信息、接口请求信息以及接口响应信息;其中,所述接口属性信息包括所述接口地址信息、所述请求方法信息、所述接口请求信息以及所述接口响应信息;
[0184]
所述字符对象生成模块1003,具体被配置为执行对所述接口地址信息、所述请求方法信息、所述接口请求信息以及所述接口响应信息进行所述字符对象化处理,得到所述目标接口对应的字符对象。
[0185]
在示例性实施例中,所述字符对象包括至少一种对象属性信息,所述至少一种对象属性信息用于表征所述接口属性信息,所述目标文本生成模块1004,包括:
[0186]
数据类型确定单元,被配置为执行对所述字符对象进行第一递归操作处理,得到所述至少一种对象属性信息对应的数据类型信息;
[0187]
目标文本生成单元,被配置为执行基于所述至少一种对象属性信息以及所述数据类型信息,生成所述目标文本。
[0188]
在示例性实施例中,所述装置1000还包括:
[0189]
环境参数获取模块,被配置为执行获取运行环境参数信息;
[0190]
文件类型确定模块,被配置为执行根据所述运行环境参数信息,确定目标文件类型;
[0191]
所述基于所述目标文本生成单元,具体被配置为执行对所述至少一种对象属性信息以及所述数据类型信息进行第二递归操作处理,生成所述目标文件类型对应的目标文本。
[0192]
在示例性实施例中,所述装置1000还包括:
[0193]
模拟数据生成模块,被配置为执行基于所述数据类型信息,生成所述目标接口对应的模拟资源数据,所述模拟资源数据的数据类型与所述数据类型信息相匹配,所述模拟资源数据用于替代所述目标接口对应的实际资源数据进行接口测试。
[0194]
在示例性实施例中,所述装置1000还包括:
[0195]
接口请求发送模块,被配置为执行基于所述目标文本,发送针对所述目标接口的接口服务请求;
[0196]
接口请求拦截模块,被配置为执行拦截所述接口服务请求;
[0197]
第一响应信息生成模块,被配置为执行若所述接口服务请求对应的目的地址与接口地址信息相匹配,则基于所述模拟资源数据,生成所述目标接口关联的第一响应信息,所述第一响应信息是基于所述模拟资源数据生成的响应信息。
[0198]
在示例性实施例中,所述装置1000还包括:
[0199]
接口请求发送模块,被配置为执行基于所述目标文本,向所述目标接口对应的服务器发送接口服务请求;
[0200]
第二响应信息生成模块,被配置为执行接收所述服务器发送的第二响应信息,所
述第二响应信息是基于所述目标接口对应的实际资源数据生成的响应信息。
[0201]
在示例性实施例中,所述注释文本获取模块1001,包括:
[0202]
目标文档获取模块,被配置为执行获取目标文档;
[0203]
正则表达式获取模块,被配置为执行获取目标正则表达式,所述目标正则表达式用于表征所述目标接口对应的注释文本特征;
[0204]
注释文本匹配模块,被配置为执行基于所述目标正则表达式对所述目标文档进行字符匹配处理,得到所述目标文档中与所述目标正则表达式匹配的所述注释文本。
[0205]
综上所述,本公开提供的技术方案,通过获取目标接口对应的注释文本,可以从注释文本中确定目标接口对应的接口属性信息,通过对接口属性信息进行字符对象化处理,可以得到字符对象,基于该字符对象可以自动生成能够指示应用程序调用目标接口的目标文本,无需人工手动编写对接应用前后端的程序代码,有效降低应用开发成本,缩短应用开发耗时,提高了应用开发的自动化程度,从整体上提升了应用开发效率。
[0206]
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0207]
图11是根据一示例性实施例示出的一种用于文本生成的电子设备的框图,该电子设备可以是终端,其内部结构图可以如图11所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种文本生成方法。该电子设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该电子设备的输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0208]
本领域技术人员可以理解,图11中示出的结构,仅仅是与本公开方案相关的部分结构的框图,并不构成对本公开方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0209]
在示例性实施例中,还提供了一种电子设备,包括:处理器;用于存储该处理器可执行指令的存储器;其中,该处理器被配置为执行该指令,以实现如本公开实施例中的文本生成方法。
[0210]
在示例性实施例中,还提供了一种计算机可读存储介质,当该存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行本公开实施例中的文本生成方法。
[0211]
在示例性实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本公开实施例中的文本生成方法。
[0212]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括
随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0213]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本技术旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0214]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
转载请注明原文地址:https://tc.8miu.com/read-3552.html