接口文档的生成方法、装置、计算机设备和存储介质与流程

文档序号:18894230发布日期:2019-10-15 22:39阅读:229来源:国知局
接口文档的生成方法、装置、计算机设备和存储介质与流程

本申请涉及计算机技术领域,具体涉及一种接口文档的生成方法、装置、计算机设备和存储介质。



背景技术:

随着计算机技术的不断发展,在项目开发的过程中,由于软件系统的复杂度越来越高,导致项目代码量也会越来越大,通常需要许多名开发人员共同协作来完成项目的开发,但是不同的开发人员之间的编程风格相差较大,某一开发人员编写的代码往往难以被另一开发人员理解。因此,为了便于不同的开发人员之间能够相互了解各自编写的代码内容,每个开发人员除了要完成编写代码的任务,还需要提供完善的并与编写的项目代码对应的接口文档。对接口文档进行手工编写会浪费开发人员大量的时间和精力,效率低且容易出错,开发成本高。



技术实现要素:

本申请的主要目的为提供一种接口文档的生成方法、装置、计算机设备和存储介质,旨在解决现有的开发人员需要手工编写与项目代码对应的接口文档,浪费了开发人员大量的时间和精力,效率低且容易出错,开发成本高的技术问题。

本申请提出一种接口文档的生成方法,所述方法包括步骤:

获取第一项目的源代码;

从所述源代码的所有类方法中筛选出带有接口标记的类方法,并将所述带有接口标记的类方法记为接口类方法;

通过反射技术从与所述接口类方法对应的方法体中提取接口基本信息,以及从所述方法体对应的代码注解信息中提取接口附加信息;

整合所述接口基本信息与所述接口附加信息,形成第一接口信息,其中所述第一接口信息至少包括输入参数的名称、输入参数的类型、输出参数的名称、输出参数的类型以及参数注释信息;

将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档。

可选地,所述获取第一项目的源代码的步骤之前,包括:

接收用户输入的第一项目信息,其中所述第一项目信息包括maven坐标;

根据所述maven坐标,从预设的程序开发管理工具搜寻出与所述maven坐标对应的所述第一项目;

生成获取所述第一项目的源代码的指令。

可选地,所述将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档的步骤之后,包括:

为所述第一接口文档建立对应的第一索引,并将所述第一索引以及所述第一接口文档上传至预设的文档数据库,其中所述第一接口文档为所述文档数据库包含的所有接口文档中的任意一个接口文档;

判断是否接收到用户输入的文档搜索指令;

若接收到用户输入的文档搜索指令,则提取出所述文档搜索指令中的搜索关键词;

判断所述文档数据库预存储的索引中,是否存在与所述搜索关键词对应的索引项;

若存在与所述搜索关键词对应的索引项,则获取所述索引项对应的指定接口文档;

通过指定显示页面展示所述指定接口文档。

可选地,所述通过指定显示页面展示所述指定接口文档的步骤,包括:

创建指定数量的不同形式的显示界面;

接收所述用户从所有所述显示界面中选取的第一显示界面;

将所述第一显示界面确定为所述指定显示页面,并通过所述第一显示界面展示所述指定接口文档。可选地,所述若存在与所述搜索关键词对应的索引项,则获取所述索引项对应的指定接口文档,并通过指定显示页面展示所述指定接口文档的步骤之后,包括:

判断是否接收到所述用户在所述指定显示界面内输入的修改信息;

若是,根据所述修改信息对所述指定接口文档进行修改,得到修改后的接口文档;

使用所述修改后的接口文档替换所述指定接口文档。

可选地,所述将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档的步骤之后,包括:

判断所述第一接口文档对应的所述源代码是否产生了修改记录;

若所述源代码产生了修改记录,则获取修改后的源代码的指定接口信息,并将所述指定接口信息与预存储的所述源代码的原始接口信息进行对比,得到对比结果,其中所述原始接口信息为修改前的源代码的接口信息;

根据所述对比结果,判断所述指定接口信息与所述原始接口信息是否存在差异;

若所述指定接口信息与所述原始接口信息存在差异,则根据所述指定接口信息与所述原始接口信息的差异,对所述第一接口文档进行更新。

可选地,所述将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档的步骤之后,包括:

判断是否接收到所述用户输入的对于指定接口的调试请求,其中所述指定接口为需要进行调试的接口,所述调试请求携带所述指定接口的请求参数;

将所述调试请求转发至所述指定接口对应指定项目的应用实例,以通过所述应用实例对所述调试请求进行处理,并得到与所述指定接口的请求参数对应的输出参数;

接收所述应用实例返回的所述输出参数,并展示所述输出参数。

本申请还提供一种接口文档的生成装置,包括:

第一获取模块,用于获取第一项目的源代码;

筛选模块,用于从所述源代码的所有类方法中筛选出带有接口标记的类方法,并将所述带有接口标记的类方法记为接口类方法;

第一提取模块,用于通过反射技术从与所述接口类方法对应的方法体中提取接口基本信息,以及从所述方法体对应的代码注解信息中提取接口附加信息;

整合模块,用于整合所述接口基本信息与所述接口附加信息,形成第一接口信息,其中所述第一接口信息至少包括输入参数的名称、输入参数的类型、输出参数的名称、输出参数的类型以及参数注释信息;

添加模块,用于将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档。

本申请还提供一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。

本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。

本申请中提供的接口文档的生成方法、装置、计算机设备和存储介质,具有以下有益效果:

