数据处理方法、装置、设备及计算机可读存储介质

文档序号:1936818 发布日期:2021-12-07 浏览:15次 >En<

阅读说明:本技术 数据处理方法、装置、设备及计算机可读存储介质 (Data processing method, device, equipment and computer readable storage medium ) 是由 李东卫 杨洋 朱孝瑾 都业广 冯硕 于 2020-06-29 设计创作,主要内容包括:本发明实施例提供一种数据处理方法、装置、设备及计算机可读存储介质。该方法包括:在编译过程中,解析程序代码中的接口注解信息,得到接口信息;根据所述接口信息自动生成数据模型文件。本发明的方法,通过在编译过程中,解析程序代码中的接口注解信息,得到接口信息;根据所述接口信息自动生成数据模型文件,实现了接口信息及数据模型文件的自动生成,在接口发生变动时,重新编译即可及时地完成接口信息及数据模型文件的自动更新,提高了效率,并且克服了由于接口文档的更新不及时,且容易出现遗漏的情况,导致前端无法准确地获取到后台数据,从而导致前端页面出现无法访问、返回数据错误等异常的技术问题。(The embodiment of the invention provides a data processing method, a data processing device, data processing equipment and a computer readable storage medium. The method comprises the following steps: in the compiling process, interface annotation information in the program code is analyzed to obtain interface information; and automatically generating a data model file according to the interface information. In the method, interface annotation information in the program code is analyzed in the compiling process to obtain interface information; the data model file is automatically generated according to the interface information, automatic generation of the interface information and the data model file is achieved, when the interface changes, automatic updating of the interface information and the data model file can be timely completed through recompilation, efficiency is improved, and the technical problems that due to the fact that updating of an interface document is not timely and omission easily occurs, a front end cannot accurately acquire background data, and therefore the front end page cannot be accessed and data return errors and other exceptions occur are solved.)

数据处理方法、装置、设备及计算机可读存储介质

技术领域

本发明涉及计算机技术领域,尤其涉及一种数据处理方法、装置、设备及计算机可读存储介质。

背景技术

现有的软件开发流程中,前端开发人员需要通过后端开发人员编写的接口程序获取后台数据,已完成前后端对接。

目前,后端开发人员通常要手动地将接口的信息记录到接口文档中,对后台接口进行一定的描述。前端开发人员通过查看接口文档中接口返回数据的json格式,自定义数据模型对返回数据进行解析后投入使用,使用过程中需要参考接口文档。

如果接口发生变动,就需要后端开发人员手动修改接口文档,并通知所有前端涉及人员修改对应的数据模型,由于后端开发人员任务繁重,往往对接口文档的更新不及时,且容易出现遗漏的情况,导致前端无法准确地获取到后台数据,从而导致前端页面出现无法访问、返回数据错误等异常。

发明内容

本发明实施例提供一种数据处理方法、装置、设备及计算机可读存储介质,用以解决现有技术中需要后端开发人员手动编写和修改接口文档,前端开发人员根据接口文档手动生成数据模型,接口文档的更新不及时,且容易出现遗漏,导致前端无法准确地获取到后台数据,出现前端页面出现无法访问、返回数据错误等异常的问题。

一方面,本发明实施例提供一种数据处理方法,包括:

在编译过程中,解析程序代码中的接口注解信息,得到接口信息;

根据所述接口信息自动生成数据模型文件。

在一种可能的设计中,所述根据所述接口信息自动生成数据模型文件之后,还包括:

将所述数据模型文件自动提交到预设代码仓库。

在一种可能的设计中,所述根据所述接口信息自动生成数据模型文件,包括:

根据所述接口信息、目标接口标识和指定操作系统类型,自动生成目标接口的与所述指定操作系统类型对应的数据模型文件。

在一种可能的设计中,所述根据所述接口信息、目标接口标识和指定操作系统类型,自动生成目标接口的与所述指定操作系统类型对应的数据模型文件之前,还包括:

接收前端发送的所述目标接口标识和指定操作系统类型,所述指定操作系统类型为用户通过前端页面输入的。

在一种可能的设计中,所述根据所述接口信息、目标接口标识和指定操作系统类型,自动生成目标接口的与所述指定操作系统类型对应的数据模型文件之后,还包括:

将所述目标接口的与所述指定操作系统类型对应的数据模型文件提交到指定代码仓库。

在一种可能的设计中,所述将所述目标接口的与所述指定操作系统类型对应的数据模型文件提交到指定代码仓库之前,还包括:

接收前端发送的所述指定代码仓库的地址信息,所述指定代码仓库的地址信息为用户通过前端页面输入的。

在一种可能的设计中,所述在编译过程中,解析程序代码中的接口注解信息,得到接口信息之后,还包括:

