一种自动生成接口的方法及终端与流程

文档序号:15346392发布日期:2018-09-04 22:48阅读:207来源:国知局

本发明涉及计算机领域,特别涉及一种自动生成接口的方法及终端。



背景技术:

目前开发接口需要由各端程序员自己去编写业务逻辑,每个版本都有一堆的接口需要开发,这块接口开发工作以及联调的工作会耗用程序员大量的开发时间,而且这种工作都是一些重复性的工作,接口的变更和修改也需要耗用大量的时间去维护,且现有技术中生成的接口无法实现跨平台。

因此,需要一种自动化生成接口的方法,能自动把接口设计文档转化为接口sdk代码,接口的开发和维护只需要变更接口文档就可以,节省了大量的时间,并且能够跨平台,支持ios/android/java等。



技术实现要素:

本发明所要解决的技术问题是:提供一种能跨平台的自动生成接口的方法及终端。

为了解决上述技术问题,本发明采用的一种技术方案为:

一种自动生成接口的方法,包括步骤:

s1、获取接口文档,并提取所述接口文档的属性参数;

s2、根据所述属性参数生成相应的数据结构;

s3、接收平台标识,根据所述平台标识动态加载与所述平台标识对应的生成器模板;

s4、根据所述属性参数、数据结构和生成器模板生成相应的接口。

为了解决上述技术问题,本发明采用的另一种技术方案为:

一种自动生成接口的终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

s1、获取接口文档,并提取所述接口文档的属性参数;

s2、根据所述属性参数生成相应的数据结构;

s3、接收平台标识,根据所述平台标识动态加载与所述平台标识对应的生成器模板;

s4、根据所述属性参数、数据结构和生成器模板生成相应的接口。

本发明的有益效果在于:通过获取接口文档,并提取所述接口文档的属性参数;根据所述属性参数生成相应的数据结构;接收平台标识,根据所述平台标识动态加载与所述平台标识对应的生成器模板;根据所述属性参数、数据结构和生成器模板生成相应的接口,实现了自动化生成接口,原先每个版本开发接口需要至少1-2天时间,使用自动生成接口,只需要运行程序,几分钟就可以生成接口,大量节省了程序员的开发时间,接口的维护变得比较简单,只需要变更接口文档,能跨平台,可支持ios/android/java不同版本接口的生成。

附图说明

图1为本发明实施例的自动生成接口的方法流程图;

图2为本发明实施例的自动生成接口的终端的结构示意图;

标号说明:

1、自动生成接口的终端;2、存储器;3、处理器。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

本发明最关键的构思在于:通过获取接口文档,并提取所述接口文档的属性参数;根据所述属性参数生成相应的数据结构;接收平台标识,根据所述平台标识动态加载与所述平台标识对应的生成器模板,实现了自动生成ios/android/java不同版本的接口。

请参照图1,一种自动生成接口的方法,包括步骤:

s1、获取接口文档,并提取所述接口文档的属性参数;

s2、根据所述属性参数生成相应的数据结构;

s3、接收平台标识,根据所述平台标识动态加载与所述平台标识对应的生成器模板;

s4、根据所述属性参数、数据结构和生成器模板生成相应的接口。

从上述描述可知,本发明的有益效果在于:通过获取接口文档,并提取所述接口文档的属性参数;根据所述属性参数生成相应的数据结构;接收平台标识,根据所述平台标识动态加载与所述平台标识对应的生成器模板;根据所述属性参数、数据结构和生成器模板生成相应的接口,实现了自动化生成接口,原先每个版本开发接口需要至少1-2天时间,使用自动生成接口,只需要运行程序,几分钟就可以生成接口,大量节省了程序员的开发时间,接口的维护变得比较简单,只需要变更接口文档,能跨平台,可支持ios/android/java不同版本接口的生成。

进一步的,步骤s1具体包括:

s11、获取html格式的接口文档,并生成接口的文本信息;

s12、获取所述文本信息中的区隔标记,所述区隔标记包括参数标签和响应标签;

s13、根据所述区隔标记通过正则表达式提取接口的地址和方法名,从所述参数标签中提取接口的参数列表,从所述响应标签中提取响应参数列表。

由上述描述可知,获取文本信息中的区隔标记,并通过正则表达式提取接口的地址、方法名、参数列表和响应列表等属性参数,方便后续根据属性参数生成数据结构。

进一步的,步骤s2具体包括:

s21、分别遍历所述参数列表的表格标签和所述响应列表的表格标签,并解析转化为模块类;

s22、识别所述接口的地址、方法名、参数列表、响应参数列表和模块类,并判断是否存在中文字符,若是,则将所述中文字符解析为相应的英文字段;