本申请中提供的接口文档的生成方法、装置、计算机设备和存储介质,获取第一项目的源代码;从所述源代码的所有类方法中筛选出带有接口标记的类方法,并将所述带有接口标记的类方法记为接口类方法;通过反射技术从与所述接口类方法对应的方法体中提取接口基本信息,以及从所述方法体对应的代码注解信息中提取接口附加信息;整合所述接口基本信息与所述接口附加信息,形成第一接口信息,其中所述第一接口信息至少包括输入参数的名称、输入参数的类型、输出参数的名称、输出参数的类型以及参数注释信息;将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档。通过本申请可以自动生成与第一项目的源代码对应的第一接口文档,不需人工编写,保证了第一接口文档与第一接口信息的一致性,有效地节省了人力成本,提高了接口文档的生成效率,而且生成的接口文档的格式统一,便于不同的开发人员进行阅读。

附图说明

图1是本申请一实施例的接口文档的生成方法的流程示意图;

图2是本申请一实施例的接口文档的生成装置的结构示意图;

图3是本申请一实施例的计算机设备的结构示意图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用于解释本申请,并不用于限定本申请。

需要说明,本申请实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变,所述的连接可以是直接连接,也可以是间接连接。

参照图1,本申请一实施例的接口文档的生成方法,包括:

s1:获取第一项目的源代码;

s2:从所述源代码的所有类方法中筛选出带有接口标记的类方法,并将所述带有接口标记的类方法记为接口类方法;

s3:通过反射技术从与所述接口类方法对应的方法体中提取接口基本信息,以及从所述方法体对应的代码注解信息中提取接口附加信息;

s4:整合所述接口基本信息与所述接口附加信息,形成第一接口信息,其中所述第一接口信息至少包括输入参数的名称、输入参数的类型、输出参数的名称、输出参数的类型以及参数注释信息;

s5:将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档。

如上述步骤s1所述,本实施例的方法的执行主体为接口文档的生成装置,上述接口文档的生成装置在获取了第一项目的源代码后,可自动生成与该第一项目的源代码对应的第一接口文档,其中上述第一项目可为开发机上的特定项目,上述第一项目的源代码可通过扫描该第一项目的代码文件项目下的代码文件得到。具体地,可根据用户输入的第一项目信息从预设的程序开发管理工具中获取与该第一项目信息对应的第一项目,并从第一项目内提取出对应的源代码,其中,对上述源代码的类型不作限定,例如上述源代码文件可以为java代码,也可以为由其它编程语言编写的代码,本实施例以源代码为java代码进行说明。

如上述步骤s2至步骤s4所述,在获得上述源代码后,再通过反射技术对上述第一项目的源代码进行解析,来得到与第一项目对应的第一接口信息,其中上述反射技术为一种适用于编程语言的反射机制,通过该反射机制可以实现动态获取信息以及动态调用对象方法的功能,从而可以实现在运行状态中对于源代码中的任意一个类,都能够获取这个类所有的属性信息。另外,源代码中可以包括多个类,一个类中可包括多个类方法,且类方法包括接口类方法和非接口类方法,其中可将带有接口标记的类方法称为接口类方法,例如方法体中带有@path标记的类方法为接口类方法,且不同的服务框架对接口的标记有所不同,在jersey框架中标记有@path的method类为对外提供的接口,而在springmvc框架中标记有@pathmapping的method类为对外提供的接口。上述通过反射技术对第一项目的源代码进行解析,得到与源代码对应的第一接口信息的过程,具体包括:首先获取源代码内的接口类方法,即上述源代码的所有类方法中筛选出带有接口标记的类方法(源代码内的接口类方法),以查找出源代码的类中所包括的接口。然后通过上述反射技术从与上述接口类方法对应的方法体中获取接口基本信息,以及从上述方法体对应的代码注解信息中提取出接口附加信息,其中上述接口基本信息包括参数名称和参数类型等信息,上述接口附加信息包括接口描述信息、接口类型等信息。最后整合上述接口基本信息与接口附加信息,即将上述接口附加信息添加至相对应的接口基本信息内,以形成上述第一接口信息。

如上述步骤s5所述,在获得了与第一项目的源代码对应的第一接口信息后,进一步将第一接口信息添加到预设的接口文档模板内,并根据该预设的接口文档模板来生成与源代码对应的上述第一接口文档,其中,上述第一接口信息由接口基本信息与接口附加信息整合形成,具体可包括输入参数的名称、输入参数的类型、输出参数的名称、输出参数的类型以及参数注释信息等,上述接口文档模板可根据实际需求进行设置,在此不做具体限制。在本实施例,通过反射技术来解析出源代码内与接口对应的第一接口信息,以便后续直接将第一接口信息添加至预设的接口文档内,来自动形成第一项目的接口文档,保证了第一接口文档与第一接口信息的一致性,免去了人工编写接口文档的动作,有效地节省了人力成本,提高了接口文档的生成效率,并且生成的接口文档的格式统一,便于不同的开发人员进行阅读。

进一步地,本申请一实施例中,上述步骤s1之前,包括:

s100:接收用户输入的第一项目信息,其中所述第一项目信息包括maven坐标;

s101:根据所述maven坐标,从预设的程序开发管理工具搜寻出与所述maven坐标对应的所述第一项目;

s102:生成获取所述第一项目的源代码的指令。

如上述步骤s100至s102所述,在上述获取第一项目的源代码的步骤之前,还包括获取第一项目的过程,具体可包括:首先接收用户输入的第一项目信息,其中该第一项目信息包括maven坐标,即groupid、artifactid以及version。其中,上述groupid是项目组织唯一的标识符,实际对应java的包的结构,是main目录里java的目录结构,举例地groupid定义了项目属于哪个组,如果有一个公司是mycom,有一个项目为myapp,那么groupid就可表示为:com.mycom.myapp;上述artifactid是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称,artifactid定义了当前maven项目在组中唯一的id,例如可以为myapp-util,myapp-domain,myapp-web等;上述version指定了maven项目的当前版本。在获得了上述第一项目信息,即上述maven坐标后,便可从预设的程序开发管理工具中搜寻出与该第一项目信息对应的第一项目,其中上述程序开发管理工具为maven仓库,最后再生成获取所述第一项目的源代码的指令,以实现对第一项目的源代码的获取,以便后续根据第一项目内的源代码来自动生成对应的第一接口文档。其中对第一项目的源代码的获取方式可包括两种,可为直接下载并存储该第一项目,从而后续可以直接从下载内容中获取该第一项目的源代码,还可为在上述maven仓库搜寻出第一项目后,直接从maven仓库调用出该第一项目的源代码。