根据所述接口信息生成接口文档。

在一种可能的设计中,在编译过程中,解析程序代码中的接口注解信息,得到接口信息之后,还包括:

将所述接口信息发送到前端,以通过前端页面显示所述接口信息。

在一种可能的设计中,所述接口注解信息包括接口的入口参数注解和出口参数注解;所述解析程序代码中的接口注解信息,得到接口信息,包括:

扫描所述程序代码中的每个类,若该类包含出口参数注解,则将该类中所有成员变量上的出口参数注解的信息保存到第一MAP集合中;

若该类是控制器Controller类,扫描该类中的每个方法是否包含入口参数注解,若该类的至少一个方法包含入口参数注解,则将所述至少一个方法的入口参数注解的信息保存到第一映射MAP集合中。

在一种可能的设计中,所述入口参数注解包括第一属性和第二属性,第一属性的值为接口名称,第二属性的值为接口的各入口参数的描述信息;所述出口参数注解包括第三属性和第四属性,第三属性的值为接口名称,第四属性的值为各出口参数的描述信息,其中接口的出口参数注解中第四属性的个数与该接口的出口参数的个数一致。

在一种可能的设计中,所述若该类的至少一个方法包含入口参数注解,则将所述至少一个方法的入口参数注解的信息保存到第一映射MAP集合中,包括:

若该类中的至少一个方法包含入口参数注解,则将每个所述方法的入口参数注解的第一属性的值作为key,将所述方法的入口参数注解的第二属性的值为value,保存到所述第一MAP集合中。

在一种可能的设计中,所述若该类包含出口参数注解,则将该类中所有成员变量上的出口参数注解的信息保存到第一MAP集合中,包括:

若所述类包含出口参数注解,则将所述类中的每个成员变量的字段名称和对应的出口参数注解的第四属性的值分别作为key和value构成键值对,所述类中的所有成员变量对应的键值对构成一个第二MAP集合;将所述出口参数注解的第三属性的值作为key,将所述第二MAP集合作为value,保存到所述第一MAP集合中。

在一种可能的设计中,所述方法还包括:

若所述类包含预设数据类型的成员变量,则采用递归的方式,将所述预设数据类型的成员变量对应的定义类的出口参数注解的信息保存到所述第一MAP集合中,所述第一MAP集合中包含嵌套模型信息。

在一种可能的设计中,所述方法还包括:

若所述接口信息包含嵌套模型信息,则根据所述接口信息采用递归地方式,生成包含嵌套模型的数据模型文件。

另一方面,本发明实施例提供一种数据处理装置,包括:

注解解析模块,用于在编译过程中,解析程序代码中的接口注解信息,得到接口信息;

信息处理模块,用于根据所述接口信息自动生成数据模型文件。

在一种可能的设计中,所述装置还包括:

发送模块,用于将所述数据模型文件自动提交到预设代码仓库。

在一种可能的设计中,所述信息处理模块还用于:

根据所述接口信息、目标接口标识和指定操作系统类型,自动生成目标接口的与所述指定操作系统类型对应的数据模型文件。

在一种可能的设计中,所述装置还包括:

接收模块,用于接收前端发送的所述目标接口标识和指定操作系统类型,所述指定操作系统类型为用户通过前端页面输入的。

在一种可能的设计中,所述发送模块还用于:

将所述目标接口的与所述指定操作系统类型对应的数据模型文件提交到指定代码仓库。

在一种可能的设计中,所述接收模块还用于:

接收前端发送的所述指定代码仓库的地址信息,所述指定代码仓库的地址信息为用户通过前端页面输入的。

在一种可能的设计中,所述信息处理模块还用于:

根据所述接口信息生成接口文档。

在一种可能的设计中,所述发送模块还用于:

将所述接口信息发送到前端,以通过前端页面显示所述接口信息。

在一种可能的设计中,所述接口注解信息包括接口的入口参数注解和出口参数注解;所述注解解析模块还用于:

扫描所述程序代码中的每个类,若该类包含出口参数注解,则将该类中所有成员变量上的出口参数注解的信息保存到第一MAP集合中;若该类是控制器Controller类,扫描该类中的每个方法是否包含入口参数注解,若该类的至少一个方法包含入口参数注解,则将所述至少一个方法的入口参数注解的信息保存到第一映射MAP集合中。

在一种可能的设计中,所述入口参数注解包括第一属性和第二属性,第一属性的值为接口名称,第二属性的值为接口的各入口参数的描述信息;所述出口参数注解包括第三属性和第四属性,第三属性的值为接口名称,第四属性的值为各出口参数的描述信息,其中接口的出口参数注解中第四属性的个数与该接口的出口参数的个数一致。