s23、根据所述接口的地址、方法名和响应参数列表生成方法类;

s24、根据所述参数列表生成参数类。

由上述描述可知,通过判断是否存在中文字符,若是,则将所述中文字符解析为相应的英文字段,可防止由于接口文档定义不规范导致接口生成出现中文字符。

进一步的,步骤s4具体包括:

s41、启动生成器,获取项目的前缀名称;

s42、根据所述生成器模板加载模板文件;

s43、将配置文件中的host地址和mock测试的前缀名称替换为所述项目的前缀名称;

s44、将dao文件中的地址替换为所述方法类中的地址;

s45、将model文件中的性能属性替换为所述参数类中的参数列表;

s46、根据所述dao文件和model文件将service文件中的方法替换为所述方法名对应的接口调用方法。

由上述描述可知,通过加载模板文件,分别对dao文件的地址、model文件中的性能属性和service文件中的方法进行替换,实现了接口的自动生成,节省了大量的时间。

进一步的,所述平台标识为ios平台标识、android平台标识或java平台标识。

由上述描述可知,通过不同的平台标识区分ios平台、android平台以及java平台,方便根据不同的平台标识生成相应的接口。

请参照图2,一种自动生成接口的终端,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

s1、获取接口文档,并提取所述接口文档的属性参数;

s2、根据所述属性参数生成相应的数据结构;

s3、接收平台标识,根据所述平台标识动态加载与所述平台标识对应的生成器模板;

s4、根据所述属性参数、数据结构和生成器模板生成相应的接口。

从上述描述可知,本发明的有益效果在于:通过获取接口文档,并提取所述接口文档的属性参数;根据所述属性参数生成相应的数据结构;接收平台标识,根据所述平台标识动态加载与所述平台标识对应的生成器模板;根据所述属性参数、数据结构和生成器模板生成相应的接口,实现了自动化生成接口,原先每个版本开发接口需要至少1-2天时间,使用自动生成接口,只需要运行程序,几分钟就可以生成接口,大量节省了程序员的开发时间,接口的维护变得比较简单,只需要变更接口文档,能跨平台,可支持ios/android/java不同版本接口的生成。

进一步的,步骤s1具体包括:

s11、获取html格式的接口文档,并生成接口的文本信息;

s12、获取所述文本信息中的区隔标记,所述区隔标记包括参数标签和响应标签;

s13、根据所述区隔标记通过正则表达式提取接口的地址和方法名,从所述参数标签中提取接口的参数列表,从所述响应标签中提取响应参数列表。

由上述描述可知,获取文本信息中的区隔标记,并通过正则表达式提取接口的地址、方法名、参数列表和响应列表等属性参数,方便后续根据属性参数生成数据结构。

进一步的,步骤s2具体包括:

s21、分别遍历所述参数列表的表格标签和所述响应列表的表格标签,并解析转化为模块类;

s22、识别所述接口的地址、方法名、参数列表、响应参数列表和模块类,并判断是否存在中文字符,若是,则将所述中文字符解析为相应的英文字段;

s23、根据所述接口的地址、方法名和响应参数列表生成方法类;

s24、根据所述参数列表生成参数类。

由上述描述可知,通过判断是否存在中文字符,若是,则将所述中文字符解析为相应的英文字段,可防止由于接口文档定义不规范导致接口生成出现中文字符。

进一步的,步骤s4具体包括:

s41、启动生成器,获取项目的前缀名称;

s42、根据所述生成器模板加载模板文件;

s43、将配置文件中的host地址和mock测试的前缀名称替换为所述项目的前缀名称;

s44、将dao文件中的地址替换为所述方法类中的地址;

s45、将model文件中的性能属性替换为所述参数类中的参数列表;

s46、根据所述dao文件和model文件将service文件中的方法替换为所述方法名对应的接口调用方法。

由上述描述可知,通过加载模板文件,分别对dao文件的地址、model文件中的性能属性和service文件中的方法进行替换,实现了接口的自动生成,节省了大量的时间。

进一步的,所述平台标识为ios平台标识、android平台标识或java平台标识。

由上述描述可知,通过不同的平台标识区分ios平台、android平台以及java平台,方便根据不同的平台标识生成相应的接口。

实施例一

一种自动生成接口的方法,其特征在于,包括步骤:

s1、获取接口文档,并提取所述接口文档的属性参数;

步骤s1具体包括:

s11、获取html格式的接口文档,并生成接口的文本信息;

s12、获取所述文本信息中的区隔标记,所述区隔标记包括参数标签和响应标签;