进一步地,本申请一实施例中,上述步骤s5之后,包括:

s500:为所述第一接口文档建立对应的第一索引,并将所述第一索引以及所述第一接口文档上传至预设的文档数据库,其中所述第一接口文档为所述文档数据库包含的所有接口文档中的任意一个接口文档;

s501:判断是否接收到用户输入的文档搜索指令;

s502:若接收到用户输入的文档搜索指令,则提取出所述文档搜索指令中的搜索关键词;

s503:判断所述文档数据库预存储的索引中,是否存在与所述搜索关键词对应的索引项;

s504:若存在与所述搜索关键词对应的索引项,则获取所述索引项对应的指定接口文档;

s505:通过指定显示页面展示所述指定接口文档。

如上述步骤s500至s505所述,可预先创建一个用于存储接口文档的文档数据库,在生成了上述第一接口文档后,便可以将该第一接口文档上传至该文档数据库内进行存储,并且后续生成的其它项目的接口文档也会上传至该文档数据库进行存储,从而使得该文档数据库存储有所有项目的接口文档,进一步可为所有项目的接口文档建立索引,并将接口文档和对应的索引一起上传至该文档数据库进行存储,以通过该文档数据库实现对于所有项目的接口文档的统一集中式管理和查询。从而后续用户在需要阅读第一接口文档时,可快速地从文档数据库中已上传的所有接口文档中索引出上述第一接口文档。在本实施例,在生成上述第一接口文档后,首先为第一接口文档建立对应的第一索引,将所述第一索引以及所述第一接口文档上传至预设的文档数据库,其中上述第一接口文档为文档数据库包含的所有接口文档中的任意一个接口文档。然后判断是否接收到用户输入的携带有搜索关键词的文档搜索指令,如果接收到上述文档搜索指令,则提取出上述文档搜索指令中的搜索关键词,并判断上述文档数据库预存储的索引中是否存在与该搜索关键词对应的索引项,其中上述搜索关键词与上述指定接口文档具有对应关系,该搜索关键词可包括该指定接口文档内的某些关键性词语,且上述文档数据库为已上传的所有接口文档建立了对应的索引。如果存在与上述搜索关键词对应的索引项,则获取与上述索引项对应的指定接口文档,并通过指定显示页面向上述用户展示上述指定接口文档。在本实施例,用户只需要输入与指定接口文档对应的携带有搜索关键词的文档搜索指令,便可以从文档数据库的索引匹配出与该搜索关键词对应的索引项,从而快速地获取得到与该索引项对应的指定接口文档。通过上述文档数据库有利于实现对于接口文档的统一管理和查询,实现对所有的接口文档的集中式管理,提高了查找接口文档的便捷性。

进一步地,本申请一实施例中,上述步骤s505,包括:

s5050:创建指定数量的不同形式的显示界面;

s5051:接收所述用户从所有所述显示界面中选取的第一显示界面;

s5052:将所述第一显示界面确定为所述指定显示页面,并通过所述第一显示界面展示所述指定接口文档。

如上述步骤s5050至s5052所述,上述通过指定显示页面展示指定接口文档的步骤,具体可包括:首先创建指定数量的不同形式的显示界面,其中,上述指定数量根据实际情况进行设定,上述不同形式的显示界面可具体包括但不限于文本框形式显示界面、表格形式显示界面、代码形式显示界面以及网页形式显示界面。然后接收用户从所有的显示界面中选取的第一显示界面,并将该第一显示界面确定为上述指定显示页面,以及通过该第一显示界面向用户展示上述指定接口文档,以便用户对该指定接口文档进行查阅。在本实施例,通过设置用于显示接口文档的多种不同形式的显示界面,由于不同形式的显示界面可适用于不同的用户,用户可以从所有的显示界面中挑选满足自身需求的第一显示界面,即指定显示界面,并通过该第一显示界面来展示该指定接口文档,有效的提高了指定接口文档的可读性,也提高了用户的使用体验,进一步地,用户可对展示的指定接口文档进行审核来实现对于生成的接口文档的准确性判断,并可对该接口文档进行修改处理。

进一步地,本申请一实施例中,上述步骤s505之后,包括:

s506:判断是否接收到所述用户在所述指定显示界面内输入的修改信息;

s507:若是,根据所述修改信息对所述指定接口文档进行修改,得到修改后的接口文档;

s508:使用所述修改后的接口文档替换所述指定接口文档。

如上述步骤s506至s508所述,在用户通过上述指定显示界面查看上述指定接口文档时,如果发现该指定接口文档有描述错误的内容,或者用户需要在指定接口文档上添加或删除某些内容时,可以直接在上述指定显示界面输入针对当前的指定接口文档的修改信息,其中上述修改信息包括对api(applicationprogramminginterface,应用程序编程接口)接口的作者、开发日期、方法列表、方法的功能描述、方法的参数类型与名称、方法参数的描述信息、方法返回值类型与描述信息、方法可接受的请求类型与方法以及方法的请求路径等信息进行修改。之后,根据上述修改信息对指定接口文档进行修改,并得到修改后的接口文档,最后使用修改后的接口文档替换所述指定接口文档。在本实施例,在用户查看指定接口文档时,可以根据自己的需求,在指定显示界面中输入修改信息来快速地实现对指定接口文档的内容的修改,以对指定接口文档进行纠正,并且对于指定接口文档的修改遵从了用户的意愿,有效提高了用户的使用体验。