在一种可能的设计中,所述注解解析模块还用于:

若该类中的至少一个方法包含入口参数注解,则将每个所述方法的入口参数注解的第一属性的值作为key,将所述方法的入口参数注解的第二属性的值为value,保存到所述第一MAP集合中。

在一种可能的设计中,所述注解解析模块还用于:

若所述类包含出口参数注解,则将所述类中的每个成员变量的字段名称和对应的出口参数注解的第四属性的值分别作为key和value构成键值对,所述类中的所有成员变量对应的键值对构成一个第二MAP集合;将所述出口参数注解的第三属性的值作为key,将所述第二MAP集合作为value,保存到所述第一MAP集合中。

在一种可能的设计中,所述注解解析模块还用于:

若所述类包含预设数据类型的成员变量,则采用递归的方式,将所述预设数据类型的成员变量对应的定义类的出口参数注解的信息保存到所述第一MAP集合中,所述第一MAP集合中包含嵌套模型信息。

在一种可能的设计中,所述信息处理模块还用于:

若所述接口信息包含嵌套模型信息,则根据所述接口信息采用递归地方式,生成包含嵌套模型的数据模型文件。

另一方面,本发明实施例提供一种数据处理设备,包括:

处理器,存储器,以及存储在所述存储器上并可在所述处理器上运行的计算机程序;

其中,所述处理器运行所述计算机程序时实现上述所述的数据处理方法。

另一方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的数据传输方法。

本发明实施例提供的数据处理方法、装置、设备及计算机可读存储介质,具有如下优点或有益效果:通过在编译过程中,解析程序代码中的接口注解信息,得到接口信息;根据所述接口信息自动生成数据模型文件,实现了接口信息及数据模型文件的自动生成,在接口发生变动时,重新编译即可及时地完成接口信息及数据模型文件的自动更新,提高了效率,并且克服了由于接口文档的更新不及时,且容易出现遗漏的情况,导致前端无法准确地获取到后台数据,从而导致前端页面出现无法访问、返回数据错误等异常的技术问题。

附图说明

图1为本发明实施例提供的软件开发平台系统架构示意图;

图2为本发明实施例一提供的数据处理方法流程图;

图3为本发明实施例二提供的数据处理方法流程图;

图4为本发明实施例二提供的入口参数注解的示意图;

图5为本发明实施例二提供的出口参数注解的示意图;

图6为本发明实施例二提供的解析注解的整体流程示意图;

图7为本发明实施例二提供的接口信息展示界面的示意图;

图8为本发明实施例三提供的数据处理装置的结构示意图;

图9为本发明实施例四提供的数据处理装置的结构示意图;

图10为本发明实施例五提供的数据处理设备的结构示意图。

通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。

具体实施方式

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

首先对本发明所涉及的名词进行解释:

json格式:json是一种轻量级的数据交换格式。

vo(value object):是java中的业务对象,是存活在业务层。

git:是一个开源的分布式版本控制系统,用于敏捷高效的处理或大或小的项目。

注解:java注解又称java标注,是jdk5.0引入的一种注释机制。

bootstrap:是Twitter推出的前端框架,它简介灵活,使web开发更加快捷。

shell脚本:shell是一个用c语言编写的程序,它是用户使用Linux的桥梁,它接受用户命令,然后调用相应的应用程序。

此外,术语“第一”、“第二”、“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。

本发明实施例提供的数据处理方法,可以适用于图1所示的软件开发平台系统架构示意图。如图1所示,该系统架构包括数据采集模块,客户端模型模块,接口文档展示模块,客户端代码仓库。

其中,数据采集模块位于系统中的服务端,后端开发人员在编码阶段通过在请求方法和返回的数据VO类上添加自定义的接口注解,在编译阶段,后端自动解析接口注解可以得到接口信息,并将接口信息保存,实现接口文档所需数据信息的采集功能。

接口文档展示模块是指后端获取到的接口信息通过前端展示界面进行展示,同时还提供与前端用户的交互界面,以使用户通过前端界面向后端提交信息。

客户端模型模块位于系统中的服务端,用于自动地根据接口信息生成客户端用户所需的数据模型文件,可以是iOS和安卓端所需的模型文件。示例性地,用户可以通过前端界面选择要生成数据模型文件的接口,输入将要生成的数据模型文件的名称,输入将生成的数据模型文件提交到的代码仓库的地址信息,等等。

客户端代码库提供了将生成的数据模型文件自动提交到git代码仓库的功能,方便前端文员直接使用。

