本发明涉及计算机领域,特别涉及一种自动生成接口的方法及终端。
背景技术:
目前开发接口需要由各端程序员自己去编写业务逻辑,每个版本都有一堆的接口需要开发,这块接口开发工作以及联调的工作会耗用程序员大量的开发时间,而且这种工作都是一些重复性的工作,接口的变更和修改也需要耗用大量的时间去维护,且现有技术中生成的接口无法实现跨平台。
因此,需要一种自动化生成接口的方法,能自动把接口设计文档转化为接口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不同版本接口的生成,通过判断是否存在中文字符,若是,则将所述中文字符解析为相应的英文字段,可防止由于接口文档定义不规范导致接口生成出现中文字符。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。