进一步地,本申请一实施例中,上述步骤s5之后,包括:

s510:判断所述第一接口文档对应的所述源代码是否产生了修改记录;

s511:若所述源代码产生了修改记录,则获取修改后的源代码的指定接口信息,并将所述指定接口信息与预存储的所述源代码的原始接口信息进行对比,得到对比结果,其中所述原始接口信息为修改前的源代码的接口信息;

s512:根据所述对比结果,判断所述指定接口信息与所述原始接口信息是否存在差异;

s513:若所述指定接口信息与所述原始接口信息存在差异,则根据所述指定接口信息与所述原始接口信息的差异,对所述第一接口文档进行更新。

如上述步骤s510和s513所述,在生成了上述与第一项目的源代码对应的第一接口文档后,如果检测到该第一接口文档对应的源代码产生了修改记录,例如开发人员对该源代码进行了修改,且对该源代码进行的修改会对接口文档的具体内容造成影响,则会根据开发人员对于该源代码的修改来完成对第一接口文档的同步更新,具体的过程可包括:首先判断上述第一接口文档对应的源代码是否产生了修改记录,若该源代码产生了修改记录,则获取修改后的源代码的指定接口信息,并将上述修改后的源代码的指定接口信息与预存储的源代码的原始接口信息进行对比,得到对比结果。其中上述原始接口信息为修改前的源代码的接口信息,且在该原始接口信息生成之后会进行存储处理,另外上述对比结果可包括指定接口信息与原始接口信息相同,或指定接口信息与原始接口信息不相同,即指定接口信息与原始接口信息存在差异。然后根据上述对比结果,判断上述指定接口信息与上述原始接口信息是否存在差异,如果两者存在差异,则根据指定接口信息与原始接口信息的差异对第一接口文档进行更新。其中上述指定接口信息与原始接口信息的差异可包括:修改后的接口源代码的指定接口信息与修改前的接口源代码的接口信息,即上述原始接口信息相比,增加了新的数据、删除了旧的数据或者将旧的数据替换成新的数据,等等,另外上述数据是指接口信息内包括的数据,即输入参数的类型、输入参数的名称、输出参数的类型、输出参数的名称以及参数注释信息等数据。进一步地,如果指定接口信息与原始接口信息不存在差异,则不对原始接口信息对应的第一接口文档进行更改处理。在本实施例,当第一项目的源代码被开发人员修改后,先获取源代码经过修改后的指定接口信息,并检测出修改后的源代码的指定接口信息与原始接口信息之间是否存在差异,若存在则根据该差异来对第一接口文档进行更新,有效地实现了当源代码出现变动时第一接口文档的自动同步更新,从而不需要人工维护接口文档,减少开发人员的工作量。另外在检测出上述指定接口信息与原始接口信息的差异,只对发生了变化的数据进行重新生成及保持其它部分不变,使得接口文档只需针对上述差异进行小幅度的修改,提高了接口文档同步更新的速度,也减少了接口文档同步更新的工作量。

进一步地,本申请一实施例中,上述步骤s5之后,包括:

s520:判断是否接收到所述用户输入的对于指定接口的调试请求,其中所述指定接口为需要进行调试的接口,所述调试请求携带所述指定接口的请求参数;

s521:将所述调试请求转发至所述指定接口对应指定项目的应用实例,以通过所述应用实例对所述调试请求进行处理,并得到与所述指定接口的请求参数对应的输出参数;

s522:接收所述应用实例返回的所述输出参数,并展示所述输出参数。

如上述步骤s520至s522所述,上述接口文档的生成装置还包括有对接口的调试功能,当接收到用户输入的对于指定接口的调试请求后,会将该调试请求转发至上述指定接口所属的指定项目的应用实例,即指定接口所属的指定项目正在运行中的服务实例,以使得该服务实例对该调试请求进行处理并得到处理结果,其中上述指定接口为需要进行调试的接口,上述调试请求携带有该指定接口的请求参数,且该请求参数为用户填入的指定输入参数,上述服务实例对该调试请求进行处理后得到的处理结果是输出的与指定输入参数对应的指定输出参数,举例地,如果用户填入的指定输入参数为http(hypertexttransferprotocol,超文本传输协议)请求类型参数的参数,则进行处理得到的指定输出参数为http协议状态码信息;如果指定输入参数为非http请求类型参数的参数,则指定输出参数为对应的返回值描述信息。之后,在接收到上述应用实例返回的处理结果,即输出参数后,便会向用户展示该处理结果,来完成对接口的调试,用户可根据得到的处理结果来与期望结果进行比对,从而验证该接口的功能是否完善以及服务是否可用。通过本实施例可有效地实现对于接口的调试功能,提高接口的开发效率。

参照图2,本申请一实施例中还提供了一种接口文档的生成装置,包括:

第一获取模块1,用于获取第一项目的源代码;

筛选模块2,用于从所述源代码的所有类方法中筛选出带有接口标记的类方法,并将所述带有接口标记的类方法记为接口类方法;

第一提取模块3,用于通过反射技术从与所述接口类方法对应的方法体中提取接口基本信息,以及从所述方法体对应的代码注解信息中提取接口附加信息;

整合模块4,用于整合所述接口基本信息与所述接口附加信息,形成第一接口信息,其中所述第一接口信息至少包括输入参数的名称、输入参数的类型、输出参数的名称、输出参数的类型以及参数注释信息;

添加模块5,用于将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档。