本发明实施例提供的数据处理方法,能够在编译过程中自动解析代码中的接口注解信息得到接口信息,自动生成数据模型文件,并将数据模型文件自动提交到代码仓库,一旦接口发生变化,后端开发人员只需修改该接口的注解,在编译时会自动更新接口信息、重新生成数据模型文件、并自动更新到代码仓库,减少了前后端人员的沟通成本,提高了效率,并且克服了由于接口文档的更新不及时,且容易出现遗漏的情况,导致前端无法准确地获取到后台数据,从而导致前端页面出现无法访问、返回数据错误等异常的技术问题。

下面以具体地实施例对本发明的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明的实施例进行描述。

图2为本发明实施例一提供的数据处理方法流程图。本发明实施例针对现有技术中需要后端开发人员手动编写和修改接口文档,前端开发人员根据接口文档手动生成数据模型,接口文档的更新不及时,且容易出现遗漏,导致前端无法准确地获取到后台数据,出现前端页面出现无法访问、返回数据错误等异常的问题,提供了数据处理方法。本实施例中的方法应用于软件开发平台后台的服务端设备。如图2所示,该方法具体步骤如下:

步骤S101、在编译过程中,解析程序代码中的接口注解信息,得到接口信息。

其中,接口注解信息包括入口参数注解和出口参数注解。

本实施例中,由后端开发人员在编码阶段,在请求方法和返回的数据VO上添加自定义的注解,完成接口注解信息的编写。

在编译阶段,服务端设备能够自动地解析程序代码中的接口注解信息,得到接口文档中所需的接口信息。

其中,接口信息至少包括入口参数信息和出口参数信息,入口参数信息至少包括接口名称和入口参数的描述信息。出口参数信息至少包括接口名称和出口参数的描述信息。

步骤S102、根据接口信息自动生成数据模型文件。

本实施例中,在解析出接口信息之后,根据接口信息通过调用shell脚本生成数据模型文件。

示例性地,通常操作系统类型包括IOS和安卓Android,针对不同的操作系统类型,服务端设备可以调用不同的shell脚本,生成应用于不同操作系统类型的数据模型文件。

可选地,若用户指定操作系统类型为IOS,则调用适用于IOS的shell脚本来生成能够适用于IOS的数据模型文件。

可选地,若用户指定操作系统类型为Android,则调用适用于Android的shell脚本来生成能够适用于Android的数据模型文件。

可选地,若用户未指定操作系统类型,则可以分别调用适用于IOS的shell脚本和适用于Android的shell脚本,分别生成能够适用于IOS和Android的数据模型文件。

本发明实施例通过在编译过程中,解析程序代码中的接口注解信息,得到接口信息;根据接口信息自动生成数据模型文件,实现了接口信息及数据模型文件的自动生成,在接口发生变动时,重新编译即可及时地完成接口信息及数据模型文件的自动更新,提高了效率,并且克服了由于接口文档的更新不及时,且容易出现遗漏的情况,导致前端无法准确地获取到后台数据,从而导致前端页面出现无法访问、返回数据错误等异常的技术问题。

图3为本发明实施例二提供的数据处理方法流程图。在上述实施例一的基础上,本实施例中,根据接口信息自动生成数据模型文件,包括:根据接口信息、目标接口标识和指定操作系统类型,自动生成目标接口的与指定操作系统类型对应的数据模型文件。进一步地,根据接口信息自动生成数据模型文件之后,还包括:将数据模型文件自动提交到预设代码仓库。如图3所示,该方法具体步骤如下:

步骤S201、在编译过程中,解析程序代码中的接口注解信息,得到接口信息。

其中,接口注解信息包括接口的入口参数注解和出口参数注解。

入口参数注解包括第一属性和第二属性,第一属性的值为接口名称,第二属性的值为接口的各入口参数的描述信息。

示例性地,可以用“DocReqValue”表示入口参数注解,入口参数注解的第一属性可以用name表示,第一属性的值为接口名称,第二属性可以用value表示,第二属性的值包括各个入口参数的描述信息,不同的参数的描述信息之间用分号分割开,描述信息的顺序与入口参数的顺序一致。另外,本实施例中对于入口参数注解及其第一属性和第二属性使用的标识不做具体限定。

例如,如图4中所示的程序代码中,请求函数getShopList中有两个入口参数,分别是pin和uuid,请求函数getShopList上增加了入口参数注解“@DocReqValue”,第一属性name的值为接口名称“获取关注列表接口”,第二属性value的值包括用分号分割开的pin和uuid的描述信息,入口参数pin的描述信息为“登录后网关自动获取”,入口参数uuid的描述信息为“必传(备注:机器唯一编码-android为uuid,ios为openudid)”。

本实施例中,出口参数注解包括第三属性和第四属性,第三属性的值为接口名称,第四属性的值为各出口参数的描述信息,其中接口的出口参数注解中第四属性的个数与该接口的出口参数的个数一致。

