一种软件开发方法及装置
技术领域
本发明涉及软件开发
技术领域
,尤其涉及一种软件开发方法及装置。背景技术
随着互联网技术(Internet Tehnology,IT)的飞速发展,开发人员的工作越来越重要,但编写程序代码占用了开发人员的大量时间,因此如何自动化的进行代码生成已成为本领域的研究热点之一。
目前,非常多的互联网软件项目都是基于TypeScript(一种开源的编程语言,通过在JavaScript的基础上添加静态类型定义构建而成)开发的。在基于TypeScript进行软件开发的过程中,集成开发环境(Integrated Development Environment,IDE)能够根据类型定义文件和接口方法调用代码对用户编写的程序代码中定义的接口属性进行校验,从而避免编写程序代码时出现传参错误,进而提升开发人员的开发效率。现有技术中生成类型定义文件和接口方法调用代码的方式为:首先人工手动编写接口描述语言(InterfaceDescription Language,IDL)文件,然后再将编写的IDL文件转成类型定义文件和接口方法调用代码。由于现有技术在生成类型定义文件和接口方法调用代码时,需要人工进行IDL文件的编写,因此现有技术中进行软件开发时的成本高、效率低。
发明内容
有鉴于此,本发明提供了一种软件开发,用于解决现有技术中进行软件开发时的成本高、效率低的问题。
为了实现上述目的,本发明实施例提供技术方案如下:
第一方面,本发明实施例提供了一种软件开发方法,应用于终端设备,所述方法包括:
向服务端设备发送请求信息,所述请求信息用于请求所述服务端设备返回目标数据接口的属性信息;
接收所述服务端设备发送的所述目标数据接口的属性信息,并根据所述属性信息生成预设语法的类型定义文件;
获取所述目标数据接口对应的代码模板;
根据所述类型定义文件和所述代码模板,生成所述目标数据接口的接口方法调用代码。
作为本发明实施例一种可选的实施方式,在生成所述接口方法调用代码之后,所述方法还包括:
通过所述接口方法调用代码从所述类型定义文件中读取第一类型信息和第二类型信息,所述第一类型信息用于表征所述目标数据接口的请求参数的类型,所述第二类型信息用于表征所述目标数据接口的返回参数的类型;
在编写所述目标数据接口的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示。
作为本发明实施例一种可选的实施方式,所述代码模板包括:根据前端的接口请求库中所述目标数据接口对应的信息生成的代码模板;
所述在编写所述目标数据接口的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示,包括:
在编写所述前端的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示。
作为本发明实施例一种可选的实施方式,所述代码模板包括:根据后端的控制层的服务框架生成的代码模板;
所述在编写所述目标数据接口的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示,包括:
在编写所述后端的控制层的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示。
作为本发明实施例一种可选的实施方式,所述代码模板包括:根据所述后端的路由层的服务框架生成的代码模板;
所述方法还包括:
通过所述接口方法调用代码从所述类型定义文件中获取路径信息,所述路径信息用于表征所述目标数据接口的请求路径;
在编写所述后端的路由层的代码的过程中,根据所述路径信息对所述目标数据接口的请求路径进行提示。
作为本发明实施例一种可选的实施方式,所述方法还包括:
在完成前端的代码的编写后,通过所述前端向所述服务端设备发送所述目标数据接口的请求参数;
接收所述服务端设备发送的模拟返回参数;
根据所述第三类型信息和第四类型信息对所述前端进行调试,所述第三类型信息用于表征所述前端的代码定义的所述目标数据接口的返回参数的类型,所述第四类型信息用于表征所述模拟返回参数的类型。
作为本发明实施例一种可选的实施方式,所述方法还包括:
在完成前端的代码和前端的代码的编写后,通过所述前端向所述后端发送所述目标数据接口的请求参数,并通过所述后端向所述前端发送所述目标数据接口的返回参数;
基于所述请求参数的类型、所述返回参数的类型、所述后端的代码定义的所述目标数据接口的请求参数的类型以及所述前端的代码定义的所述目标数据接口的返回参数的类型,对所述前端和所述后端进行联合调试。
作为本发明实施例一种可选的实施方式,所述属性信息为JsonSchema格式的数据;
所述根据所述属性信息生成预设语法的类型定义文件,包括:基于抽象语法树AST将所述属性信息转换为TypeScript语法的类型定义文件。
第二方面,本发明实施例提供了一种软件开发方法,应用于服务端设备,所述方法包括:
获取目标数据接口的属性信息;
接收终端设备发送的请求信息,所述请求信息用于请求所述服务端设备返回目标数据接口的属性信息;
向所述终端设备发送所述目标数据接口的属性信息。
作为本发明实施例一种可选的实施方式,所述方法还包括:
接收所述终端设备通过前端发送的所述目标数据接口的请求参数;
向所述终端设备的所述前端发送所述模拟返回参数。
作为本发明实施例一种可选的实施方式,所述获取目标数据接口的属性信息,包括:
显示属性配置界面,所述属性配置界面包括所述目标数据接口的至少一个属性配置表单;
接收用户对所述至少一个属性配置表单的输入;
根据用户对所述至少一个属性配置表单的输入生成所述目标数据接口的属性信息。
第三方面,本发明实施例提供了一种终端设备,包括:
发送单元,用于向服务端设备发送请求信息,所述请求信息用于请求所述服务端设备返回目标数据接口的属性信息;
接收单元,用于接收所述服务端设备发送的所述目标数据接口的属性信息;
转换单元,用于根据所述属性信息生成预设语法的类型定义文件;
获取单元,用于获取所述目标数据接口对应的代码模板;
生成单元,用于根据所述类型定义文件和所述代码模板,生成所述目标数据接口的接口方法调用代码。
作为本发明实施例一种可选的实施方式,所述终端设备还包括:
处理单元,用于在生成所述接口方法调用代码之后,通过所述接口方法调用代码从所述类型定义文件中读取第一类型信息和第二类型信息,并在编写所述目标数据接口的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示;
其中,所述第一类型信息用于表征所述目标数据接口的请求参数的类型,所述第二类型信息用于表征所述目标数据接口的返回参数的类型。
作为本发明实施例一种可选的实施方式,所述代码模板包括:根据前端的接口请求库中所述目标数据接口对应的信息生成的代码模板;
所述处理单元,具体用于在编写所述前端的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示。
作为本发明实施例一种可选的实施方式,所述代码模板包括:根据后端的控制层的服务框架生成的代码模板;
所述处理单元,具体用于在编写所述后端的控制层的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示。
作为本发明实施例一种可选的实施方式,所述代码模板包括:根据所述后端的路由层的服务框架生成的代码模板;
所述处理单元,还用于通过所述接口方法调用代码从所述类型定义文件中获取路径信息,所述路径信息用于表征所述目标数据接口的请求路径;在编写所述后端的路由层的代码的过程中,根据所述路径信息对所述目标数据接口的请求路径进行提示。
作为本发明实施例一种可选的实施方式,所述处理单元,还用于在完成前端的代码的编写后,通过所述前端向所述服务端设备发送所述目标数据接口的请求参数;接收所述服务端设备发送的模拟返回参数;根据所述第三类型信息和第四类型信息对所述前端进行调试,所述第三类型信息用于表征所述前端的代码定义的所述目标数据接口的返回参数的类型,所述第四类型信息用于表征所述模拟返回参数的类型。
作为本发明实施例一种可选的实施方式,所述处理单元,还用于在完成前端的代码和前端的代码的编写后,通过所述前端向所述后端发送所述目标数据接口的请求参数,并通过所述后端向所述前端发送所述目标数据接口的返回参数;基于所述请求参数的类型、所述返回参数的类型、所述后端的代码定义的所述目标数据接口的请求参数的类型以及所述前端的代码定义的所述目标数据接口的返回参数的类型,对所述前端和所述后端进行联合调试。
作为本发明实施例一种可选的实施方式,所述属性信息为JsonSchema格式的数据;
所述根据所述属性信息生成预设语法的类型定义文件,包括:基于抽象语法树AST将所述属性信息转换为TypeScript语法的类型定义文件。
第四方面,本发明实施例提供一种服务端设备,包括:
获取单元,用于获取目标数据接口的属性信息;
接收单元,用于接收终端设备发送的请求信息,所述请求信息用于请求所述服务端设备返回目标数据接口的属性信息;
发送单元,用于向所述终端设备发送所述目标数据接口的属性信息。
作为本发明实施例一种可选的实施方式,
所述接收单元,还用于接收所述终端设备通过前端发送的所述目标数据接口的请求参数;
所述发送单元,还用于向所述终端设备的所述前端发送所述模拟返回参数。
作为本发明实施例一种可选的实施方式,所述获取单元,具体用于显示属性配置界面,所述属性配置界面包括所述目标数据接口的至少一个属性配置表单;接收用户对所述至少一个属性配置表单的输入;根据用户对所述至少一个属性配置表单的输入生成所述目标数据接口的属性信息。
第五方面,本发明实施例提供一种电子设备,包括:存储器和处理器,所述存储器用于存储计算机程序;所述处理器用于在调用计算机程序时,使得所述电子设备执行上述任一实施方式所述的软件开发方法。
第六方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被计算设备执行时,使得所述计算设备实现上述任一实施方式所述的软件开发方法。
第七方面,本发明实施例提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述任一实施方式所述的软件开发方法。
本发明实施例提供的软件开发方法包括:终端设备向服务端设备发送用于请求所述服务端设备返回目标数据接口的属性信息的请求信息,并接收所述服务端设备发送的所述目标数据接口的属性信息,根据所述属性信息生成预设语法的类型定义文件,并根据所述类型定义文件和所述目标数据接口对应的代码模板生成所述目标数据接口的接口方法调用代码。相比于现有技术中在进行软件开发时,需要人工进行IDL文件的编写,本发明实施例提供的软件开发方法中,终端设备可以从服务端设备获取数据接口的属性信息并根据接口的属性信息和对应的代码模板自动生成数据接口的接口方法调用代码,无需人工进行IDL文件的编写,因此本发明实施例提供的软件开发方法可以在进行软件开发时降低成本并提升效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的软件开发方法的架构图;
图2为本发明实施例提供的软件开发方法的交互流程图之一;
图3为本发明实施例提供的软件开发方法的交互流程图之二;
图4为本发明实施例提供的软件开发方法的交互流程图之三;
图5为本发明实施例提供的软件开发方法的交互流程图之四;
图6为本发明实施例提供的属性配置界面的示意图;
图7为本发明实施例提供的终端设备的结构示意图之一;
图8为本发明实施例提供的终端设备的结构示意图之二;
图9为本发明实施例提供的服务端设备的结构示意图;
图10为本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面将对本发明的方案进行进一步描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但本发明还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本发明的一部分实施例,而不是全部的实施例。
在本发明实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本发明实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。此外,在本发明实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
以下首先对本发明实施例提供的软件开发方法的场景架构进行说明。
参照图1所示,本发明实施例提供的软件开发方法的一种可能的场景架构包括:第一终端设备11、服务端设备12以及第二终端设备13。其中,服务端设备12可以通过用户输入单元接收用户输入的数据接口的请求路径(path)、请求方法(method)、请求参数(reqParam)、返回参数(resParam)等属性信息,第一终端设备11和第二终端设备13均可以与服务端设备12进行数据传输。
软件的开发准备阶段:
第一终端设备11和第二终端设备13均可以通过向服务端设备12对外开放的接口(openApi)从向服务端设备12获取数据接口的属性信息,然后将数据接口的属性信息转换为类型定义文件(TypeScript语法的类型定义文件),再根据类型定义文件和相应的代码模板生成数据接口的接口方法调用代码。
软件的代码编写阶段:
在编写前端110的代码的过程中,第一终端设备11可以通过相应的接口方法调用代码从类型定义文件中读取数据接口的请求参数的类型和返回参数的类型,并根据请求参数的类型和返回参数的类型进行提示。
在编写后端130的代码的过程中,第二终端设备13可以通过相应的接口方法调用代码从所述类型定义文件中读取数据接口的请求参数的类型和返回参数的类型,并根据请求参数的类型和返回参数的类型进行提示。
在软件的调试阶段:
在第一终端设备11完成前端110的开发后,第一终端设备11还可以通过前端110向数据管理设备12发送请求参数,并接收数据管理设备12发送的模拟返回参数(mock数据),并根据前端的代码定义的数据接口的返回参数的类型和数据管理设备12发送的模拟返回参数的类型对前端进行调试。
在第一终端设备11完成前端110的开发且第二终端设备13完成后端130的开发后,第一终端设备11还可以通过前端110向后端130发送请求参数,并接收后端130发送的返回参数,第一终端设备11根据前端的代码定义的返回参数类型和后端130发送的返回参数类型对前端110和后端130进行联合调试,第二终端设备13根据后端130的代码定义的请求参数类型和前端发送的请求参数类型对前端110和后端130进行联合调试。
需要说明的是,上述场景架构仅为本发明实施例一种可能的场景架构,但本发明实施例并不限定与此,本发明实施例的场景架构还可仅包括一个终端设备,该终端设备可以用于实现上述第一终端设备的相关功能,也可以用于实现上述第二终端设备的相关功能,还可以用于同时实现上述第一终端设备和第二终端设备的相关功能。
在上述内容的基础上,本发明实施例提供了一种软件开发方法,参照图2所示,本发明实施例提供的软件开发方法包括如下步骤S21至S25:
S21、服务端设备获取目标数据接口的属性信息。
可选的,目标数据接口的属性信息可以包括:目标数据接口的请求路径(path)、请求方法(method)、请求参数(reqParam)、返回参数(resParam)等属性以及对应的属性值。
S22、终端设备向服务端设备发送请求信息。
对应的,服务端设备接收终端设备发送的请求信息。
其中,所述请求信息用于请求所述服务端设备返回目标数据接口的属性信息。
S23、服务端设备向终端设备发送所述目标数据接口的属性信息。
对应的,终端设备接收服务端设备发送的所述目标数据接口的属性信息。
示例性的,终端设备可以通过向服务端设备对外开放的接口(openApi),以超文本传输协议(HyperText Transfer Protocol,HTTP)接口请求的形式获取目标数据接口的属性信息。
S24、终端设备根据所述属性信息生成预设语法的类型定义文件。
可选的,所述属性信息为json schema格式的数据;
将属性信息转换为预设语法的类型定义文件包括:将json schema格式的属性信息转为TypeScript语法的类型定义文件。
即,本发明实施例中的类型定义文件可以为TypeScript格式的类型定义文件。
S25、终端设备根据所述类型定义文件和代码模板,生成所述目标数据接口的接口方法调用代码。
具体的,开发人员可以根据所述目标数据接口的信息编写所述代码模板,并将代码模板封装于终端设备的请求库中,以便终端设备在生成接口方法调用代码时,从而内部封装的请求库中读取代码模板。
本发明实施例提供的软件开发方法包括:终端设备向服务端设备发送用于请求所述服务端设备返回目标数据接口的属性信息的请求信息,并接收所述服务端设备发送的所述目标数据接口的属性信息,根据所述属性信息生成预设语法的类型定义文件,并根据所述类型定义文件和所述目标数据接口对应的代码模板生成所述目标数据接口的接口方法调用代码。相比于现有技术中在进行软件开发时,需要人工进行IDL文件的编写,本发明实施例提供的软件开发方法中,终端设备可以从服务端设备获取数据接口的属性信息并根据接口的属性信息和对应的代码模板自动生成数据接口的接口方法调用代码,无需人工进行IDL文件的编写,因此本发明实施例提供的软件开发方法可以在进行软件开发时降低成本并提升效率。
还需要说明的是,由于第一终端设备和第二终端设备均可以根据从向服务端设备获取的数据接口的属性信息进行根据后端的控制层的服务框架生成的代码模板的生成,因此上述实施例提供的软件开发方法还可以避免人工编写接口文档,且避免前端所使用的类型定义文件与后端所使用的类型定义文件不同。
作为本发明实施例一种可选的实施方式,当所述属性信息为JsonSchema格式的数据的情况下,上述步骤S24(第一终端设备根据所述属性信息生成预设语法的类型定义文件)包括:
基于抽象语法树(Abstract Syntax Tree,AST)将所述属性信息转换为TypeScript语法的类型定义文件。
其中,抽象语法树源代码语法结构的一种抽象表示,其可以以树状的形式表现编程语言的语法结构,树上的每个节点都表示源代码中的一种结构。基于AST将所述属性信息转换为TypeScript语法的类型定义文件的实现方式可以为:根据目标数据接口的各个参数生成抽象语法树,遍历所述抽象语法树,获取抽象语法树的各个节点对应的参数以及参数的类型,根据抽象语法树的各个节点对应的参数以及参数的类型将所述属性信息转换为TypeScript语法的类型定义文件。
作为本发明实施例一种可选的实施方式,参照图3所示,在上述步骤S25(生成所述目标数据接口的接口方法调用代码)之后,所述方法还包括如下步骤S31和S32:
S31、通过所述接口方法调用代码从所述类型定义文件中读取第一类型信息和第二类型信息。
其中,所述第一类型信息用于表征所述目标数据接口的请求参数的类型,所述第二类型信息用于表征所述目标数据接口的返回参数的类型。
S32、在编写所述目标数据接口的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示。
即,由于在编写目标数据接口的代码的过程中,终端设备可以通过接口方法调用代码从所述类型定义文件中读取用于表征所述目标数据接口的请求参数的类型的第一类型信息和用于所述目标数据接口的返回参数的类型的第二类型信息,并根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示,因此上述实施例可以减少或避免编写目标数据接口的代码的过程中出现传参类型错误,进而提升目标数据接口的开发效率。
进一步的,上述实施例提供的软件开发方法的应用场景可以包括如下两种:
应用场景一、
所述代码模板包括:根据前端的接口请求库中所述目标数据接口对应的信息生成的代码模板。
上述步骤S32(在编写所述目标数据接口的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示)包括:
在编写所述前端的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示。
上述实施例可以减少或避免编写前端的代码的过程中出现传参类型错误,进而提升前端的开发效率。
应用场景二、
所述代码模板包括:根据后端的控制层的服务框架生成的代码模板。
上述步骤S32(在编写所述目标数据接口的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示)包括:
在编写所述后端的控制层的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示。
上述实施例可以减少或避免编写后端的控制层的代码的过程中出现传参类型错误,进而提升后端的开发效率。
作为本发明实施例一种可选的实施方式,所述代码模板包括:根据所述后端的路由层的服务框架生成的代码模板。参照图4所示,在上述步骤S25(生成所述目标数据接口的接口方法调用代码)之后,本发明实施例提供的软件开发方法方法还包括如下步骤S41和S42:
S41、通过所述接口方法调用代码从所述类型定义文件中获取路径信息。
其中,所述路径信息用于表征所述目标数据接口的请求路径。
S42、在编写所述后端的路由层的代码的过程中,根据所述路径信息对所述目标数据接口的请求路径进行提示。
由于上述实施例提供的软件开发方法还可以进一步根据所述类型定义文件和根据所述后端的路由层的服务框架生成的代码模板,生成所述目标数据接口的口方法调用代码,并在编写后端的路由层的代码的过程中,通过接口方法调用代码从所述类型定义文件中获取路径信息,并根据所述路径信息对所述目标数据接口的请求路径进行提示,因此上述实施例可还以减少或避免编写后端的代码的过程出现传参路径错误,进而进一步提升后端的开发效率。
进一步的,参照图5所示,当终端设备完成前端的开发后,本发明实施例提供的方法还包括:
S501、终端设备通过所述前端向所述服务端设备发送所述目标数据接口的请求参数。
对应的,服务端设备接收所述终端设备发送的所述目标数据接口的请求参数。
S502、服务端设备向所述终端设备发送模拟返回参数(mock数据)。
对应的,终端设备接收所述服务端设备发送的模拟返回参数。
S503、终端设备根据所述第三类型信息和第四类型信息对所述前端进行调试。
其中,所述第三类型信息用于表征所述前端的代码定义的所述目标数据接口的返回参数的类型,所述第四类型信息用于表征所述模拟返回参数的类型。
即,终端设备收到服务端设备发送的模拟返回参数后,比较模拟返回参数的类型(第四类型信息)与前端的代码定义的目标数据接口的返回参数的类型(第三类型信息)是否相同;若第三类型信息与第四类型信息相同,则确定的目标数据接口的返回参数的类型正确,而若第三类型信息与第四类型信息不同,则确定目标数据接口的返回参数的类型错误。
具体的,数据接口层代码生成工具(ug-cli)的服务命令包括:模拟数据开启(ugservice mock start)命令,可以通过执行ug-cli的ug service mock start命令,从而控制前端向服务端设备发送所述目标数据接口的请求参数以及接收所述服务端设备发送的模拟返回参数。
由于终端设备可以通过前端从服务端设备处获取模拟返回参数,并根据模拟返回参数的类型和前端的代码定义的所述目标数据接口的返回参数的类型对前端进行调试,因此上述实施例提供的软件开发方法,可以避免前端开发进度与依赖后端开发进度相互依赖,进而提升前端的开发效率。
作为本发明实施一种可选的实施方式,终端设备完成前端和后端的开发之后,本发明实施例提供的软件开发方法还包括:
在完成前端的代码和前端的代码的编写后,通过所述前端向所述后端发送所述目标数据接口的请求参数,并通过所述后端向所述前端发送所述目标数据接口的返回参数;
基于所述请求参数的类型、所述返回参数的类型、所述后端的代码定义的所述目标数据接口的请求参数的类型以及所述前端的代码定义的所述目标数据接口的返回参数的类型,对所述前端和所述后端进行联合调试。
即,在终端设备完成前端和后端的开发之后,终端设备可以不在使用模拟响应参数,而是获取真实的后端生成的响应参数,从而实现前端和后端的联合调试。
具体的,数据接口层代码生成工具(ug-cli)的服务命令还包括:模拟数据关闭(ugservice mock end)命令,可以通过执行ug-cli的ug service mock end命令,从而向接口后端发送所述目标数据接口的请求参数以及接收所述后端发送的真实返回参数。
进一步的,以下对服务端设备获取目标数据接口的属性信息的实现方式进行说明,服务端设备获取目标数据接口的属性信息的实现方式可以包括如下步骤:
步骤Ⅰ、显示属性配置界面。
其中,所述属性配置界面包括所述目标数据接口的至少一个属性配置表单。
示例性的,参照图6所示,图6中以属性配置界面包括:基本信息设置61、请求参数设置62以及返回参数设置63三个标签为例示出。其中,基本信息设置可以包括:用于设置数据接口的名称的表单、用于设置数据接口的分类的表单、用于设置数据接口的请求路径的表单、用于设置数据接口的状态的表单以及用于设置数据接口的标识的表单,请求参数设置可以包括:用于设置请求参数的值的表单、用于设置请求参数的请求头字段以及用于设置请求参数的类型的的表单,返回参数设置可以包括:用于设置返回参数的值的表单、用于设置返回参数的请求头字段以及用于设置返回参数的类型的的表单。
步骤Ⅱ、接收用户对所述至少一个属性配置表单的输入。
步骤Ⅲ、根据用户对所述至少一个属性配置表单的输入生成所述目标数据接口的属性信息。
相比于编写类型定义文件,在属性配置界面中填写数据接口的属性信息对开发人员的专业技能要求较低,且可以可视化对数据接口的属性进行配置。
基于同一发明构思,作为对上述方法的实现,本发明实施例还提供了一种终端设备及服务端设备,该终端设备及服务端设备实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的终端设备及服务端设备能够对应实现前述方法实施例中的全部内容。
图7为本发明实施例提供的一种终端设备的结构示意图,如图7所示,本实施例提供的终端设备700包括:
发送单元71,用于向服务端设备发送请求信息,所述请求信息用于请求所述服务端设备返回目标数据接口的属性信息;
接收单元72,用于接收所述服务端设备发送的所述目标数据接口的属性信息;
转换单元73,用于根据所述属性信息生成预设语法的类型定义文件;
获取单元74,用于获取所述目标数据接口对应的代码模板;
生成单元75,用于根据所述类型定义文件和所述代码模板,生成所述目标数据接口的接口方法调用代码;
作为本发明实施例一种可选的实施方式,参照图8所示,所述终端设备700还包括:
处理单元76,用于在生成所述接口方法调用代码之后,通过所述接口方法调用代码从所述类型定义文件中读取第一类型信息和第二类型信息,并在编写所述目标数据接口的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示;
其中,所述第一类型信息用于表征所述目标数据接口的请求参数的类型,所述第二类型信息用于表征所述目标数据接口的返回参数的类型。
作为本发明实施例一种可选的实施方式,所述代码模板包括:根据前端的接口请求库中所述目标数据接口对应的信息生成的代码模板;
所述处理单元76,具体用于在编写所述前端的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示。
作为本发明实施例一种可选的实施方式,所述代码模板包括:根据后端的控制层的服务框架生成的代码模板;
所述处理单元76,具体用于在编写所述后端的控制层的代码的过程中,根据所述第一类型信息和所述第二类型信息对所述目标数据接口的请求参数的类型和所述目标数据接口的返回参数的类型进行提示。
作为本发明实施例一种可选的实施方式,所述代码模板包括:根据所述后端的路由层的服务框架生成的代码模板;
所述处理单元76,还用于通过所述接口方法调用代码从所述类型定义文件中获取路径信息,所述路径信息用于表征所述目标数据接口的请求路径;在编写所述后端的路由层的代码的过程中,根据所述路径信息对所述目标数据接口的请求路径进行提示。
作为本发明实施例一种可选的实施方式,所述处理单元76,还用于在完成前端的代码的编写后,通过所述前端向所述服务端设备发送所述目标数据接口的请求参数;接收所述服务端设备发送的模拟返回参数;根据所述第三类型信息和第四类型信息对所述前端进行调试,所述第三类型信息用于表征所述前端的代码定义的所述目标数据接口的返回参数的类型,所述第四类型信息用于表征所述模拟返回参数的类型。
作为本发明实施例一种可选的实施方式,所述处理单元76,还用于在完成前端的代码和前端的代码的编写后,通过所述前端向所述后端发送所述目标数据接口的请求参数,并通过所述后端向所述前端发送所述目标数据接口的返回参数;基于所述请求参数的类型、所述返回参数的类型、所述后端的代码定义的所述目标数据接口的请求参数的类型以及所述前端的代码定义的所述目标数据接口的返回参数的类型,对所述前端和所述后端进行联合调试。
作为本发明实施例一种可选的实施方式,所述属性信息为JsonSchema格式的数据;
所述根据所述属性信息生成预设语法的类型定义文件,包括:基于抽象语法树AST将所述属性信息转换为TypeScript语法的类型定义文件。
图9为本发明实施例提供的服务端设备的结构示意图,如图9所示,本实施例提供的服务端设备900包括:
获取单元91,用于获取目标数据接口的属性信息;
接收单元92,用于接收终端设备发送的请求信息,所述请求信息用于请求所述服务端设备返回目标数据接口的属性信息;
发送单元93,用于向所述终端设备发送所述目标数据接口的属性信息。
作为本发明实施例一种可选的实施方式,
所述接收单元92,还用于接收前端发送的所述目标数据接口的请求参数;
所述发送单元93,还用于向所述前端发送所述模拟返回参数。
作为本发明实施例一种可选的实施方式,
所述获取单元91,具体用于显示属性配置界面,所述属性配置界面包括所述目标数据接口的至少一个属性配置表单;接收用户对所述至少一个属性配置表单的输入;根据用户对所述至少一个属性配置表单的输入生成所述目标数据接口的属性信息。
本实施例提供的终端设备和服务端设备可以执行上述实施例提供的软件开发方法,其实现原理与技术效果类似,此处不再赘述。
基于同一发明构思,本发明实施例还提供了一种电子设备。图10为本发明实施例提供的电子设备的结构示意图,如图10所示,本实施例提供的电子设备包括:存储器101和处理器102,所述存储器101用于存储计算机程序;所述处理器102用于在调用计算机程序时,使得所述电子设备执行上述方法实施例提供的软件开发方法中的各步骤。
具体的,存储器101可用于存储软件程序以及各种数据。存储器101可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器101可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器102是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器101中的软件程序和/或模块,以及调用存储在存储器101中的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器102可包括一个或多个处理单元。
此外,应当理解的是,本发明实施例提供的电子设备还可以包括:射频单元、网络模块、音频输出单元、传感器、信号接收单元、显示器、用户接收单元、接口单元、以及电源等部件。本领域技术人员可以理解,上述描述出的电子设备的结构并不构成对电子设备的限定,电子设备可以包括更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
其中,射频单元可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器102处理;另外,将上行的数据发送给基站。通常,射频单元包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元还可以通过无线通信系统与网络和其他设备通信。
电子设备通过网络模块为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元可以将射频单元或网络模块接收的或者在存储器101中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元还可以提供与电子设备执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元包括扬声器、蜂鸣器以及受话器等。
信号接收单元用于接收音频或视频信号。接收单元可以包括图形处理器(Graphics Processing Unit,GPU)和麦克风,图形处理器对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元上。经图形处理器处理后的图像帧可以存储在存储器(或其它存储介质)中或者经由射频单元或网络模块进行发送。麦克风可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元发送到移动通信基站的格式输出。
电子设备还包括至少一种传感器,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在电子设备移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元用于显示由用户输入的信息或提供给用户的信息。显示单元可包括显示面板,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(OrganicLight-Emitting Diode,OLED)等形式来配置显示面板。
用户接收单元可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户接收单元包括触控面板以及其他输入设备。触控面板,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作)。触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器102,接收处理器102发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板。除了触控面板,用户接收单元还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板可覆盖在显示面板上,当触控面板检测到在其上或附近的触摸操作后,传送给处理器102以确定触摸事件的类型,随后处理器102根据触摸事件的类型在显示面板上提供相应的视觉输出。一般情况下,触控面板与显示面板是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板与显示面板集成而实现电子设备的输入和输出功能,具体此处不做限定。
接口单元为外部装置与电子设备连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备中的一个或多个元件或者可以用于在电子设备和外部装置之间传输数据。
电子设备还可以包括给各个部件供电的电源(比如电池),可选的,电源可以通过电源管理系统与处理器102逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,当所述计算机程序被计算设备执行时,使得所述计算设备实现上述方法实施例提供的软件开发方法。
本发明实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机实现上述方法实施例提供的软件开发方法。
本领域技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。
计算机可读介质包括永久性和非永久性、可移动和非可移动存储介质。存储介质可以由任何方法或技术来实现信息存储,信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。根据本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:一种可视化建站系统