在上述第一获取模块中,本实施例的执行主体为接口文档的生成装置,上述接口文档的生成装置在获取了第一项目的源代码后,可自动生成与该第一项目的源代码对应的第一接口文档,其中上述第一项目可为开发机上的特定项目,上述第一项目的源代码可通过扫描该第一项目的代码文件项目下的代码文件得到。具体地,可根据用户输入的第一项目信息从预设的程序开发管理工具中获取与该第一项目信息对应的第一项目,并从第一项目内提取出对应的源代码,其中,对上述源代码的类型不作限定,例如上述源代码文件可以为java代码,也可以为由其它编程语言编写的代码,本实施例以源代码为java代码进行说明。

在上述筛选模块、第一提取模块以及整合模块中,在获得上述源代码后,再通过反射技术对上述第一项目的源代码进行解析,来得到与第一项目对应的第一接口信息,其中上述反射技术为一种适用于编程语言的反射机制,通过该反射机制可以实现动态获取信息以及动态调用对象方法的功能,从而可以实现在运行状态中对于源代码中的任意一个类,都能够获取这个类所有的属性信息。另外,源代码中可以包括多个类,一个类中可包括多个类方法,且类方法包括接口类方法和非接口类方法,其中可将带有接口标记的类方法称为接口类方法,例如方法体中带有@path标记的类方法为接口类方法,且不同的服务框架对接口的标记有所不同,在jersey框架中标记有@path的method类为对外提供的接口,而在springmvc框架中标记有@pathmapping的method类为对外提供的接口。上述通过反射技术对第一项目的源代码进行解析,得到与源代码对应的第一接口信息的过程,具体包括:首先获取源代码内的接口类方法,即上述源代码的所有类方法中筛选出带有接口标记的类方法(源代码内的接口类方法),以查找出源代码的类中所包括的接口。然后通过上述反射技术从与上述接口类方法对应的方法体中获取接口基本信息,以及从上述方法体对应的代码注解信息中提取出接口附加信息,其中上述接口基本信息包括参数名称和参数类型等信息,上述接口附加信息包括接口描述信息、接口类型等信息。最后整合上述接口基本信息与接口附加信息,即将上述接口附加信息添加至相对应的接口基本信息内,以形成上述第一接口信息。

在上述添加模块中,在获得了与第一项目的源代码对应的第一接口信息后,进一步将第一接口信息添加到预设的接口文档模板内,并根据该预设的接口文档模板来生成与源代码对应的上述第一接口文档,其中,上述第一接口信息由接口基本信息与接口附加信息整合形成,具体可包括输入参数的名称、输入参数的类型、输出参数的名称、输出参数的类型以及参数注释信息等,上述接口文档模板可根据实际需求进行设置,在此不做具体限制。在本实施例,通过反射技术来解析出源代码内与接口对应的第一接口信息,以便后续直接将第一接口信息添加至预设的接口文档内,来自动形成第一项目的接口文档,保证了第一接口文档与第一接口信息的一致性,免去了人工编写接口文档的动作,有效地节省了人力成本,提高了接口文档的生成效率,并且生成的接口文档的格式统一,便于不同的开发人员进行阅读。

进一步地,本申请一实施例中,上述接口文档的生成装置,包括:

接收模块,用于接收用户输入的第一项目信息,其中所述第一项目信息包括maven坐标;

搜寻模块,用于根据所述maven坐标,从预设的程序开发管理工具搜寻出与所述maven坐标对应的所述第一项目;

生成模块,用于生成获取所述第一项目的源代码的指令。

本实施例中,在上述获取第一项目的源代码的步骤之前,还包括获取第一项目的过程,具体可包括:首先接收用户输入的第一项目信息,其中该第一项目信息包括maven坐标,即groupid、artifactid以及version。其中,上述groupid是项目组织唯一的标识符,实际对应java的包的结构,是main目录里java的目录结构,举例地groupid定义了项目属于哪个组,如果有一个公司是mycom,有一个项目为myapp,那么groupid就可表示为:com.mycom.myapp;上述artifactid是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称,artifactid定义了当前maven项目在组中唯一的id,例如可以为myapp-util,myapp-domain,myapp-web等;上述version指定了maven项目的当前版本。在获得了上述第一项目信息,即上述maven坐标后,便可从预设的程序开发管理工具中搜寻出与该第一项目信息对应的第一项目,其中上述程序开发管理工具为maven仓库,最后再生成获取所述第一项目的源代码的指令,以实现对第一项目的源代码的获取,以便后续根据第一项目内的源代码来自动生成对应的第一接口文档。其中对第一项目的源代码的获取方式可包括两种,可为直接下载并存储该第一项目,从而后续可以直接从下载内容中获取该第一项目的源代码,还可为在上述maven仓库搜寻出第一项目后,直接从maven仓库调用出该第一项目的源代码。

进一步地,本申请一实施例中,上述接口文档的生成装置,包括:

上传模块,用于为所述第一接口文档建立对应的第一索引,并将所述第一索引以及所述第一接口文档上传至预设的文档数据库,其中所述第一接口文档为所述文档数据库包含的所有接口文档中的任意一个接口文档;

第一判断模块,用于判断是否接收到用户输入的文档搜索指令;

第二提取模块,用于若接收到用户输入的文档搜索指令,则提取出所述文档搜索指令中的搜索关键词;

第二判断模块,用于判断所述文档数据库预存储的索引中,是否存在与所述搜索关键词对应的索引项;

第二获取模块,用于若存在与所述搜索关键词对应的索引项,则获取所述索引项对应的指定接口文档;

第一展示模块,用于通过指定显示页面展示所述指定接口文档。