示例性地,可以用“DocValue”表示出口参数注解,出口参数注解的第三属性可以用name表示,第三属性的值为接口名称,第四属性可以用key表示,第四属性的值包括出口参数的描述信息。对于有多个出口参数的接口,每个出口参数可以对应一个key。另外,本实施例中对于出口参数注解及其第三属性和第四属性使用的标识不做具体限定。

例如,如图5中所示的程序代码中,数据VO类ShopResponseVO上增加了出口参数注解“@DocValue”,第三属性name的值为接口名称“获取关注列表接口”,成员变量“allFollowed”、“haveFollowed”和“shopNum”上分别注解了第四属性,对应的第四属性key的值依次为“false:未全部关注true:已全部关注”、“已关注店铺数目”和“底池店铺总数目”。

需要说明的是,某一数据VO类的出口参数注解与该数据VO类对应的请求方法的入口参数注解中的接口名称应该一致,也就是数据VO类的出口参数注解的第一属性name与该数据VO类对应的请求方法的入口参数注解的第三属性name一致。

作为一种可能的实施方式,为了实现注解的自动解析,解析注解的整体流程如图6所示,可以包括如下步骤:

步骤S1、扫描自定义注解。

通过注册注解类自定义注解的规则,自定义扫描类用于扫描代码中的哪些位置上加了自定义注解。

步骤S2、自定义注解加入sping容器。

通过扩展ImportBeanDefinitionRegistrar接口,将注解类加入spring容器中,为后续解析注解做准备。

步骤S3、bean后置处理方法解析注解。

通过扩展BeanPostProcessor接口,在bean后置处理方法中解析注解。

步骤S4、保存接口信息。

通过bean后置处理方法解析注解能够得到接口文档所需的接口信息,保存接口信息。

作为一种可能的实施方式,上述步骤3中bean后置处理方法解析注解的过程,具体可以通过如下步骤S2011-S2013的处理来实现:

步骤S2011、扫描程序代码中的每个类,对当前扫描到的类进行如下处理:

步骤S2012、判断该类是否包含出口参数注解。

如果该类包含出口参数注解,则通过执行步骤S2013,解析该类中的出口参数注解,得到对应的出口参数信息。

如果该类不包含出口参数注解,则执行步骤S2014,继续解析该类中的入口参数注解,以获取该类中的入口参数信息。

例如,基于图5所示出口参数注解的示例,可以通过判断该类上是否增加了出口参数注解的标识“@DocValue”来判断该类是否包含出口参数注解,如果该类上增加了“@DocValue”,则可以确定该类包含出口参数注解;如果该类上,没有增加“@DocValue”,则可以确定该类不包含出口参数注解。对于图5中的示例,数据VO类ShopResponseVO上增加了出口参数注解“@DocValue”,可以确定数据VO类ShopResponseVO包含出口参数注解。

步骤S2013、若该类包含出口参数注解,则将该类中所有成员变量上的出口参数注解的信息保存到第一MAP集合中。

具体地,若类包含出口参数注解,则可以通过遍历该类中的每一个成员变量,将类中的每个成员变量的字段名称和对应的出口参数注解的第四属性的值分别作为key和value构成键值对,类中的所有成员变量对应的键值对构成一个第二MAP集合;将出口参数注解的第三属性的值作为key,将第二MAP集合作为value,保存到第一MAP集合中。

例如,基于图5所示出口参数注解的示例,数据VO类ShopResponseVO中的3个成员变量上增加了注解信息,通过遍历每一个成员变量,将ShopResponseVO类中的每个成员变量的字段名称和对应的出口参数注解的第四属性的值分别作为key和value构成键值对,得到第二MAP集合包含以下3个键值对:key=“allFollowed”,value=“false:未全部关注true:已全部关注”;key=“haveFollowed”,value=“已关注店铺数目”;key=“shopNum”,value=“底池店铺总数目”。将出口参数注解的第三属性的值“获取关注列表接口”作为key,将第二MAP集合作为value,保存到第一MAP集合中。

示例性地,遍历该类中的每一个成员变量时,如果成员变量上增加了注解,则可以将成员变量的字段名称和对应的出口参数注解的第四属性的值分别作为key和value构成键值对;如果成员变量上没有增加注解,则可以将成员变量的字段名和字段类型分别作为key和value构成键值对;类中的所有成员变量对应的键值对构成一个第二MAP集合。

例如,基于图5所示出口参数注解的示例,数据VO类ShopResponseVO中一共4个成员变量,其中3个成员变量上增加了注解信息,通过遍历每一个成员变量,得到第二MAP集合包含以下4个键值对:key=“shopList”,value=“List<ShopInfo>”;key=“allFollowed”,value=“false:未全部关注true:已全部关注”;key=“haveFollowed”,value=“已关注店铺数目”;key=“shopNum”,value=“底池店铺总数目”。

