CN110175043A - 协议接口代码版本更新通知的生成方法和装置 - Google Patents
协议接口代码版本更新通知的生成方法和装置 Download PDFInfo
- Publication number
- CN110175043A CN110175043A CN201910528730.1A CN201910528730A CN110175043A CN 110175043 A CN110175043 A CN 110175043A CN 201910528730 A CN201910528730 A CN 201910528730A CN 110175043 A CN110175043 A CN 110175043A
- Authority
- CN
- China
- Prior art keywords
- interface
- code
- update
- former
- protocol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Abstract
本申请涉及软件技术领域,本申请提供一种协议接口代码版本更新通知的生成方法和装置,所述方法包括:接收对协议接口的代码版本的更新指令,获取对应的更新版本标识和原版本标识;根据所述更新版本标识从更新项目源代码中调用对应的更新接口代码,以及根据所述原版本标识从原项目源代码中调用对应的原接口代码;将所述更新接口代码与原接口代码进行比较,确定比较得到的不同代码段;根据所述不同代码段及其相关信息生成代码版本更新通知。本申请缩短了接口代码在开发过程中的查找比对的响应时间,有助于提高提高接口代码的开发效率。
Description
技术领域
本申请涉及软件技术领域,具体而言,本申请涉及一种协议接口代码版本更新通知的生成方法和装置。
背景技术
在接口代码开发的过程中,开发人员需要对代码进行修复操作,并将版本之间的修改处进行查询,并将查找的结果进行存档,以便后续更容易获取到更新版本的修改代码。现有对接口的版本之间的修改查找通常是根据查找指令,进行相应的查找比对操作。若某段代码发送修改时,需要重新接收查找指令,查找比对操作不能及时根据代码的变化进行比对并通知操作人员,因此造成协议接口的代码的查找比对的响应时间长,从而影响了接口代码的开发效率。
发明内容
为克服以上技术问题,特别是针对目前的协议接口的版本修改查找不能及时根据代码的变化进行比对的问题,特提出以下技术方案:
第一方面,本申请提供一种协议接口代码版本更新通知的生成方法,包括以下步骤:
接收对协议接口的代码版本的更新指令,获取对应的更新版本标识和原版本标识;
根据所述更新版本标识从更新项目源代码中调用对应的更新接口代码,以及根据所述原版本标识从原项目源代码中调用对应的原接口代码;
将所述更新接口代码与原接口代码进行比较,确定比较得到的不同代码段;
根据所述不同代码段及其相关信息生成代码版本更新通知。
在其中一个实施例中,所述接收对协议接口的代码版本的更新指令,获取对应的更新版本标识和原版本标识的步骤,包括:
根据接收对协议接口的代码版本的更新指令,获取所述协议接口的接口标识;
利用所述接口标识的不同历史修改信息,获取对应的更新版本标识和原版本标识。
在其中一个实施例中,所述根据所述更新版本标识从更新项目源代码中调用对应的更新接口代码的步骤,包括:
根据所述更新版本标识,确定更新项目源代码,并将所述更新项目源代码转换为对应的更新项目源码树;
对所述更新项目源码树的各个节点进行解析,获取所述更新项目源码树的更新功能模块;
通过解析所述更新功能模块,得到协议接口的更新接口参数;
根据所述更新接口参数,调用更新接口代码;
所述根据所述原版本标识从原项目源代码中调用对应的原接口代码的步骤,包括:
根据所述原版本标识,确定原项目源代码,并将所述原项目源代码转换为对应的原项目源码树;
对所述原项目源码树的各个节点进行解析,获取原功能模块;
通过解析所述原功能模块,得到所述协议接口的原接口参数;
根据所述原接口参数,调用原接口代码。
在其中一个实施例中,所述根据所述更新接口参数,调用更新接口代码的步骤,包括:
根据所述更新接口参数,确定所述更新功能模块的更新接口类,得到更新接口代码文档;
解析所述更新接口类,得到所述更新接口类中方法集的更新代码接口;
根据所述更新代码接口,在所述更新代码接口代码文档中调用对应的更新接口代码;
所述根据所述原接口参数,调用原接口代码的步骤,包括:
根据所述原接口参数,确定所述原功能模块的原接口类,得到原接口代码文档;
解析所述原接口类,得到所述原接口类中方法集的原代码接口;
根据所述原代码接口,在所述原接口代码文档中调用对应的原接口代码。
在其中一个实施例中,根据所述更新接口参数,得到所述协议接口的更新入参数据和更新出参数据的至少一项数据;以及,根据所述原接口参数,得到所述协议接口的原入参数据和原出参数据的至少一项数据;
所述将所述更新接口代码与原接口代码进行比较,确定比较得到的不同代码段的步骤,包括:
分别对所述更新入参数据和原入参数据,与所述更新出参数据与原出参数据的至少一组数据进行绝对等比较,得到更新入参数据和原入参数据之间,与更新出参数据和原出参数据之间的至少一种对应的差异数据项;
根据所述差异数据项,确认更新接口代码和原接口代码之间的不同代码段。
在其中一个实施例中,所述将所述更新接口代码与原接口代码进行比较的步骤,包括:
将所述更新接口代码与原接口代码进行字符串比较。
在其中一个实施例中,所述根据所述不同代码段及其相关信息生成代码版本更新通知的步骤,包括:
根据所述更新接口代码和原接口代码的比较得到的不同代码段,得到更新代码中对应位置和对应内容的代码差异;
将所述代码差异结果生成HTML格式的版本差异文档的代码版本更新通知。
在其中一个实施例中,所述协议接口代码版本更新通知的生成方法还包括:
将所述代码版本更新通知通过协议接口预设的邮箱地址向用户推送。
在其中一个实施例中,在所述接收对协议接口的代码版本的更新指令的步骤之前,还包括:
接收到所述协议接口的接口文档,通过所述接口文档的解析获取所述协议接口的接口标识;
根据所述接口标识,得到所述协议接口的至少两个版本标识。
在其中一个实施例中,在所述接收到所述协议接口的接口文档的步骤之前,还包括:
获取用户输入的协议接口对应的项目源代码,并将所述项目源代码形成源码树;
对所述源码树的各个节点进行分析得到协议接口;
对所述协议接口解析得到协议接口信息,并生成所述协议接口的接口文档。
第二方面,本申请还提供一种协议接口代码版本更新通知的生成装置,其包括:
版本标识获取模块,用于接收对协议接口的代码版本的更新指令,获取对应的更新版本标识和原版本标识;
接口代码调用模块,用于根据所述更新版本标识从更新项目源代码中调用对应的更新接口代码,以及根据所述原版本标识从原项目源代码中调用对应的原接口代码;
接口代码比较模块,用于将所述更新接口代码与原接口代码进行比较,确定比较得到的不同代码段;
通知生成模块,根据所述不同代码段及其相关信息生成代码版本更新通知。
第三方面,本申请还提供一种服务器,其包括:
一个或多个处理器;
存储器;
一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于执行上述任意一项的协议接口代码版本更新通知的生成方法。
第四方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一项的协议接口代码版本更新通知的生成方法。
本申请所提供的一种协议接口代码版本更新通知的生成方法和装置,根据协议接口的代码版本的更新指令,获取该协议接口的更新版本标识和原版本标识,并依据更新版本标识和原版本标识在对应的项目源代码中调用对应的更新接口代码与原接口代码,并将该更新接口代码与原接口代码进行比较得到对应的不同代码段,并生成代码版本更新通知。本申请所提供的技术方案,可以通过根据所接收到的协议接口的代码修改及时检测到代码的版本进行了更新,以便启动不同版本的更新接口代码和原接口代码进行代码对比,不必要如目前的协议接口比对的指令才能进行对比,从而缩短了接口代码在开发过程中的查找比对的响应时间,有助于提高提高接口代码的开发效率。
本申请附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是一个实施例中的协议接口代码版本更新通知的生成方法的流程图;
图2是另一个实施例中的协议接口代码版本更新通知的生成方法的流程图;
图3a是一实施例中的步骤S120中的针对更新接口代码调用的详细流程图;
图3b是一实施例中的步骤S120中的针对原接口代码调用的详细流程图;
图4a是一实施例步骤S124中的根据更新接口参数调用更新接口代码的详细流程图;
图4b是一实施例步骤S128中的根据原接口参数调用原接口代码的详细流程图;
图5是一实施例中的步骤S130的详细流程图;
图6是一实施例中的步骤S140的详细流程图;
图7是又一个实施例中的协议接口代码版本更新通知的生成方法的流程图;
图8是一个实施例中的协议接口代码版本更新通知的生成装置的结构示意图;
图9是一实施例中的服务器执行协议接口代码版本更新通知的生成方法的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作。
为了解决目前的协议接口的版本间差异不能根据接口代码版本的更新及时进行比对的问题,本申请提供了一种协议接口代码版本更新通知的生成方法,请参考图1所示,图1是一个实施例中的协议接口代码版本更新通知的生成方法的流程图,该方法的流程包括以下步骤:
S110、接收对协议接口的代码版本的更新指令,获取对应的更新版本标识和原版本标识。
当用户通过客户端修改协议接口代码或者是向服务器上传接口代码的更新版本时,所述客户端根据代码修改信息向服务器发送协议接口的代码版本的更新指令。服务器通过接收该更新指令时,对所述代码修改信息进行解析,确认代码修改对应的协议接口,并获取该协议接口对应的更新版本标识和原版本标识。
其中,所述更新版本标识和原版本标识是根据所述协议接口的对应修改时间的代码版本的更新指令,所生成的对应版本标识。该版本标识与所述协议接口的不同历史修改时间的接口代码一一对应。
S120、根据所述更新版本标识从更新项目源代码中调用对应的更新接口代码,以及根据所述原版本标识从原项目源代码中调用对应的原接口代码。
由于上述步骤S110所获取的更新版本标识和原版本标识与所述协议接口的不同历史修改时间的代码一一对应,根据所述协议接口的更新版本标识可从所述更新项目源代码中调用对应的更新接口代码。同样地,根据所述协议接口的原版本标识可从所述原项目源代码中调用对应的原接口代码。
S130、将所述更新接口代码与原接口代码进行比较,确定比较得到的不同代码段。
将步骤S120所得到的更新接口代码与原接口代码,确认经过比较后,所得到关于该协议接口的更新接口代码与其对应的原接口代码之间的不同的代码段。
S140、根据所述不同代码段及其相关信息生成代码版本更新通知。
服务器根据由步骤S130所得到的关于该协议接口的更新接口代码与其对应的原接口代码之间的不同的代码段,以及关于该不同的代码段的相关接口代码的信息,生成关于该协议接口的代码版本更新通知。
根据以上陈述,本申请所提供的一种协议接口代码版本更新通知的生成方法,利用服务器所接收到的来自协议接口的代码修改所身处的代码版本的更新指令,获取对应版本的更新版本标识和原版本标识,并利用版本标识与项目源代码的对应性,从对应的项目源代码中调用所述协议接口对应的更新接口代码和原接口代码,并比较得到两者之间的不同的代码段,并根据该不同的代码段及相关信息生成关于代码版本的更新通知。该协议接口代码版本更新通知的生成方法能及时通过获取协议接口的代码修改的更新指令,确定所述协议接口的代码版本进行更新,没有必要根据关于所述协议接口的代码查找指令,才能对所述协议接口的更新接口代码和原接口代码进行对比。从而,能在所述协议接口发送变更时,及时对更新接口代码和原接口代码进行对比,并根据对比的相关信息生成代码版本更新通知。本申请通过缩短接口代码在开发的过程中的查找比对的响应时间,提高接口代码的开发效率。
请参考图2所示,图2是另一个实施例中的协议接口代码版本更新通知的生成方法的流程图。在本实施例中,步骤S110还可以进一步包括以下子步骤:
S111、根据接收对协议接口的代码版本的更新指令,获取所述协议接口的接口标识;
S112、利用所述接口标识的不同历史修改信息,获取对应的更新版本标识和原版本标识。
在步骤S111-S112中,服务器接收到因所述协议接口的代码修改所生成的更新指令,通过对更新指令进行解析得到所述协议接口的接口信息。所述接口信息可包括所述协议接口所对应的项目标识、功能模块、版本标识以及统一资源标识符等信息关联形成的。如根据对应的关联公式:interfaceKey=MD5(proIndex+“_”+moduleName+“_”+editionName+“_”+uri)。该关联公式采用MD5信息摘要算法生成MD5摘要作为协议接口的唯一接口标识。
根据该接口标识确定对应的协议接口,并根据所述协议接口的接口标识在不同历史修改信息,获取所述协议接口的更新版本标识和原版本标识。
该实施例根据所述更新指令解析获得所述协议接口的接口标识,由于该接口标识根据项目源代码-功能模块-版本-统一资源标识符等因素的关联生成的,因此,其对于该协议接口是唯一的接口标识,以便能利用该接口标识的指代特征,且结合不同版本的历史修改时间,准确获取对应的更新版本标识和原版本标识。
请参考图3a-3b所示,图3a-3b分别是一实施例中步骤120中的针对更新接口代码的调用的详细流程图,及一实施例中步骤120中的针对原接口代码的调用的详细流程图。
在上述步骤S111-S112的基础上,步骤S120中的根据所述更新版本标识从更新项目源代码中调用对应的更新接口代码的步骤,可进一步包括以下子步骤:
S121、根据所述更新版本标识,确定更新项目源代码,并将所述更新项目源代码转换为对应的更新项目源码树;
S122、对所述更新项目源码树的各个节点进行解析,获取所述更新项目源码树的更新功能模块;
S123、通过解析所述更新功能模块,得到协议接口的更新接口参数;
S124、根据所述更新接口参数,调用更新接口代码。
对于上述步骤S121-S124,利用所述版本标识与代码的对应性,根据更新版本标识,得到所述协议接口的接口信息和其更新时间。服务器根据该接口信息和其更新时间,获取对应的更新项目源代码,并将所述更新项目源代码转换成对应的更新项目源码树。并对所述更新项目源码树的各个节点进行解析,得到各个节点对应的功能模块。根据所述更新版本标识,获得对应的更新功能模块。
通过对所述更新功能模块进行解析,获取所述更新功能模块中的各个接口及接口参数。每个接口参数中包含有各接口的属性信息、名称、描述、统一资源标识符、出参数据、出参数据和协议类型等信息。根据所述更新版本标识对应的接口标识与各个接口参数进行对应,得到所述协议接口的更新接口参数。根据所述更新接口参数,在所述更新项目源代码中调用更新接口代码。
同理,步骤S120中的根据所述原版本标识从原项目源代码中调用对应的原接口代码的步骤,可进一步包括以下子步骤:
S125、根据所述原版本标识,确定原项目源代码,并将所述原项目源代码转换为对应的原项目源码树;
S126、对所述原项目源码树的各个节点进行解析,获取原功能模块;
S127、通过解析所述原功能模块,得到所述协议接口的原接口参数;
S128、根据所述原接口参数,调用原接口代码。
对于上述步骤S125-S128,利用所述版本标识与代码的对应性,根据原版本标识,得到所述协议接口的接口信息和其更新时间。服务器根据该接口信息和其更新时间,并将所述原项目源代码转换成对应的原项目源码树。并对所述原项目源码树的各个节点进行解析,得到各个节点对应的功能模块。根据所述原版本标识,获得对应的原功能模块。
通过对所述原功能模块进行解析,获取所述原功能模块中的各个接口及接口参数。根据所述原版本标识对应的接口标识与各个接口参数进行对应,得到所述协议接口的原接口参数。根据所述原接口参数,在所述原项目源代码中调用原接口代码。
在上述的实施例中,根据所述版本标识与对应项目源代码的对应性,并对项目源代码进行解析获得对应的接口参数,进而利用所述协议接口的接口参数调用对应的接口代码,以便根据版本标识准确确定对应的接口代码的范围,为更新接口代码与原接口代码的对比提供准确的对比载体。
请参考图4a所示,图4a是一实施例中的步骤S124中的根据更新接口参数调用更新接口代码的详细流程图。
对于步骤S124,可进一步包括以下子步骤:
S1241、根据所述更新接口参数,确定所述更新功能模块的更新接口类,得到更新接口代码文档;
S1242、解析所述更新接口类,得到所述更新接口类中方法集的更新代码接口;
S1243、根据所述更新代码接口,在所述更新接口代码文档中调用对应的更新接口代码。
对于上述步骤S1241-S1243,根据所述协议接口的更新接口参数,获取所述协议接口的属性信息,确定所述更新功能模块的更新接口类,得到由所述更新接口类代码所形成的更新接口代码文档。
根据所述协议接口的属性信息,对所述更新接口类进行解析,得到所述更新接口类中方法集的更新代码接口。根据获得的所述更新代码接口及其接口参数,在所述更新项目源代码中定位所述更新接口代码,并对该更新接口代码进行调用。
同理,请参考图4b所示,图4b是一实施例中的步骤S128中的根据原接口参数调用原接口代码的详细流程图。
对于步骤S128,可进一步包括以下子步骤:
S1281、根据所述原接口参数,确定所述原功能模块的原接口类,得到原接口代码文档;
S1282、解析所述原接口类,得到所述原接口类中方法集的原代码接口;
S1283、根据所述原代码接口,在所述原接口代码文档中调用对应的原接口代码。
对于上述步骤S1281-S1283,根据所述协议接口的原接口参数,获取所述协议接口的属性信息,确定所述原功能模块的原接口类,得到由所述原接口类代码所形成的原接口代码文档。
根据所述协议接口的属性信息,对所述原接口类进行解析,得到所述原接口类中方法集的原代码接口。根据获得的所述原代码接口及其接口参数,在所述原项目源代码中定位所述原接口代码,并对该原接口代码进行调用。
对于上述实施例中,根据的更新版本标识所获得的接口参数,并根据该接口参数所体现项目源代码中的接口的独特性,对于所述项目源代码进行类-方法集的层级解析,得到更新接口,在项目源代码中获得对应的接口代码。这样,在查找比对所述接口代码的版本之间的修改处时,根据所述接口参数,尽可能地缩小比对的代码范围,减少服务器的运算负担,有利于提高接口代码的版本之间比对的效率,有利于提高接口代码的开发效率。
在另一实施例中,用户为了开发和应用需要,对协议接口的入参数据和出参数据进行调整。当服务器接收到协议接口的代码版本的更新指令,并且检测到根据所述入参数据和出参数据的如参数标记变更,得到对应的更新的入参数据和/或出参数据及其接口参数。
根据更新接口参数,得到该所述协议接口的更新入参数据和更新出参数据的至少一项数据;以及,根据所述原接口参数,得到所述协议接口的原入参数据和原出参数据的至少一项数据。
请参考图5所示,图5是一实施例中的步骤S130的详细流程图。
在此基础上,步骤S130包括:
S131、分别对所述更新入参数据和原入参数据,与所述更新出参数据与原出参数据的至少一组数据进行绝对等比较,得到更新入参数据和原入参数据之间,与更新出参数据和原出参数据之间的至少一种对应的差异数据项;
S132、根据所述差异数据项,确认更新接口代码和原接口代码之间的不同代码段。
对于步骤S131-S132中,以更新入参数据和原入参数据进行绝对等比较为例进行详细说明。
首先将更新入参数据和原入参数据的数据项的属性名称进行遍历并绝对等比较,若存在更新入参数据中存在与原入参数据的属性名称缺少、多余或是不同的数据项,并获取对应的差异数据项。根据所述差异数据项,在该更新项目源代码中调用对应的接口代码,并将其确认为确认更新接口代码和原接口代码之间的不同代码段。
若更新入参数据和原入参数据的数据项的属性名称进行绝对等比较,得到两者的数据项的属性名称绝对等相同,则分别对更新入参数据和原入参数据的各个数据项中的变量进行比较,判定对应的各个变量的内容是否相同。若不相同,则根据更新入参数据中对应的变量,在更新项目源代码中调用对应的接口代码,并将其确认为确认更新接口代码和原接口代码之间的不同代码段。
同理,可以根据上述关于更新入参数据与原入参数据的对比方法,对更新出参数据与原出参数据进行对比,根据不相同的数据项及其内容,在更新项目源代码中调用对应的代码段,并将其确认为更新接口代码和原接口代码之间的不同代码段。
在该实施例中,明确根据用户对协议接口的开发和应用需求的变更,对比入参数据和出参数据的至少一项的数据信息,快速且准确地在更新项目源代码与原项目代码中定位至发生修改对应的代码段,有利于提高接口代码的开发效率。
对于步骤S130中的将所述更新接口代码与原接口代码进行比较,在本实施例中,将所述更新接口代码与原接口代码进行字符串比较。即根据对之前步骤得到的所述更新接口代码与原接口代码,可以进一步获取更新接口代码与原接口代码中对应的某代码段,逐行地进行字符串比较。
请参考图6所示,图6是一实施例中的步骤S140的详细流程图。
对于步骤S140,可进一步包括:
S141、根据所述更新接口代码和原接口代码的比较得到的不同代码段,得到更新代码中对应位置和对应内容的代码差异;
S142、将所述代码差异结果生成HTML格式的版本差异文档的代码版本更新通知。
在步骤S141-S142,根据步骤S130得到的关于所述更新接口代码和原接口代码中对应的不同代码段,并对两者所对应的不同代码段进行逐行遍历,得到所述更新代码中进行修改的代码的对应位置和对应代码内容。并将上述修改后产生的代码差异结果生成代码版本更新通知。在本实施例中,该代码版本更新通知可以是HTML格式的版本差异文档的形式。
在步骤S140之后,还包括以下步骤:将所述代码版本更新通知通过协议接口预设的邮箱地址向用户推送。
在所述协议接口的代码版本的更新指令之前,可先对该协议接口的代码版本是否为新增版本,确定是否需要根据该更新指令执行代码版本之间的对比。
请参考图7所示,图7是又一个实施例中的协议接口代码版本更新通知的生成方法的流程图。对于在步骤S110之前,还包括:
S101、接收到所述协议接口的接口文档,通过所述接口文档的解析获取所述协议接口的接口标识;
S102、根据所述接口标识,得到所述协议接口的至少两个版本标识。
对于步骤S101-S102,所述协议接口的接口文档是根据接口代码的修改而生成的。所述接口标识对应每次协议接口的修改版本的接口文档和接口代码。当服务器接收到所述协议接口的接口文档时,通过对所述接口文档的解析,获取该修改版本的接口文档的接口标识。通过该接口标识获得该接口文档对应的版本标识,从而判定所述协议接口是否包含至少两个版本标识,若是,则根据客户端对该协议接口的代码版本的更新指令,获取对应的更新版本标识和原版本标识。这样,能在对不同版本的接口代码进行对比之前,先行确认所述协议接口已产生了至少两个版本的接口代码,从而提高接口代码版本比对的成功率,有利于减少服务器的运算负荷,有助于提高接口代码的开发效率。
对于上述提到的协议接口的接口文档,在本实施例中,包括以下步骤生成对应的接口文档:
S1001、获取用户输入的协议接口对应的项目源代码,并将所述项目源代码形成源码树;
S1002、对所述源码树的各个节点进行分析得到协议接口;
S1003、对所述协议接口解析得到协议接口信息,并生成所述协议接口的接口文档。
对于上述的步骤S1001-S1003,首先,先获取对应协议接口对应的项目源代码,对于该特定的项目源代码,给予一个全服唯一的标识名称,如:prolndex。
对获取的项目源代码可以通过javaparser解析器解析该项目源代码的结构,转换形成源码树。并且对所述源码树上的每个节点进行分析,得到对应的协议接口,对此,在本实施例中,可以具体包括以下步骤:
S10021、对所述源码树的各个节点模块分析,获得所述项目源代码各个功能模块;
S10022、通过接口标签集判断得到所述功能模块的接口类,并根据所述接口标签集判断得到所述接口类中的方法集,并从所述方法集中获取所述协议接口。
对于上述步骤S10021-S10022,对各个节点进行分析,即对各个源码树的各个功能模块进行解析,获取协议接口参数,利用所述接口参数生成协议接口对应的接口文档。
在获取协议接口参数的过程中,首先需要获取所述节点的协议接口标签,得到节点中的接口类。
所述协议接口标签用于区分不同协议接口及其类型的标签。所述协议接口标签可以按照协议接口的类型、参数等信息的不同进行自行定义。如HTTP接口用@Control或@RestController等协议接口标签来定义。用户可以预设在节点中需要生成接口文档的接口添加相应的接口标签,服务器响应接口文档生成请求时,获取节点包含的接口标签,以获得节点中该协议接口标签所对应的类的信息。
源码树中的每个节点中可包含有多种类,不同的类,其对应的接口标签不同。在实施例中,可以预先指定某一种或多种的接口标签所对应的类为接口类。根据获取到的接口标签,根据接口标签的类型判断节点中包含的类是否为接口类,从而确定出接口类。
在得到节点中的接口类后,根据所述接口标签集对所述接口类进行解析并判断得到该接口类中的各个方法集,得到所述方法集中的协议接口。在该实施例中,获取该方法对应的协议接口标签,如JavaDoc标签和Tagee标签来判断,通过分析所述协议接口标签,判断该方法是否为协议接口。如方法A对应的接口标签为JavaDoc标签,JavaDoc标签对应的是协议接口,则可以判定方法A为协议接口,若方法B对应的协议接口标签为Tagee标签,Tagee标签对应的是非接口,则可以判定方法B为非接口。
在确定该方法为接口时,并经过解析后得到所述接口所对应的接口协议和接口参数。如方法别名、方法名、描述、统一资源标识符、接口参数、接口协议等,其中,接口参数包括入参数据和出参数据。在实施例中,还可以通过协议自有特征,如特定的标识来进一步判断接口协议的类型,如HTTP接口所对应的协议有@RequestMapping标识,Thrift接口所对应的协议有org.apache.thrift.TBase标识等,其他协议接口可根据应用场景插拔式添加。
进一步地,根据协议接口的属性信息,判定所述接口参数的数据类型是否为基本数据类型,若是,则直接对应的协议接口参数得到该协议接口的第一数据信息,该第一数据信息包括该协议接口协议的名称、别名、数据类型、注释以及默认值中的至少一种。此时,利用该第一数据信息生成接口文档。
当接口参数为非基本数据类型时,获取接口参数的封装类型,解析其封装类型。若所述接口参数为闭环封装类型,解析出属性列表,遍历递归解析属性列表中的各属性信息,确定数据类型为基本数据类型的属性信息。该属性信息的数据类型包括基本数据类型、结构类型和集合类型等。从各属性信息中确定数据类型为基本数据类型的属性信息,进一步解析出数据类型、注释、默认值等信息。将数据类型、注释、默认值等信息生成所述接口文档。
在本实施例中,在生成接口数据时,可以通过以“项目-功能模块-接口-接口参数”关系进行层层递进的由顶层到底层的结构化处理,然后生成结构化的接口数据。
具体地,对各功能模块添加功能模块标识,将功能模块标识作为该功能模块的唯一标识,如:moduleName。
各功能模块有各自的版本,并为各版本添加分支标识:editionName,通过版本标识可以快速查找到项目源代码开发的不同开发阶段的版本。同时生成各个功能模块中的各个接口的统一资源标识符,URI是用于唯一地标识元素或属性的数字或名称,URI包含的信息指出该功能接口所在的位置和命名信息。
在本实施例中,所述接口标识可以将所述协议接口所对应的项目标识、功能模块标识、版本标识以及统一资源标识符进行关联,根据对应的关联公式:interfaceKey=MD5(proIndex+“_”+moduleName+“_”+editionName+“_”+uri)。该关联公式采用MD5信息摘要算法生成MD5摘要可作为协议接口的接口文档的唯一接口标识。其中,MD5信息摘要算法生成MD5摘要可以通过现有技术来实现,在此不做详细描述。
以上述方式形成所述协议接口的接口文档可以直接通过项目源代码形成,当接收都该接口文档的生成时,根据及时检测到对所述接口代码的修改,进而更容易获取对应接口代码的更新版本的相关信息,进一步有助于提高接口代码版本间的查找比对的响应时间,从而提高接口代码的开发效率。
如图8所示,图8是一个实施例中的协议接口代码版本更新通知的生成装置的结构示意图。基于与上述协议接口代码版本更新通知的生成方法相同的发明构思,本申请实施例还提供了一种协议接口代码版本更新通知的生成装置,包括:
版本标识获取模块810,用于接收对协议接口的代码版本的更新指令,获取对应的更新版本标识和原版本标识;
接口代码调用模块820,用于根据所述更新版本标识从更新项目源代码中调用对应的更新接口代码,以及根据所述原版本标识从原项目源代码中调用对应的原接口代码;
接口代码比较模块830,用于将所述更新接口代码与原接口代码进行比较,确定比较得到的不同代码段;
通知生成模块840,根据所述不同代码段及其相关信息生成代码版本更新通知。
请参考图9,图9为一个实施例中服务器的执行协议接口代码版本更新通知生成方法的一结构示意图。如图9所示,该服务器包括通过系统总线连接的处理器910、存储介质920、存储器930和网络接口940。其中,该服务器的存储介质920存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器910执行时,可使得处理器910实现一种协议接口的测试方法,处理器910能实现图8所示实施例中的一种协议接口代码版本更新通知的生成装置中的版本标识获取模块810、接口代码调用模块820、接口代码比较模块830、通知生成模块840的功能。该服务器的处理器910用于提供计算和控制能力,支撑整个服务器的运行。该服务器的存储器930中可存储有计算机可读指令,该计算机可读指令被处理器910执行时,可使得处理器910执行一种协议接口代码版本更新通知的生成方法。该服务器的网络接口940用于与终端连接通信。本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的服务器的限定,具体的服务器可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请还提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:接收对协议接口的代码版本的更新指令,获取对应的更新版本标识和原版本标识;根据所述更新版本标识从更新项目源代码中调用对应的更新接口代码,以及根据所述原版本标识从原项目源代码中调用对应的原接口代码;将所述更新接口代码与原接口代码进行比较,确定比较得到的不同代码段;根据所述不同代码段及其相关信息生成代码版本更新通知。
综合上述实施例可知,本申请最大的有益效果在于:
本申请所提供的一种协议接口代码版本更新通知的生成方法和装置,根据协议接口的代码版本的更新指令,获取该协议接口的更新版本标识和原版本标识,并依据更新版本标识和原版本标识在对应的项目源代码中调用对应的更新接口代码与原接口代码,并将该更新接口代码与原接口代码进行比较得到对应的不同代码段,并生成代码版本更新通知。本申请所提供的技术方案,可以通过根据所接收到的协议接口的代码修改及时检测到代码的版本进行了更新,以便启动不同版本的更新接口代码和原接口代码进行代码对比,不必要如目前的协议接口比对的指令才能进行对比,从而缩短了接口代码在开发过程中的查找比对的响应时间,有助于提高提高接口代码的开发效率。
本申请在上述基础上提供了一优化方案,利用所述版本标识-项目源代码-接口参数-接口代码之间的对应关系,能准确且容易地确定对应的接口代码的范围,为不同版本的对比快速地提供对比的载体,有利于缩短版本之间的代码比对的响应时间。
在此基础上,进一步利用接口参数所能体现的项目源代码的接口的独特信息,根据该接口参数对项目源代码进行类-方法集的层级解析,得到所述版本标识的接口,便于调用对应的接口代码。这样,能尽可能地缩小不同版本之间比对的代码范围,减少服务器的运算负担,有利于提高接口代码的版本之间比对的效率,更好地达到提高接口代码的开发效率的目的。
本申请在上述基础上提供了一优化方案,明确根据用户对协议接口的开发和应用需求的变更的前提下,对比入参数据和出参数据的至少一项的数据信息,能快速且准确地在更新项目源代码与原项目代码中定位至发生修改对应的代码段,有利于提高接口代码的开发效率,有助于提高接口代码的开发效率的目的。
本申请在上述基础上提供了一优化方案,在接收到接口代码的更新指令之前,先行通过接收到的接口文档得到对应的接口代码,以便确认所述协议接口已产生了至少两个版本的接口代码,从而提高接口代码版本比对的成功率,有利于减少服务器的运算负荷,有助于提高接口代码的开发效率。
在此基础上,通过协议接口的接口文档能直接通过项目源代码的形成获取,从而能及时检测到接口代码的修改,使得更容易获取对应接口代码的更新版本的相关信息,进一步有助于提高接口代码版本间的查找比对的响应时间,从而提高接口代码的开发效率。
综上,本申请提高的所述协议接口代码版本更新通知的生成方法和装置,根据所述协议接口的接口代码的更新指令,获取不同版本标识,并据此获得不同版本标识对应的不同代码段,从而不需要在每次版本更新之后,重新获取接口代码的查找比对指令进行对比,因此避免了因查找比对操作不及时而造成的响应时间长,影响接口代码开发效率的问题,从而通过缩短协议接口的接口代码的查找比对的响应时间,提高版本间的接口代码的开发效率。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等存储介质,或随机存储记忆体(RandomAccess Memory,RAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (13)
1.一种协议接口代码版本更新通知的生成方法,其特征在于,包括以下步骤:
接收对协议接口的代码版本的更新指令,获取对应的更新版本标识和原版本标识;
根据所述更新版本标识从更新项目源代码中调用对应的更新接口代码,以及根据所述原版本标识从原项目源代码中调用对应的原接口代码;
将所述更新接口代码与原接口代码进行比较,确定比较得到的不同代码段;
根据所述不同代码段及其相关信息生成代码版本更新通知。
2.根据权利要求1所述的方法,其特征在于,
所述接收对协议接口的代码版本的更新指令,获取对应的更新版本标识和原版本标识的步骤,包括:
根据接收对协议接口的代码版本的更新指令,获取所述协议接口的接口标识;
利用所述接口标识的不同历史修改信息,获取对应的更新版本标识和原版本标识。
3.根据权利要求2所述的方法,其特征在于,
所述根据所述更新版本标识从更新项目源代码中调用对应的更新接口代码的步骤,包括:
根据所述更新版本标识,确定更新项目源代码,并将所述更新项目源代码转换为对应的更新项目源码树;
对所述更新项目源码树的各个节点进行解析,获取所述更新项目源码树的更新功能模块;
通过解析所述更新功能模块,得到协议接口的更新接口参数;
根据所述更新接口参数,调用更新接口代码;
所述根据所述原版本标识从原项目源代码中调用对应的原接口代码的步骤,包括:
根据所述原版本标识,确定原项目源代码,并将所述原项目源代码转换为对应的原项目源码树;
对所述原项目源码树的各个节点进行解析,获取原功能模块;
通过解析所述原功能模块,得到所述协议接口的原接口参数;
根据所述原接口参数,调用原接口代码。
4.根据权利要求3所述的方法,其特征在于,
所述根据所述更新接口参数,调用更新接口代码的步骤,包括:
根据所述更新接口参数,确定所述更新功能模块的更新接口类,得到更新接口代码文档;
解析所述更新接口类,得到所述更新接口类中方法集的更新代码接口;
根据所述更新代码接口,在所述更新代码接口代码文档中调用对应的更新接口代码;
所述根据所述原接口参数,调用原接口代码的步骤,包括:
根据所述原接口参数,确定所述原功能模块的原接口类,得到原接口代码文档;
解析所述原接口类,得到所述原接口类中方法集的原代码接口;
根据所述原代码接口,在所述原接口代码文档中调用对应的原接口代码。
5.根据权利要求3所述的方法,其特征在于,
根据所述更新接口参数,得到所述协议接口的更新入参数据和更新出参数据的至少一项数据;以及,根据所述原接口参数,得到所述协议接口的原入参数据和原出参数据的至少一项数据;
所述将所述更新接口代码与原接口代码进行比较,确定比较得到的不同代码段的步骤,包括:
分别对所述更新入参数据和原入参数据,与所述更新出参数据与原出参数据的至少一组数据进行绝对等比较,得到更新入参数据和原入参数据之间,与更新出参数据和原出参数据之间的至少一种对应的差异数据项;
根据所述差异数据项,确认更新接口代码和原接口代码之间的不同代码段。
6.根据权利要求1所述的方法,其特征在于,
所述将所述更新接口代码与原接口代码进行比较的步骤,包括:
将所述更新接口代码与原接口代码进行字符串比较。
7.根据权利要求1所述的方法,其特征在于,
所述根据所述不同代码段及其相关信息生成代码版本更新通知的步骤,包括:
根据所述更新接口代码和原接口代码的比较得到的不同代码段,得到更新代码中对应位置和对应内容的代码差异;
将所述代码差异结果生成HTML格式的版本差异文档的代码版本更新通知。
8.根据权利要求7所述的方法,其特征在于,还包括:
将所述代码版本更新通知通过协议接口预设的邮箱地址向用户推送。
9.根据权利要求1-8中任意一项所述的方法,其特征在于,
在所述接收对协议接口的代码版本的更新指令的步骤之前,还包括:
接收到所述协议接口的接口文档,通过所述接口文档的解析获取所述协议接口的接口标识;
根据所述接口标识,得到所述协议接口的至少两个版本标识。
10.根据权利要求9所述的方法,其特征在于,
在所述接收到所述协议接口的接口文档的步骤之前,还包括:
获取用户输入的协议接口对应的项目源代码,并将所述项目源代码形成源码树;
对所述源码树的各个节点进行分析得到协议接口;
对所述协议接口解析得到协议接口信息,并生成所述协议接口的接口文档。
11.一种协议接口代码版本更新通知的生成装置,其特征在于,包括:
版本标识获取模块,用于接收对协议接口的代码版本的更新指令,获取对应的更新版本标识和原版本标识;
接口代码调用模块,用于根据所述更新版本标识从更新项目源代码中调用对应的更新接口代码,以及根据所述原版本标识从原项目源代码中调用对应的原接口代码;
接口代码比较模块,用于将所述更新接口代码与原接口代码进行比较,确定比较得到的不同代码段;
通知生成模块,根据所述不同代码段及其相关信息生成代码版本更新通知。
12.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器;
一个或多个计算机程序,其中所述一个或多个计算机程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个计算机程序配置用于执行根据权利要求1至10任一项所述的协议接口代码版本更新通知的生成方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现权利要求1至10任一项所述的协议接口代码版本更新通知的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910528730.1A CN110175043A (zh) | 2019-06-18 | 2019-06-18 | 协议接口代码版本更新通知的生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910528730.1A CN110175043A (zh) | 2019-06-18 | 2019-06-18 | 协议接口代码版本更新通知的生成方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110175043A true CN110175043A (zh) | 2019-08-27 |
Family
ID=67698548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910528730.1A Pending CN110175043A (zh) | 2019-06-18 | 2019-06-18 | 协议接口代码版本更新通知的生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110175043A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111736869A (zh) * | 2020-06-19 | 2020-10-02 | 浙江大搜车软件技术有限公司 | 服务端接口的版本更新方法和服务端接口的调用方法 |
CN112306516A (zh) * | 2020-02-24 | 2021-02-02 | 北京字节跳动网络技术有限公司 | 用于更新代码的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107894895A (zh) * | 2017-11-06 | 2018-04-10 | 网易(杭州)网络有限公司 | 代码更新的处理方法、装置、存储介质、处理器及服务器 |
CN108932122A (zh) * | 2018-06-19 | 2018-12-04 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 接口文档生成方法、装置、计算机设备和存储介质 |
CN109375922A (zh) * | 2018-09-26 | 2019-02-22 | 深圳壹账通智能科技有限公司 | 一种接口文档的自动生成方法及终端设备 |
CN109542412A (zh) * | 2018-10-16 | 2019-03-29 | 平安普惠企业管理有限公司 | 接口信息生成方法、装置、计算机设备和存储介质 |
-
2019
- 2019-06-18 CN CN201910528730.1A patent/CN110175043A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107894895A (zh) * | 2017-11-06 | 2018-04-10 | 网易(杭州)网络有限公司 | 代码更新的处理方法、装置、存储介质、处理器及服务器 |
CN108932122A (zh) * | 2018-06-19 | 2018-12-04 | 上海陆家嘴国际金融资产交易市场股份有限公司 | 接口文档生成方法、装置、计算机设备和存储介质 |
CN109375922A (zh) * | 2018-09-26 | 2019-02-22 | 深圳壹账通智能科技有限公司 | 一种接口文档的自动生成方法及终端设备 |
CN109542412A (zh) * | 2018-10-16 | 2019-03-29 | 平安普惠企业管理有限公司 | 接口信息生成方法、装置、计算机设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112306516A (zh) * | 2020-02-24 | 2021-02-02 | 北京字节跳动网络技术有限公司 | 用于更新代码的方法和装置 |
CN111736869A (zh) * | 2020-06-19 | 2020-10-02 | 浙江大搜车软件技术有限公司 | 服务端接口的版本更新方法和服务端接口的调用方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11150874B2 (en) | API specification generation | |
US8869111B2 (en) | Method and system for generating test cases for a software application | |
CN110276074B (zh) | 自然语言处理的分布式训练方法、装置、设备及存储介质 | |
CN110308930A (zh) | 接口文档生成方法、装置、计算机设备和存储介质 | |
JP2009504041A (ja) | モバイル・デバイス能力の自動管理 | |
CN108491715B (zh) | 终端指纹库的生成方法、装置和服务器 | |
CN110231956B (zh) | 应用程序版本构建的方法、系统及装置 | |
US20170085673A1 (en) | Attribute Operating Method and Apparatus | |
CN110175043A (zh) | 协议接口代码版本更新通知的生成方法和装置 | |
CN112711438A (zh) | 依赖组件信息提取方法、设备及计算机可读存储介质 | |
CN111083219A (zh) | 请求处理方法、装置、设备与计算机可读存储介质 | |
CN111679852A (zh) | 一种冲突依赖库的检测方法及装置 | |
AU2005208065B2 (en) | Defining nodes in device management system | |
CN112269588A (zh) | 算法的升级方法、装置、终端和计算机可读存储介质 | |
US9374437B2 (en) | Schema validation proxy | |
CN113791809B (zh) | 应用异常处理方法、装置以及计算机可读存储介质 | |
CN110297651A (zh) | 协议接口的常用变量的更新方法和装置 | |
CN109388400B (zh) | 一种页面自动生成方法及装置 | |
CN111459492A (zh) | Dubbo服务接口兼容性检测方法、装置、存储介质及设备 | |
CN112395339A (zh) | 系统间数据准入校验方法、装置、计算机设备和存储介质 | |
CN113364892A (zh) | 跨多集群服务的域名解析方法、相关方法、装置和系统 | |
US20090313307A1 (en) | Manipulation of network management information | |
US11216294B2 (en) | User interface by way of unknown data structure | |
US8832128B2 (en) | Expression evaluation over multiple data models | |
CN116739397A (zh) | 一种新能源指标的动态管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20190827 Assignee: GUANGZHOU CUBESILI INFORMATION TECHNOLOGY Co.,Ltd. Assignor: GUANGZHOU HUADUO NETWORK TECHNOLOGY Co.,Ltd. Contract record no.: X2021440000031 Denomination of invention: Method and device for generating protocol interface code version update notification License type: Common License Record date: 20210125 |
|
EE01 | Entry into force of recordation of patent licensing contract |