本实施例中,可预先创建一个用于存储接口文档的文档数据库,在生成了上述第一接口文档后,便可以将该第一接口文档上传至该文档数据库内进行存储,并且后续生成的其它项目的接口文档也会上传至该文档数据库进行存储,从而使得该文档数据库存储有所有项目的接口文档,进一步可为所有项目的接口文档建立索引,并将接口文档和对应的索引一起上传至该文档数据库进行存储,以通过该文档数据库实现对于所有项目的接口文档的统一集中式管理和查询。从而后续用户在需要阅读第一接口文档时,可快速地从文档数据库中已上传的所有接口文档中索引出上述第一接口文档。在本实施例,在生成上述第一接口文档后,首先为第一接口文档建立对应的第一索引,将所述第一索引以及所述第一接口文档上传至预设的文档数据库,其中上述第一接口文档为文档数据库包含的所有接口文档中的任意一个接口文档。然后判断是否接收到用户输入的携带有搜索关键词的文档搜索指令,如果接收到上述文档搜索指令,则提取出上述文档搜索指令中的搜索关键词,并判断上述文档数据库预存储的索引中是否存在与该搜索关键词对应的索引项,其中上述搜索关键词与上述指定接口文档具有对应关系,该搜索关键词可包括该指定接口文档内的某些关键性词语,且上述文档数据库为已上传的所有接口文档建立了对应的索引。如果存在与上述搜索关键词对应的索引项,则获取与上述索引项对应的指定接口文档,并通过指定显示页面向上述用户展示上述指定接口文档。在本实施例,用户只需要输入与指定接口文档对应的携带有搜索关键词的文档搜索指令,便可以从文档数据库的索引匹配出与该搜索关键词对应的索引项,从而快速地获取得到与该索引项对应的指定接口文档。通过上述文档数据库有利于实现对于接口文档的统一管理和查询,实现对所有的接口文档的集中式管理,提高了查找接口文档的便捷性。

进一步地,本申请一实施例中,上述第一展示模块,包括:

创建单元,用于创建指定数量的不同形式的显示界面;

接收单元,用于接收所述用户从所有所述显示界面中选取的第一显示界面;

展示单元,用于将所述第一显示界面确定为所述指定显示页面,并通过所述第一显示界面展示所述指定接口文档。

本实施例中,上述通过指定显示页面展示指定接口文档的步骤,具体可包括:首先创建指定数量的不同形式的显示界面,其中,上述指定数量根据实际情况进行设定,上述不同形式的显示界面可具体包括但不限于文本框形式显示界面、表格形式显示界面、代码形式显示界面以及网页形式显示界面。然后接收用户从所有的显示界面中选取的第一显示界面,并将该第一显示界面确定为上述指定显示页面,以及通过该第一显示界面向用户展示上述指定接口文档,以便用户对该指定接口文档进行查阅。在本实施例,通过设置用于显示接口文档的多种不同形式的显示界面,由于不同形式的显示界面可适用于不同的用户,用户可以从所有的显示界面中挑选满足自身需求的第一显示界面,即指定显示界面,并通过该第一显示界面来展示该指定接口文档,有效的提高了指定接口文档的可读性,也提高了用户的使用体验,进一步地,用户可对展示的指定接口文档进行审核来实现对于生成的接口文档的准确性判断,并可对该接口文档进行修改处理。

进一步地,本申请一实施例中,上述接口文档的生成装置,包括:

第三判断模块,用于判断是否接收到所述用户在所述指定显示界面内输入的修改信息;

修改模块,用于若是,根据所述修改信息对所述指定接口文档进行修改,得到修改后的接口文档;

替换模块,用于使用所述修改后的接口文档替换所述指定接口文档。

本实施例中,在用户通过上述指定显示界面查看上述指定接口文档时,如果发现该指定接口文档有描述错误的内容,或者用户需要在指定接口文档上添加或删除某些内容时,可以直接在上述指定显示界面输入针对当前的指定接口文档的修改信息,其中上述修改信息包括对api(applicationprogramminginterface,应用程序编程接口)接口的作者、开发日期、方法列表、方法的功能描述、方法的参数类型与名称、方法参数的描述信息、方法返回值类型与描述信息、方法可接受的请求类型与方法以及方法的请求路径等信息进行修改。之后,根据上述修改信息对指定接口文档进行修改,并得到修改后的接口文档,最后使用修改后的接口文档替换所述指定接口文档。在本实施例,在用户查看指定接口文档时,可以根据自己的需求,在指定显示界面中输入修改信息来快速地实现对指定接口文档的内容的修改,以对指定接口文档进行纠正,并且对于指定接口文档的修改遵从了用户的意愿,有效提高了用户的使用体验。

进一步地,本申请一实施例中,上述接口文档的生成装置,包括:

第四判断模块,用于判断所述第一接口文档对应的所述源代码是否产生了修改记录;

第三获取模块,用于若所述源代码产生了修改记录,则获取修改后的源代码的指定接口信息,并将所述指定接口信息与预存储的所述源代码的原始接口信息进行对比,得到对比结果,其中所述原始接口信息为修改前的源代码的接口信息;

第五判断模块,用于根据所述对比结果,判断所述指定接口信息与所述原始接口信息是否存在差异;

更新模块,用于若所述指定接口信息与所述原始接口信息存在差异,则根据所述指定接口信息与所述原始接口信息的差异,对所述第一接口文档进行更新。