进一步地,若类包含预设数据类型的成员变量,则采用递归的方式,将预设数据类型的成员变量对应的定义类的出口参数注解的信息保存到第一MAP集合中,第一MAP集合中包含嵌套模型信息。

其中,预设数据类型至少包括范型、数组和映射MAP。

例如,以类中包含范型成员变量为例,递归地对用于定义该范型成员变量的范型类进行上述步骤S2012-2013的处理,以将该范型类的出口参数信息也保存到第一MAP集合中。进一步地,如果该范型类中还包括预设数据类型,那么,递归地对用于定义该预设数据类型的定义类进行上步骤S2012-2013的处理,以将定义类的出口参数信息也保存到第一MAP集合中。

步骤S2014、判断该类是否包含Controller注解。

其中,Controller注解是spring框架中自带的注解。

如果该类包含Controller注解,则说明该类为控制器Controller类,该类中可能包含有入口参数注解,继续执行步骤S2015,进行该类中入口参数注解的解析。

如果该类不包含Controller注解,则说明该类中不可能包含入口参数注解,则继续扫描下一个类。

步骤S2015、判断该类中的方法是否包含入口参数注解。

如果该类中的至少一个方法包含入口参数注解,则通过执行步骤S2016解析入口参数注解。

如果该类中的所有方法均不包含入口参数注解,则继续扫描下一个类。

例如,基于图4所示入口参数注解的示例,可以通过判断该类中的方法上是否增加了入口参数注解的标识“@DocReqValue”来判断该方法是否包含入口参数注解,如果该方法上增加了“@DocReqValue”,则可以确定该方法包含入口参数注解;如果该方法上没有增加“@DocReqValue”,则可以确定该方法不包含出口参数注解。对于图4中的示例,请求函数getShopList上增加了入口参数注解“@DocValue”,可以确定请求函数getShopList包含出口参数注解。

步骤S2016、若该类中的至少一个方法包含入口参数注解,则将至少一个方法的入口参数注解的信息保存到第一映射MAP集合中。

具体地,如果该类中多个方法包含入口参数注解,则对于该类中的包含入口参数注解的每一个方法,将该方法的入口参数注解的第一属性的值作为key,将该方法的入口参数注解的第二属性的值为value,保存到第一MAP集合中。

例如,基于图4所示入口参数注解的示例,请求函数getShopList上增加了入口参数注解“@DocValue”,将该方法的入口参数注解的第一属性的值“获取关注列表接口”作为key,将该方法的入口参数注解的第二属性的值“登录后网关自动获取;必传(备注:机器唯一编码-android为uuid,ios为openudid)”为value,保存到第一MAP集合中。

本实施例中,通过一遍扫描可以实现对出口参数注解和入口参数注解的解析。通过步骤S2012-S2013实现对出口参数注解的解析,得到出口参数信息;通过步骤S2014-S2016可以实现入口参数注解的解析,得到入口参数信息。

需要说明的是,在扫描每一个类时,以先解析类中的出口参数注解,后解析类中的入口参数注解为例进行示例性地说明;本实施例的其他实施方式中,还可以先解析类中的入口参数注解,后解析出口参数注解;或者可以并行地进行入口参数注解和出口参数注解的解析,本实施例此处不做具体限定。

另外,对入口参数注解的解析过程和对出口参数注解的解析过程可以是两个独立的过程,还可以通过一遍扫描实现其中的一个过程,通过第二遍扫描实现另一个过程,本实施例此处不做具体限定。

本实施例中,接口入口参数和出口参数会统一定义的一个唯一的接口名,解析完成后通过唯一的接口名将接口的信息完整记录下来,从而得到接口文档所需的全部信息。

步骤S202、接收前端发送的目标接口标识和指定操作系统类型,指定操作系统类型为用户通过前端页面输入的。

其中,目标接口是指用户指定的想要生成数据模型文件的至少一个接口,指定操作类型是指用户指定的想要生成数据模型文件所适用的操作系统类型。指定操作系统类型可以是IOS或者Android。

本实施例中,用户可以在前端展示的交互界面上输入想要生成的数据模型文件的名称以及所应用的操作系统类型,并提交到后台服务端,由用户对数据模型文件进行命名,并指定数据模型文件的操作系统类型。

示例性地,用户通过前端页面选择想要生成对应数据模型文件的接口作为目标接口,指定要生成的数据模型文件所适用的操作系统类型,

步骤S203、根据接口信息、目标接口标识和指定操作系统类型,自动生成目标接口的与指定操作系统类型对应的数据模型文件。