s13、根据所述区隔标记通过正则表达式提取接口的地址和方法名,从所述参数标签中提取接口的参数列表,从所述响应标签中提取响应参数列表;

s2、根据所述属性参数生成相应的数据结构;

步骤s2具体包括:

s21、分别遍历所述参数列表的表格标签和所述响应列表的表格标签,并解析转化为模块类;

s22、识别所述接口的地址、方法名、参数列表、响应参数列表和模块类,并判断是否存在中文字符,若是,则将所述中文字符解析为相应的英文字段;

s23、根据所述接口的地址、方法名和响应参数列表生成方法类;

s24、根据所述参数列表生成参数类。

s3、接收平台标识,根据所述平台标识动态加载与所述平台标识对应的生成器模板;

s4、根据所述属性参数、数据结构和生成器模板生成相应的接口;

步骤s4具体包括:

s41、启动生成器,获取项目的前缀名称;

s42、根据所述生成器模板加载模板文件;

s43、将配置文件中的host地址和mock测试的前缀名称替换为所述项目的前缀名称,所述配置文件为项目配置文件,用于配置接口的host地址以及是从服务器读取数据还是直接从本地mock测试中读取数据;

s44、将dao文件中的地址替换为所述方法类中的地址;

s45、将model文件中的性能属性替换为所述参数类中的参数列表;

s46、根据所述dao文件和model文件将service文件中的方法替换为所述方法名对应的接口调用方法;

所述平台标识为ios平台标识、android平台标识或java平台标识。

实施例二

1、加载wiki中定义的接口文档;

2、启动解析器通过正则表达式,提取所述接口文档的属性参数,具体步骤如下:

2.1、获取html格式的接口文档,并生成接口的文本信息;

2.2、搜索所述文本信息中的div标签(区隔标记),所述div标签(区隔标记)包括参数标签和响应标签;

2.3、根据所述区隔标记通过正则表达式提取接口的url(地址)和方法名,从所述参数标签中提取接口的参数列表,从所述响应标签中提取响应参数列表3、翻译模块识别各个属性参数,若识别到中文字符,则将所述中文字符解析为英文字段,翻译完成后将各个参数传回解析器,通过解析器解析后生成数据结构,具体过程如下:

3.1、分别遍历所述参数列表的表格标签和所述响应列表的表格标签,并解析转化为模块类;

3.2、根据所述接口的url(地址)、方法名和响应参数列表生成方法类;

3.3、根据所述参数列表生成参数类;

4、启动生成器根据接收到的平台标识,加载不同平台的生成器模版;

5、生成器执行文件生成操作,在本地生成dao文件、model文件和service文件,dao文件指的是单个接口调用,通过传输url和输入参数(参数列表)生成指定接口,service文件指的就是业务层文件,每个模块生成一个service文件,用于连接dao和model,通过传递输入参数(参数列表)返回model,一个service文件对应该模块所有接口,外围系统调用只需要和service交互即可,文件生成步骤如下:

5.1、启动生成器,获取项目的前缀名称;

5.2、确定根据平台标识确定相应的平台,根据所述生成器模板加载模板文件;

5.3、将配置文件中的host地址和mock测试的前缀名称替换为所述项目的前缀名称;

5.4、将dao文件中的url替换为所述方法类中的url;

5.5、将model文件中的性能属性替换为所述参数类中的参数列表;

5.6、根据所述dao文件和model文件将service文件中的方法替换为所述方法名对应的接口调用方法;

通过替换文件的方式来实现的,每个平台对应不同的生成模板,如ios对应的是模板.h文件和.m文件,android对应的是java文件,通过替换文件里面的各个字符串来实现文件的生成。

实施例三

请参照图2,一种自动生成接口的终端1,包括存储器2、处理器3及存储在存储器2上并可在处理器3上运行的计算机程序,所述处理器3执行所述程序时实现实施例一中的各个步骤。

综上所述,本发明提供的一种自动生成接口的方法及终端,通过获取接口文档,并提取所述接口文档的属性参数;根据所述属性参数生成相应的数据结构;接收平台标识,根据所述平台标识动态加载与所述平台标识对应的生成器模板;根据所述属性参数、数据结构和生成器模板生成相应的接口,实现了自动化生成接口,原先每个版本开发接口需要至少1-2天时间,使用自动生成接口,只需要运行程序,几分钟就可以生成接口,大量节省了程序员的开发时间,接口的维护变得比较简单,只需要变更接口文档,能跨平台,可支持ios/android/java不同版本接口的生成,通过判断是否存在中文字符,若是,则将所述中文字符解析为相应的英文字段,可防止由于接口文档定义不规范导致接口生成出现中文字符。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1