本实施例中,在生成了上述与第一项目的源代码对应的第一接口文档后,如果检测到该第一接口文档对应的源代码产生了修改记录,例如开发人员对该源代码进行了修改,且对该源代码进行的修改会对接口文档的具体内容造成影响,则会根据开发人员对于该源代码的修改来完成对第一接口文档的同步更新,具体的过程可包括:首先判断上述第一接口文档对应的源代码是否产生了修改记录,若该源代码产生了修改记录,则获取修改后的源代码的指定接口信息,并将上述修改后的源代码的指定接口信息与预存储的源代码的原始接口信息进行对比,得到对比结果。其中上述原始接口信息为修改前的源代码的接口信息,且在该原始接口信息生成之后会进行存储处理,另外上述对比结果可包括指定接口信息与原始接口信息相同,或指定接口信息与原始接口信息不相同,即指定接口信息与原始接口信息存在差异。然后根据上述对比结果,判断上述指定接口信息与上述原始接口信息是否存在差异,如果两者存在差异,则根据指定接口信息与原始接口信息的差异对第一接口文档进行更新。其中上述指定接口信息与原始接口信息的差异可包括:修改后的接口源代码的指定接口信息与修改前的接口源代码的接口信息,即上述原始接口信息相比,增加了新的数据、删除了旧的数据或者将旧的数据替换成新的数据,等等,另外上述数据是指接口信息内包括的数据,即输入参数的类型、输入参数的名称、输出参数的类型、输出参数的名称以及参数注释信息等数据。进一步地,如果指定接口信息与原始接口信息不存在差异,则不对原始接口信息对应的第一接口文档进行更改处理。在本实施例,当第一项目的源代码被开发人员修改后,先获取源代码经过修改后的指定接口信息,并检测出修改后的源代码的指定接口信息与原始接口信息之间是否存在差异,若存在则根据该差异来对第一接口文档进行更新,有效地实现了当源代码出现变动时第一接口文档的自动同步更新,从而不需要人工维护接口文档,减少开发人员的工作量。另外在检测出上述指定接口信息与原始接口信息的差异,只对发生了变化的数据进行重新生成及保持其它部分不变,使得接口文档只需针对上述差异进行小幅度的修改,提高了接口文档同步更新的速度,也减少了接口文档同步更新的工作量。

进一步地,本申请一实施例中,上述接口文档的生成装置,还包括:

第六判断模块,用于判断是否接收到所述用户输入的对于指定接口的调试请求,其中所述指定接口为需要进行调试的接口,所述调试请求携带所述指定接口的请求参数;

转发模块,用于将所述调试请求转发至所述指定接口对应指定项目的应用实例,以通过所述应用实例对所述调试请求进行处理,并得到与所述指定接口的请求参数对应的输出参数;

第二展示模块,用于接收所述应用实例返回的所述输出参数,并展示所述输出参数。

本实施例中,上述接口文档的生成装置还包括有对接口的调试功能,当接收到用户输入的对于指定接口的调试请求后,会将该调试请求转发至上述指定接口所属的指定项目的应用实例,即指定接口所属的指定项目正在运行中的服务实例,以使得该服务实例对该调试请求进行处理并得到处理结果,其中上述指定接口为需要进行调试的接口,上述调试请求携带有该指定接口的请求参数,且该请求参数为用户填入的指定输入参数,上述服务实例对该调试请求进行处理后得到的处理结果是输出的与指定输入参数对应的指定输出参数,举例地,如果用户填入的指定输入参数为http(hypertexttransferprotocol,超文本传输协议)请求类型参数的参数,则进行处理得到的指定输出参数为http协议状态码信息;如果指定输入参数为非http请求类型参数的参数,则指定输出参数为对应的返回值描述信息。之后,在接收到上述应用实例返回的处理结果,即输出参数后,便会向用户展示该处理结果,来完成对接口的调试,用户可根据得到的处理结果来与期望结果进行比对,从而验证该接口的功能是否完善以及服务是否可用。通过本实施例可有效地实现对于接口的调试功能,提高接口的开发效率。

参照图3,本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图3所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储第一项目的源代码以及第一接口信息等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种接口文档的生成方法。

上述处理器执行上述接口文档的生成方法的步骤:

获取第一项目的源代码;

从所述源代码的所有类方法中筛选出带有接口标记的类方法,并将所述带有接口标记的类方法记为接口类方法;

通过反射技术从与所述接口类方法对应的方法体中提取接口基本信息,以及从所述方法体对应的代码注解信息中提取接口附加信息;

整合所述接口基本信息与所述接口附加信息,形成第一接口信息,其中所述第一接口信息至少包括输入参数的名称、输入参数的类型、输出参数的名称、输出参数的类型以及参数注释信息;

将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档。

在一实施例,所述获取第一项目的源代码的步骤之前,包括:

接收用户输入的第一项目信息,其中所述第一项目信息包括maven坐标;

根据所述maven坐标,从预设的程序开发管理工具搜寻出与所述maven坐标对应的所述第一项目;

生成获取所述第一项目的源代码的指令。

在一实施例,所述将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档的步骤之后,包括:

为所述第一接口文档建立对应的第一索引,并将所述第一索引以及所述第一接口文档上传至预设的文档数据库,其中所述第一接口文档为所述文档数据库包含的所有接口文档中的任意一个接口文档;

判断是否接收到用户输入的文档搜索指令;

若接收到用户输入的文档搜索指令,则提取出所述文档搜索指令中的搜索关键词;

判断所述文档数据库预存储的索引中,是否存在与所述搜索关键词对应的索引项;

若存在与所述搜索关键词对应的索引项,则获取所述索引项对应的指定接口文档;

通过指定显示页面展示所述指定接口文档。

在一实施例,所述通过指定显示页面展示所述指定接口文档的步骤,包括:

创建指定数量的不同形式的显示界面;

接收所述用户从所有所述显示界面中选取的第一显示界面;

将所述第一显示界面确定为所述指定显示页面,并通过所述第一显示界面展示所述指定接口文档。在一实施例,所述若存在与所述搜索关键词对应的索引项,则获取所述索引项对应的指定接口文档,并通过指定显示页面展示所述指定接口文档的步骤之后,包括:

判断是否接收到所述用户在所述指定显示界面内输入的修改信息;