服务端接收到前端发送的目标接口标识和指定操作系统类型之后,通过该步骤可以自动生成用户指定操作系统类型、且由用户自己命名的数据模型文件,更加灵活,用户体验更好。

具体地,通过调用后台服务端提供的生成客户端的数据模型文件接口,判断要生成的数据模型文件是iOS或者Android,根据不同操作系统类型调用不同的shell脚本。

另外,本实施例中,如果某些类包含预设数据类型的成员变量,则采用递归的方式,将预设数据类型的成员变量对应的定义类的出口参数注解的信息保存到第一MAP集合中。那么,第一MAP集合中包含嵌套模型信息,也就是解析出的接口信息中包含嵌套模型信息。

该步骤中,若接口信息包含嵌套模型信息,则根据接口信息采用递归地方式,生成包含嵌套模型的数据模型文件。

示例性地,为了生成包含嵌套模型的数据模型文件,iOS和Android两端要生成多个模型类,通过采用递归解析的方法生成对应的shell脚本。同时对于iOS平台,在生成shell脚本时默认加入了处理解析嵌套模型所需的代码。

本实施例能够使用递归方式解析出多嵌套的数据模型,在生成数据模型文件的时使用递归方法生成适用于不同操作系统平台的脚本语言,并将数据模型文件和代码仓库关联,达到简化前端人员开发的目的。

步骤S204、接收前端发送的指定代码仓库的地址信息,指定代码仓库的地址信息为用户通过前端页面输入的。

本实施例中,用户可以在前端展示的交互界面上输入生成的数据模型文件存放的代码仓库的地址信息。例如,指定代码仓库可以是git仓库。

步骤S205、将目标接口的与指定操作系统类型对应的数据模型文件提交到指定代码仓库。

服务端接收前端发送的指定代码仓库的地址信息,并根据指定代码仓库的地址信息,将生成的数据模型文件提交到指定代码仓库,以便于用户可以方便地获取到数据模型文件。

步骤S206、根据接口信息生成接口文档。

本实施例中,在得到接口信息之后,还可以根据接口信息,按照预设设定的接口文档的格式,生成接口文档,从而可以完成接口文档的自动生成,减少接口文档撰写耗时。

可选地,还可以将生成的接口文档通过前端界面进行展示。

步骤S207、将接口信息发送到前端,以通过前端页面显示接口信息。

本实施例中,在得到接口信息之后,还可以通过前端界面展示接口信息,以便于用户查看接口信息。

示例性地,可以将接口信息通过前端的接口信息展示界面进行展示。如图7所示,可以通过用户的选择将不同的接口信息进行展示,同时在该接口信息展示界面中提供用户切换选择不同接口的操作区域,以及用户指定要生成的数据模型文件的操作系统类型的操作区域。

可选地,前端的接口信息展示界面可以采用javaScript编写,前端样式采用bootstrap来实现。

可选地,如图7所示,本实施例还可以在接口信息展示界面展示接口的代码,并且支持不同语言的转换。例如,可以支持Objective-C和java代码的转换。

本发明实施例通过在编译过程中,解析程序代码中的接口注解信息,得到接口信息;根据接口信息自动生成数据模型文件,实现了接口信息及数据模型文件的自动生成,在接口发生变动时,只需要改变注解中的值,重新编译即可及时地完成接口信息及数据模型文件的自动更新,并将数据模型文件和代码仓库关联,前端人员只需要拉取代码,不必关心数据模型文件的生成,极大简化了后端开发人员编写接口文档的工时和前端开发人员生成数据模型文件的工作流程,同时降低了前、后端开发人员的沟通成本,极大提高了效率。

图8为本发明实施例三提供的数据处理装置的结构示意图。本发明实施例提供的数据处理装置可以执行数据处理方法实施例提供的处理流程。如图8所示,该数据处理装置30包括:注解解析模块301和信息处理模块302。

具体地,注解解析模块301用于在编译过程中,解析程序代码中的接口注解信息,得到接口信息。

信息处理模块302用于根据接口信息自动生成数据模型文件。

本发明实施例提供的装置可以具体用于执行上述实施例一所提供的方法实施例,具体功能此处不再赘述。

本发明实施例通过在编译过程中,解析程序代码中的接口注解信息,得到接口信息;根据接口信息自动生成数据模型文件,实现了接口信息及数据模型文件的自动生成,在接口发生变动时,重新编译即可及时地完成接口信息及数据模型文件的自动更新,提高了效率,并且克服了由于接口文档的更新不及时,且容易出现遗漏的情况,导致前端无法准确地获取到后台数据,从而导致前端页面出现无法访问、返回数据错误等异常的技术问题。

图9为本发明实施例四提供的数据处理装置的结构示意图。在上述实施例三的基础上,本实施例中,如图9所示,数据处理装置30还包括:发送模块303。发送模块303用于将数据模型文件自动提交到预设代码仓库。