若是,根据所述修改信息对所述指定接口文档进行修改,得到修改后的接口文档;

使用所述修改后的接口文档替换所述指定接口文档。

在一实施例,所述将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档的步骤之后,包括:

判断所述第一接口文档对应的所述源代码是否产生了修改记录;

若所述源代码产生了修改记录,则获取修改后的源代码的指定接口信息,并将所述指定接口信息与预存储的所述源代码的原始接口信息进行对比,得到对比结果,其中所述原始接口信息为修改前的源代码的接口信息;

根据所述对比结果,判断所述指定接口信息与所述原始接口信息是否存在差异;

若所述指定接口信息与所述原始接口信息存在差异,则根据所述指定接口信息与所述原始接口信息的差异,对所述第一接口文档进行更新。

在一实施例,所述将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档的步骤之后,包括:

判断是否接收到所述用户输入的对于指定接口的调试请求,其中所述指定接口为需要进行调试的接口,所述调试请求携带所述指定接口的请求参数;

将所述调试请求转发至所述指定接口对应指定项目的应用实例,以通过所述应用实例对所述调试请求进行处理,并得到与所述指定接口的请求参数对应的输出参数;

接收所述应用实例返回的所述输出参数,并展示所述输出参数。

本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的装置、计算机设备的限定。

本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种接口文档的生成方法,具体为:

获取第一项目的源代码;

从所述源代码的所有类方法中筛选出带有接口标记的类方法,并将所述带有接口标记的类方法记为接口类方法;

通过反射技术从与所述接口类方法对应的方法体中提取接口基本信息,以及从所述方法体对应的代码注解信息中提取接口附加信息;

整合所述接口基本信息与所述接口附加信息,形成第一接口信息,其中所述第一接口信息至少包括输入参数的名称、输入参数的类型、输出参数的名称、输出参数的类型以及参数注释信息;

将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档。

在一实施例,所述获取第一项目的源代码的步骤之前,包括:

接收用户输入的第一项目信息,其中所述第一项目信息包括maven坐标;

根据所述maven坐标,从预设的程序开发管理工具搜寻出与所述maven坐标对应的所述第一项目;

生成获取所述第一项目的源代码的指令。

在一实施例,所述将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档的步骤之后,包括:

为所述第一接口文档建立对应的第一索引,并将所述第一索引以及所述第一接口文档上传至预设的文档数据库,其中所述第一接口文档为所述文档数据库包含的所有接口文档中的任意一个接口文档;

判断是否接收到用户输入的文档搜索指令;

若接收到用户输入的文档搜索指令,则提取出所述文档搜索指令中的搜索关键词;

判断所述文档数据库预存储的索引中,是否存在与所述搜索关键词对应的索引项;

若存在与所述搜索关键词对应的索引项,则获取所述索引项对应的指定接口文档;

通过指定显示页面展示所述指定接口文档。

在一实施例,所述通过指定显示页面展示所述指定接口文档的步骤,包括:

创建指定数量的不同形式的显示界面;

接收所述用户从所有所述显示界面中选取的第一显示界面;

将所述第一显示界面确定为所述指定显示页面,并通过所述第一显示界面展示所述指定接口文档。在一实施例,所述若存在与所述搜索关键词对应的索引项,则获取所述索引项对应的指定接口文档,并通过指定显示页面展示所述指定接口文档的步骤之后,包括:

判断是否接收到所述用户在所述指定显示界面内输入的修改信息;

若是,根据所述修改信息对所述指定接口文档进行修改,得到修改后的接口文档;

使用所述修改后的接口文档替换所述指定接口文档。

在一实施例,所述将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档的步骤之后,包括:

判断所述第一接口文档对应的所述源代码是否产生了修改记录;

若所述源代码产生了修改记录,则获取修改后的源代码的指定接口信息,并将所述指定接口信息与预存储的所述源代码的原始接口信息进行对比,得到对比结果,其中所述原始接口信息为修改前的源代码的接口信息;

根据所述对比结果,判断所述指定接口信息与所述原始接口信息是否存在差异;

若所述指定接口信息与所述原始接口信息存在差异,则根据所述指定接口信息与所述原始接口信息的差异,对所述第一接口文档进行更新。

在一实施例,所述将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档的步骤之后,包括:

判断是否接收到所述用户输入的对于指定接口的调试请求,其中所述指定接口为需要进行调试的接口,所述调试请求携带所述指定接口的请求参数;

将所述调试请求转发至所述指定接口对应指定项目的应用实例,以通过所述应用实例对所述调试请求进行处理,并得到与所述指定接口的请求参数对应的输出参数;

接收所述应用实例返回的所述输出参数,并展示所述输出参数。

综上所述,本申请实施例中提供的接口文档的生成方法、装置、计算机设备和存储介质,获取第一项目的源代码;从所述源代码的所有类方法中筛选出带有接口标记的类方法,并将所述带有接口标记的类方法记为接口类方法;通过反射技术从与所述接口类方法对应的方法体中提取接口基本信息,以及从所述方法体对应的代码注解信息中提取接口附加信息;整合所述接口基本信息与所述接口附加信息,形成第一接口信息,其中所述第一接口信息至少包括输入参数的名称、输入参数的类型、输出参数的名称、输出参数的类型以及参数注释信息;将所述第一接口信息添加至预设的接口文档模板内,根据所述预设的接口文档模板生成与所述第一接口信息对应的第一接口文档。通过本申请可以自动生成与第一项目的源代码对应的第一接口文档,不需人工编写,保证了第一接口文档与第一接口信息的一致性,有效地节省了人力成本,提高了接口文档的生成效率,而且生成的接口文档的格式统一,便于不同的开发人员进行阅读。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储与一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram通过多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

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

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