在一种可能的设计中,信息处理模块302还用于:

根据接口信息、目标接口标识和指定操作系统类型,自动生成目标接口的与指定操作系统类型对应的数据模型文件。

在一种可能的设计中,如图9所示,数据处理装置30还包括:接收模块304。接收模块304用于:

接收前端发送的目标接口标识和指定操作系统类型,指定操作系统类型为用户通过前端页面输入的。

在一种可能的设计中,发送模块303还用于:

将目标接口的与指定操作系统类型对应的数据模型文件提交到指定代码仓库。

在一种可能的设计中,接收模块304还用于:

接收前端发送的指定代码仓库的地址信息,指定代码仓库的地址信息为用户通过前端页面输入的。

在一种可能的设计中,信息处理模块302还用于:

根据接口信息生成接口文档。

在一种可能的设计中,发送模块303还用于:

将接口信息发送到前端,以通过前端页面显示接口信息。

在一种可能的设计中,接口注解信息包括接口的入口参数注解和出口参数注解;注解解析模块301还用于:

扫描程序代码中的每个类,若该类包含出口参数注解,则将该类中所有成员变量上的出口参数注解的信息保存到第一MAP集合中;若该类是控制器Controller类,扫描该类中的每个方法是否包含入口参数注解,若该类的至少一个方法包含入口参数注解,则将至少一个方法的入口参数注解的信息保存到第一映射MAP集合中。

在一种可能的设计中,入口参数注解包括第一属性和第二属性,第一属性的值为接口名称,第二属性的值为接口的各入口参数的描述信息;出口参数注解包括第三属性和第四属性,第三属性的值为接口名称,第四属性的值为各出口参数的描述信息,其中接口的出口参数注解中第四属性的个数与该接口的出口参数的个数一致。

在一种可能的设计中,注解解析模块301还用于:

若该类中的至少一个方法包含入口参数注解,则将每个方法的入口参数注解的第一属性的值作为key,将方法的入口参数注解的第二属性的值为value,保存到第一MAP集合中。

在一种可能的设计中,注解解析模块301还用于:

若类包含出口参数注解,则将类中的每个成员变量的字段名称和对应的出口参数注解的第四属性的值分别作为key和value构成键值对,类中的所有成员变量对应的键值对构成一个第二MAP集合;将出口参数注解的第三属性的值作为key,将第二MAP集合作为value,保存到第一MAP集合中。

在一种可能的设计中,注解解析模块301还用于:

若类包含预设数据类型的成员变量,则采用递归的方式,将预设数据类型的成员变量对应的定义类的出口参数注解的信息保存到第一MAP集合中,第一MAP集合中包含嵌套模型信息。

在一种可能的设计中,信息处理模块302还用于:

若接口信息包含嵌套模型信息,则根据接口信息采用递归地方式,生成包含嵌套模型的数据模型文件。

在一种可能的设计中,预设数据类型至少包括范型、数组和映射MAP。

本发明实施例提供的装置可以具体用于执行上述实施例二所提供的方法实施例,具体功能此处不再赘述。

本发明实施例通过在编译过程中,解析程序代码中的接口注解信息,得到接口信息;根据接口信息自动生成数据模型文件,实现了接口信息及数据模型文件的自动生成,在接口发生变动时,只需要改变注解中的值,重新编译即可及时地完成接口信息及数据模型文件的自动更新,并将数据模型文件和代码仓库关联,前端人员只需要拉取代码,不必关心数据模型文件的生成,极大简化了后端开发人员编写接口文档的工时和前端开发人员生成数据模型文件的工作流程,同时降低了前、后端开发人员的沟通成本,极大提高了效率。

图10为本发明实施例五提供的数据处理设备的结构示意图。如图10所示,该数据处理设备100包括:处理器1001,存储器1002,以及存储在存储器1002上并可在处理器1001上运行的计算机程序。

其中,处理器1001运行计算机程序时实现上述任一方法实施例提供的数据处理方法。

本发明实施例通过在编译过程中,解析程序代码中的接口注解信息,得到接口信息;根据接口信息自动生成数据模型文件,实现了接口信息及数据模型文件的自动生成,在接口发生变动时,重新编译即可及时地完成接口信息及数据模型文件的自动更新,提高了效率,并且克服了由于接口文档的更新不及时,且容易出现遗漏的情况,导致前端无法准确地获取到后台数据,从而导致前端页面出现无法访问、返回数据错误等异常的技术问题。

另外,本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现上述任一方法实施例提供的数据处理方法。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本发明旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求书指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求书来限制。

22页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种文件生成方法、装置、设备及存储介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!