CN112800194B - 一种接口变更识别方法、装置、设备及存储介质 - Google Patents

一种接口变更识别方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112800194B
CN112800194B CN202110057869.XA CN202110057869A CN112800194B CN 112800194 B CN112800194 B CN 112800194B CN 202110057869 A CN202110057869 A CN 202110057869A CN 112800194 B CN112800194 B CN 112800194B
Authority
CN
China
Prior art keywords
interface
information
current
parameter
abstract
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.)
Active
Application number
CN202110057869.XA
Other languages
English (en)
Other versions
CN112800194A (zh
Inventor
虞佳祺
凌利虎
吴迪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yiqi Xufu Network Technology Co ltd
Original Assignee
Yiqi Xufu Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yiqi Xufu Network Technology Co ltd filed Critical Yiqi Xufu Network Technology Co ltd
Priority to CN202110057869.XA priority Critical patent/CN112800194B/zh
Publication of CN112800194A publication Critical patent/CN112800194A/zh
Application granted granted Critical
Publication of CN112800194B publication Critical patent/CN112800194B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/73Program documentation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种接口变更识别方法,该方法包括以下步骤:在检测到有代码文件提交时,对代码文件中的类进行遍历,提取每个类中每个接口的相关信息;基于每个接口的相关信息,生成每个接口的描述信息字符串摘要;针对每个接口,基于当前接口的描述信息字符串摘要,确定当前接口是否为变更接口。应用本申请所提供的技术方案,在提交代码文件时,自动生成每个接口的描述信息字符串摘要,通过描述信息字符串摘要进行接口变更的准确识别,方便后续工作的进行。本申请还公开了一种接口变更识别装置、设备及存储介质,具有相应技术效果。

Description

一种接口变更识别方法、装置、设备及存储介质
技术领域
本申请涉及计算机应用技术领域,特别是涉及一种接口变更识别方法、装置、设备及存储介质。
背景技术
在软件开发过程中,客户端和服务端一般由不同的开发人员进行开发,服务端基于服务端开发人员定义的接口,如API(Application Programming Interface,应用程序接口)对外提供服务,客户端开发人员根据服务端开发人员对接口的定义对接开发客户端。另外,测试人员会根据接口定义对接口进行测试。这样,记录接口定义、描述服务端接口功能的接口文档,其作为客户端开发人员、服务端开发人员和测试人员之间对于接口的约定,显得更加重要。
目前,所有接口通过接口文档进行维护。在实际开发过程中,由于各种原因服务端开发人员不可避免地需要对约定的接口进行变更,在进行接口代码变更的同时,需要对接口文档进行维护,以保证接口和接口文档的一致性。即需要通过服务端开发人员主动记录变更接口。
这样就使得服务端开发人员在修改接口代码时必须同步修改接口文档,接口文档和接口的一致性需要通过服务端开发人员保证,如果出现修改遗漏等问题,将导致其他人员无法准确获得变更接口,给后续工作带来不便。
发明内容
本申请的目的是提供一种接口变更识别方法、装置、设备及存储介质,以准确识别到变更接口,方便后续工作的进行。
为解决上述技术问题,本申请提供如下技术方案:
一种接口变更识别方法,包括:
在检测到有代码文件提交时,对所述代码文件中的类进行遍历,提取每个类中每个接口的相关信息;
基于每个接口的相关信息,生成每个接口的描述信息字符串摘要;
针对每个接口,基于当前接口的描述信息字符串摘要,确定所述当前接口是否为变更接口。
在本申请的一种具体实施方式中,每个接口的相关信息包括接口方法全名称信息、参数信息、返回值信息和注释信息,所述对所述代码文件中的类进行遍历,提取每个类中每个接口的相关信息,包括:
遍历所述代码文件中的类,获取每个类的包名和类名;
生成每个类中每个接口的接口方法全名称信息,所述接口方法全名称信息包括包名、类名、接口方法名、接口方法的参数类型名;
对每个接口的接口方法的参数进行遍历,提取每个参数的参数信息,所述参数信息包括参数名称和参数类型;
根据每个接口的返回值类型提取返回值信息;
获取注释信息。
在本申请的一种具体实施方式中,所述对每个接口的接口方法的参数进行遍历,提取每个参数的参数信息,包括:
针对每个接口的接口方法的每个参数,如果当前参数是基本数据类型及对应的包装类型,则提取所述当前参数的参数信息;
如果所述当前参数不是基本数据类型,且不存在嵌套,则遍历所述当前参数对应类型的属性,获取每个属性的参数信息;
如果所述当前参数不是基本数据类型,且存在嵌套,则执行递归操作,直至属性为基本数据类型时,提取所述当前参数的参数信息。
在本申请的一种具体实施方式中,基于每个接口的相关信息,生成每个接口的描述信息字符串摘要,包括:
基于每个接口的相关信息,构建每个接口的描述信息字符串;
分别对每个接口的描述信息字符串进行摘要计算,生成每个接口的描述信息字符串摘要。
在本申请的一种具体实施方式中,所述针对每个接口,基于当前接口的描述信息字符串摘要,确定所述当前接口是否为变更接口,包括:
针对每个接口,确定信息库中是否存在当前接口的接口方法摘要信息;
如果存在,则将所述当前接口的接口方法摘要信息与所述当前接口的描述信息字符串摘要进行比较,并根据比较结果,确定所述当前接口是否为变更接口;
如果不存在,则确定所述当前接口为变更接口。
在本申请的一种具体实施方式中,还包括:
在所述信息库中存在所述当前接口的接口方法摘要信息的情况下,如果确定所述当前接口为变更接口,则基于所述当前接口的描述信息字符串摘要,更新所述信息库中所述当前接口的接口方法摘要信息;
在所述信息库中不存在所述当前接口的接口方法摘要信息的情况下,在所述信息库中保存所述当前接口的接口方法全名称及描述信息字符串摘要。
在本申请的一种具体实施方式中,在确定所述当前接口为变更接口的情况下,还包括:
按照预设的通知方式,向预设目标发送接口变更通知信息。
一种接口变更识别装置,包括:
接口相关信息提取模块,用于在检测到有代码文件提交时,对所述代码文件中的类进行遍历,提取每个类中每个接口的相关信息;
描述信息字符串摘要生成模块,用于基于每个接口的相关信息,生成每个接口的描述信息字符串摘要;
变更接口确定模块,用于针对每个接口,基于当前接口的描述信息字符串摘要,确定所述当前接口是否为变更接口。
一种接口变更识别设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一项所述接口变更识别方法的步骤。
一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述接口变更识别方法的步骤。
应用本申请实施例所提供的技术方案,在检测到有代码文件提交时,对代码文件中的类进行遍历,提取出每个类中每个接口的相关信息,基于每个接口的相关信息,生成每个接口的描述信息字符串摘要,针对每个接口,基于当前接口的描述信息字符串摘要,确定当前接口是否为变更接口。在提交代码文件时,自动生成每个接口的描述信息字符串摘要,通过描述信息字符串摘要进行接口变更的准确识别,方便后续工作的进行。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种接口变更识别方法的实施流程图;
图2为本申请实施例中一种接口变更识别装置的结构示意图;
图3为本申请实施例中一种接口变更识别设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1所示,为本申请实施例所提供的一种接口变更识别方法的实施流程图,该方法可以包括以下步骤:
S110:在检测到有代码文件提交时,对代码文件中的类进行遍历,提取每个类中每个接口的相关信息。
本申请实施例所提供的技术方案可以在IDE(Integrated DevelopmentEnvironment,集成开发环境)中进行。在IDE启动时,可以向IDE注册代码提交(commit)回调的hook,即钩子函数。这样在有代码文件提交时,IDE可以自动触发注册的hook方法,即代码扫描方法。
在实际应用中,开发人员在编写完成代码或者修改完成代码时,可以向VCS(Version Control System,版本控制系统)提交代码文件。在检测到有代码文件提交时,可以对提交的代码文件中的类进行遍历,提取每个类中每个接口的相关信息。如提交的是Java代码,可以遍历所有的Java类,通过解析Java类的AST(抽象语法树)提取所有接口的相关信息。
在本申请的一种具体实施方式中,每个接口的相关信息包括接口方法全名称信息、参数信息、返回值信息和注释信息,步骤S110可以包括以下步骤:
步骤一:遍历代码文件中的类,获取每个类的包名和类名;
步骤二:生成每个类中每个接口的接口方法全名称信息,接口方法全名称信息包括包名、类名、接口方法名、接口方法的参数类型名;
步骤三:对每个接口的接口方法的参数进行遍历,提取每个参数的参数信息,参数信息包括参数名称和参数类型;
步骤四:根据每个接口的返回值类型提取返回值信息;
步骤五:获取注释信息。
为便于描述,将上述几个步骤结合起来进行说明。
在本申请实施例中,在检测到有代码文件提交时,可以通过遍历代码文件中的类,先获取每个类的包名(Package Name)和类名(Class Name),可以构建类全名称(FullName)。类全名称的格式可以是“包名.类名”,如“com.xxx.yyy.ExampleApi”。
然后生成每个类中每个接口的接口方法全名称信息,接口方法全名称信息包括包名、类名、接口方法名、接口方法的参数类型名。可以通过获取每个类中每个接口的接口方法的签名,包含接口方法名、返回值类型、参数类型等信息,生成相应类中相应接口的接口方法全名称信息。
具体的,可以先获取接口方法的名称,作为接口名称,再获取接口方法所有参数的类型,最后进行拼接得到接口方法全名称,包含其所在类的包名、类名,还包含接口方法名、接口方法的所有参数类型名。接口方法全名称的格式可以为“包名.类名.接口方法名(参数1类型名,参数2类型名,参数3类型名,......)”,如“com.xxx.yyy.ExampleApi.findByTypeAndName(Integer,String)”。可以通过编译系统保证,使得全名称在系统中具有唯一性。
生成每个类中每个接口的接口方法全名称信息之后,进一步可以对每个接口的接口方法的参数进行遍历,提取每个参数的参数信息,参数信息包括参数名称和参数类型。
具体的,针对每个接口的接口方法的每个参数,如果当前参数是基本数据类型及对应的包装类型,则提取当前参数的参数信息;
如果当前参数不是基本数据类型,且不存在嵌套,则遍历当前参数对应类型的属性,获取每个属性的参数信息;
如果当前参数不是基本数据类型,且存在嵌套,则执行递归操作,直至属性为基本数据类型时,提取当前参数的参数信息。
以Java代码为例,遍历每个接口的接口方法的所有参数,如果参数是Java基本数据类型,如int、long、double、String等以及对应的包装类型,如Integer、Long、Double等,则可以直接提取参数名称和参数类型。
如果参数非Java基本数据类型,且不存在嵌套,则可以遍历该参数对应类型的所有属性,获取所有属性的类型和名称。
如果参数非Java基本数据类型,且存在嵌套,则可以执行递归操作,直到属性为基本数据类型时,提取参数名称和参数类型。
在获取的接口方法的签名中包含接口方法名、返回值类型、参数类型等信息,根据每个接口的返回值类型可以提取返回值信息。
具体的,针对每个接口,如果当前接口的返回值类型是基本数据类型及对应的包装类型,则提取当前接口的返回值信息;
如果当前接口的返回值类型不是基本数据类型,且不存在嵌套,则遍历当前接口对应类型的属性,获取每个属性的返回值信息;
如果当前接口的返回值类型不是基本数据类型,且存在嵌套,则执行递归操作,直至属性为基本数据类型时,提取当前接口的返回值信息。
进一步可以获取注释信息。
以Java代码为例,可以获取Javadoc注释,从Javadoc注释中提取方法的描述,作为接口描述,从@param中提取参数的注释,作为参数描述,从@return中提取返回值的注释,作为返回值描述。
S120:基于每个接口的相关信息,生成每个接口的描述信息字符串摘要。
对代码文件中的类进行遍历,提取得到每个类中每个接口的相关信息后,可以基于每个接口的相关信息,生成每个接口的描述信息字符串摘要。
在本申请的一种具体实施方式中,可以基于每个接口的相关信息,构建每个接口的描述信息字符串,然后分别对每个接口的描述信息字符串进行摘要计算,生成每个接口的描述信息字符串摘要。
在本申请实施例中,提取到每个接口的相关信息后,可以基于每个接口的相关信息,构建每个接口的描述信息字符串。描述信息字符串的具体格式可以是XML(EXtensibleMarkup Language,可扩展标记语言)、JSON(JavaScript Object Notation,JS对象简谱)或YAML(YAML Ain't Markup Language)格式等,下面以JSON格式为例进行展示:
构建出每个接口的描述信息字符串后,可以分别对每个接口的描述信息字符串进行摘要计算,生成每个接口的描述信息字符串摘要。具体的,可以通过相关技术中的摘要算法,如MD5(Message Digest algorithm 5,消息摘要算法版本5)、SHA(Secure HashAlgorithm,安全散列算法)、MAC(Hash Message Authentication Code,消息认证码算法)等对每个接口的描述信息字符串进行摘要计算。以使用MD5为例,对接口描述信息字符串进行摘要计算后得到的描述信息字符串摘要可以是:232C60C3FB4C87750141089A3D6F0A35。
S130:针对每个接口,基于当前接口的描述信息字符串摘要,确定当前接口是否为变更接口。
基于每个接口的相关信息,生成每个接口的描述信息字符串摘要,生成的每个接口的描述信息字符串摘要对于每个接口来说是唯一的,可以针对每个接口,基于当前接口的描述信息字符串摘要,确定当前接口是否发生变更,是否为变更接口。
在本申请的一种具体实施方式中,步骤S130可以包括以下步骤:
第一个步骤:针对每个接口,确定信息库中是否存在当前接口的接口方法摘要信息,如果存在,则执行第二个步骤,如果不存在,则执行第三个步骤;
第二个步骤:将当前接口的接口方法摘要信息与当前接口的描述信息字符串摘要进行比较,并根据比较结果,确定当前接口是否为变更接口;
第三个步骤:确定当前接口为变更接口。
为便于描述,将上述三个步骤结合起来进行说明。
在本申请实施例中,可以通过信息库记录接口信息,如按照Key-Value的形式保存接口方法全名称和接口方法摘要信息,其中,Key=接口方法全名称,Value=接口方法摘要信息。信息库中记录的信息为当前时刻之前最新信息。通过Key-Value的形式保存接口信息时,只需要保存接口方法全名称和接口方法全名称信息摘要,不必保存接口的全部信息,可以有效减少需要保存的信息量,减少磁盘占用空间。
生成每个接口的描述信息字符串摘要之后,针对每个接口,可以确定信息库中是否存在当前接口的接口方法摘要信息。具体的,可以根据接口方法全名称,在信息库已保存的信息中查找是否存在与相应接口方法全名称对应的接口方法摘要信息。
如果在信息库中存在当前接口的接口方法摘要信息,则可以将当前接口的接口方法摘要信息与当前生成的当前接口的描述信息字符串摘要进行比较,如果二者相同,则可以确定当前接口没有变更,不是变更接口,如果二者不同,则可以确定当前接口发生变更,为变更接口。
如果信息库中不存在当前接口的接口方法摘要信息,则可以确定当前接口为新增接口,也即为变更接口。
在信息库中存在当前接口的接口方法摘要信息的情况下,如果确定当前接口为变更接口,则可以基于当前接口的描述信息字符串摘要,更新信息库中当前接口的接口方法摘要信息。将信息库中记录的当前接口的接口方法摘要信息更新为当前接口的描述信息字符串摘要。
在信息库中不存在当前接口的接口方法摘要信息的情况下,可以在信息库中保存当前接口的接口方法全名称及描述信息字符串摘要,即信息库中当前接口的接口方法摘要信息即为当前接口的描述信息字符串摘要。以在下一次执行本申请方案时作为已存信息使用。
应用本申请实施例所提供的方法,在检测到有代码文件提交时,对代码文件中的类进行遍历,提取出每个类中每个接口的相关信息,基于每个接口的相关信息,生成每个接口的描述信息字符串摘要,针对每个接口,基于当前接口的描述信息字符串摘要,确定当前接口是否为变更接口。在提交代码文件时,自动生成每个接口的描述信息字符串摘要,通过描述信息字符串摘要进行接口变更的准确识别,方便后续工作的进行。
在本申请的一个实施例中,在确定当前接口为变更接口的情况下,该方法还可以包括以下步骤:
按照预设的通知方式,向预设目标发送接口变更通知消息。
在本申请实施例中,可以预设通知方式,如设定通知方式为邮件、短信、聊天软件、电话等。同时,还可以预先设定通知目标,如客户端开发人员、服务端开发人员、测试人员等。
针对每个接口,基于当前接口的描述信息字符串摘要,确定当前接口是否为变更接口之后,可以确定出当前所有的变更接口,按照预设的通知方式,向预设目标发送接口变更通知信息,接口变更通知信息中可以包含变更接口的相关信息。
本申请实施例在提交代码前自动检测得到接口变更情况,对变更接口进行自动通知,减少了人为干预,可以有效防止通知遗漏或不及时的情况发生。
相应于上面的方法实施例,本申请实施例还提供了一种接口变更识别装置,下文描述的接口变更识别装置与上文描述的接口变更识别方法可相互对应参照。
参见图2所示,该装置可以包括以下模块:
接口相关信息提取模块210,用于在检测到有代码文件提交时,对代码文件中的类进行遍历,提取每个类中每个接口的相关信息;
描述信息字符串摘要生成模块220,用于基于每个接口的相关信息,生成每个接口的描述信息字符串摘要;
变更接口确定模块230,用于针对每个接口,基于当前接口的描述信息字符串摘要,确定当前接口是否为变更接口。
应用本申请实施例所提供的装置,在检测到有代码文件提交时,对代码文件中的类进行遍历,提取出每个类中每个接口的相关信息,基于每个接口的相关信息,生成每个接口的描述信息字符串摘要,针对每个接口,基于当前接口的描述信息字符串摘要,确定当前接口是否为变更接口。在提交代码文件时,自动生成每个接口的描述信息字符串摘要,通过描述信息字符串摘要进行接口变更的准确识别,方便后续工作的进行。
在本申请的一种具体实施方式中,每个接口的相关信息包括接口方法全名称信息、参数信息、返回值信息和注释信息,接口相关信息提取模块210,用于:
遍历代码文件中的类,获取每个类的包名和类名;
生成每个类中每个接口的接口方法全名称信息,接口方法全名称信息包括包名、类名、接口方法名、接口方法的参数类型名;
对每个接口的接口方法的参数进行遍历,提取每个参数的参数信息,参数信息包括参数名称和参数类型;
根据每个接口的返回值类型提取返回值信息;
获取注释信息。
在本申请的一种具体实施方式中,接口相关信息提取模块210,用于:
针对每个接口的接口方法的每个参数,如果当前参数是基本数据类型及对应的包装类型,则提取当前参数的参数信息;
如果当前参数不是基本数据类型,且不存在嵌套,则遍历当前参数对应类型的属性,获取每个属性的参数信息;
如果当前参数不是基本数据类型,且存在嵌套,则执行递归操作,直至属性为基本数据类型时,提取当前参数的参数信息。
在本申请的一种具体实施方式中,描述信息字符串摘要生成模块220,用于:
基于每个接口的相关信息,构建每个接口的描述信息字符串;
分别对每个接口的描述信息字符串进行摘要计算,生成每个接口的描述信息字符串摘要。
在本申请的一种具体实施方式中,变更接口确定模块230,用于:
针对每个接口,确定信息库中是否存在当前接口的接口方法摘要信息;
如果存在,则将当前接口的接口方法摘要信息与当前接口的描述信息字符串摘要进行比较,并根据比较结果,确定当前接口是否为变更接口;
如果不存在,则确定当前接口为变更接口。
在本申请的一种具体实施方式中,还包括信息更新模块,用于:
在信息库中存在当前接口的接口方法摘要信息的情况下,如果确定当前接口为变更接口,则基于当前接口的描述信息字符串摘要,更新信息库中当前接口的接口方法摘要信息;
在信息库中不存在当前接口的接口方法摘要信息的情况下,在信息库中保存当前接口的接口方法全名称及描述信息字符串摘要。
在本申请的一种具体实施方式中,还包括通知模块,用于:
在确定当前接口为变更接口的情况下,按照预设的通知方式,向预设目标发送接口变更通知信息。
相应于上面的方法实施例,本申请实施例还提供了一种接口变更识别设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现上述接口变更识别方法的步骤。
如图3所示,为接口变更识别设备的组成结构示意图,接口变更识别设备可以包括:处理器10、存储器11、通信接口12和通信总线13。处理器10、存储器11、通信接口12均通过通信总线13完成相互间的通信。
在本申请实施例中,处理器10可以为中央处理器(Central Processing Unit,CPU)、特定应用集成电路、数字信号处理器、现场可编程门阵列或者其他可编程逻辑器件等。
处理器10可以调用存储器11中存储的程序,具体的,处理器10可以执行接口变更识别方法的实施例中的操作。
存储器11中用于存放一个或者一个以上程序,程序可以包括程序代码,程序代码包括计算机操作指令,在本申请实施例中,存储器11中至少存储有用于实现以下功能的程序:
在检测到有代码文件提交时,对代码文件中的类进行遍历,提取每个类中每个接口的相关信息;
基于每个接口的相关信息,生成每个接口的描述信息字符串摘要;
针对每个接口,基于当前接口的描述信息字符串摘要,确定当前接口是否为变更接口。
在一种可能的实现方式中,存储器11可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统,以及至少一个功能(比如信息提取功能、摘要计算功能)所需的应用程序等;存储数据区可存储使用过程中所创建的数据,如接口信息数据、摘要对比数据等。
此外,存储器11可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
通信接口12可以为通信模块的接口,用于与其他设备或者系统连接。
当然,需要说明的是,图3所示的结构并不构成对本申请实施例中接口变更识别设备的限定,在实际应用中接口变更识别设备可以包括比图3所示的更多或更少的部件,或者组合某些部件。
相应于上面的方法实施例,本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述接口变更识别方法的步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

Claims (8)

1.一种接口变更识别方法,其特征在于,包括:
在检测到有代码文件提交时,对所述代码文件中的类进行遍历,提取每个类中每个接口的相关信息;
基于每个接口的相关信息,生成每个接口的描述信息字符串摘要;
针对每个接口,基于当前接口的描述信息字符串摘要,确定所述当前接口是否为变更接口;
其中,每个接口的相关信息包括接口方法全名称信息、参数信息、返回值信息和注释信息,所述对所述代码文件中的类进行遍历,提取每个类中每个接口的相关信息,包括:
遍历所述代码文件中的类,获取每个类的包名和类名;
生成每个类中每个接口的接口方法全名称信息,所述接口方法全名称信息包括包名、类名、接口方法名、接口方法的参数类型名;
对每个接口的接口方法的参数进行遍历,提取每个参数的参数信息,所述参数信息包括参数名称和参数类型;
根据每个接口的返回值类型提取返回值信息;
获取注释信息;
并且,所述对每个接口的接口方法的参数进行遍历,提取每个参数的参数信息,包括:
针对每个接口的接口方法的每个参数,如果当前参数是基本数据类型及对应的包装类型,则提取所述当前参数的参数信息;
如果所述当前参数不是基本数据类型,且不存在嵌套,则遍历所述当前参数对应类型的属性,获取每个属性的参数信息;
如果所述当前参数不是基本数据类型,且存在嵌套,则执行递归操作,直至属性为基本数据类型时,提取所述当前参数的参数信息。
2.根据权利要求1所述的方法,其特征在于,基于每个接口的相关信息,生成每个接口的描述信息字符串摘要,包括:
基于每个接口的相关信息,构建每个接口的描述信息字符串;
分别对每个接口的描述信息字符串进行摘要计算,生成每个接口的描述信息字符串摘要。
3.根据权利要求1所述的方法,其特征在于,所述针对每个接口,基于当前接口的描述信息字符串摘要,确定所述当前接口是否为变更接口,包括:
针对每个接口,确定信息库中是否存在当前接口的接口方法摘要信息;
如果存在,则将所述当前接口的接口方法摘要信息与所述当前接口的描述信息字符串摘要进行比较,并根据比较结果,确定所述当前接口是否为变更接口;
如果不存在,则确定所述当前接口为变更接口。
4.根据权利要求3所述的方法,其特征在于,还包括:
在所述信息库中存在所述当前接口的接口方法摘要信息的情况下,如果确定所述当前接口为变更接口,则基于所述当前接口的描述信息字符串摘要,更新所述信息库中所述当前接口的接口方法摘要信息;
在所述信息库中不存在所述当前接口的接口方法摘要信息的情况下,在所述信息库中保存所述当前接口的接口方法全名称及描述信息字符串摘要。
5.根据权利要求1至4之中任一项所述的方法,其特征在于,在确定所述当前接口为变更接口的情况下,还包括:
按照预设的通知方式,向预设目标发送接口变更通知信息。
6.一种接口变更识别装置,其特征在于,包括:
接口相关信息提取模块,用于在检测到有代码文件提交时,对所述代码文件中的类进行遍历,提取每个类中每个接口的相关信息;
描述信息字符串摘要生成模块,用于基于每个接口的相关信息,生成每个接口的描述信息字符串摘要;
变更接口确定模块,用于针对每个接口,基于当前接口的描述信息字符串摘要,确定所述当前接口是否为变更接口;
其中,每个接口的相关信息包括接口方法全名称信息、参数信息、返回值信息和注释信息,所述接口相关信息提取模块具体用于:
遍历所述代码文件中的类,获取每个类的包名和类名;
生成每个类中每个接口的接口方法全名称信息,所述接口方法全名称信息包括包名、类名、接口方法名、接口方法的参数类型名;
对每个接口的接口方法的参数进行遍历,提取每个参数的参数信息,所述参数信息包括参数名称和参数类型;
根据每个接口的返回值类型提取返回值信息;
获取注释信息;
并且,所述接口相关信息提取模块还用于:
针对每个接口的接口方法的每个参数,如果当前参数是基本数据类型及对应的包装类型,则提取所述当前参数的参数信息;
如果所述当前参数不是基本数据类型,且不存在嵌套,则遍历所述当前参数对应类型的属性,获取每个属性的参数信息;
如果所述当前参数不是基本数据类型,且存在嵌套,则执行递归操作,直至属性为基本数据类型时,提取所述当前参数的参数信息。
7.一种接口变更识别设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至5任一项所述接口变更识别方法的步骤。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至5任一项所述接口变更识别方法的步骤。
CN202110057869.XA 2021-01-15 2021-01-15 一种接口变更识别方法、装置、设备及存储介质 Active CN112800194B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110057869.XA CN112800194B (zh) 2021-01-15 2021-01-15 一种接口变更识别方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110057869.XA CN112800194B (zh) 2021-01-15 2021-01-15 一种接口变更识别方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112800194A CN112800194A (zh) 2021-05-14
CN112800194B true CN112800194B (zh) 2023-11-17

Family

ID=75809832

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110057869.XA Active CN112800194B (zh) 2021-01-15 2021-01-15 一种接口变更识别方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112800194B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113743082B (zh) * 2021-09-16 2024-04-05 京东科技信息技术有限公司 一种数据处理方法、系统、存储介质及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013056999A1 (en) * 2011-10-20 2013-04-25 Forkstream Limited Method and system for enabling nat traversal for multi-homing protocols
CN103942131A (zh) * 2013-01-23 2014-07-23 腾讯科技(深圳)有限公司 监控底层接口是否变化的方法及装置
CN105045577A (zh) * 2015-06-29 2015-11-11 用友优普信息技术有限公司 接口变更的提示方法和接口变更的提示系统
CN109766081A (zh) * 2019-02-01 2019-05-17 网易(杭州)网络有限公司 遍历容器的方法及装置
CN110032366A (zh) * 2019-04-19 2019-07-19 北京奇艺世纪科技有限公司 一种代码定位方法及装置
CN111984228A (zh) * 2020-07-09 2020-11-24 招联消费金融有限公司 一种接口文档的处理方法、装置、计算机设备和存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10521200B2 (en) * 2017-01-09 2019-12-31 Oracle International Corporation Unambiguous proxying of interface methods

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013056999A1 (en) * 2011-10-20 2013-04-25 Forkstream Limited Method and system for enabling nat traversal for multi-homing protocols
CN103942131A (zh) * 2013-01-23 2014-07-23 腾讯科技(深圳)有限公司 监控底层接口是否变化的方法及装置
CN105045577A (zh) * 2015-06-29 2015-11-11 用友优普信息技术有限公司 接口变更的提示方法和接口变更的提示系统
CN109766081A (zh) * 2019-02-01 2019-05-17 网易(杭州)网络有限公司 遍历容器的方法及装置
CN110032366A (zh) * 2019-04-19 2019-07-19 北京奇艺世纪科技有限公司 一种代码定位方法及装置
CN111984228A (zh) * 2020-07-09 2020-11-24 招联消费金融有限公司 一种接口文档的处理方法、装置、计算机设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
implementation of hash function generator on schematic to program translator(SPT);Toshihiro Nakamura等;《2017 fifth international symposium on computing and networking》;第1-2页 *
基于演化版本的Deep Web查询接口维护方法;束长波 等;《计算机应用研究》;第32卷(第11期);第3345-3348页 *

Also Published As

Publication number Publication date
CN112800194A (zh) 2021-05-14

Similar Documents

Publication Publication Date Title
US8136095B2 (en) Relations in fuzzing data
US9098627B2 (en) Providing a core dump-level stack trace
US10102212B2 (en) Remote artifact repository
US20120246653A1 (en) Generic command parser
CN108256870B (zh) 基于拓扑结构生成描述信息及更新、数据处理方法和装置
CN111460241B (zh) 一种数据查询方法、装置、电子设备及存储介质
CN111897846A (zh) 缓存数据校验方法、装置、设备及存储介质
CN111367547A (zh) 接口代码自动同步方法、装置及存储介质
US8606766B2 (en) Method and system to handle java class versioning
CN112800194B (zh) 一种接口变更识别方法、装置、设备及存储介质
CN113515303B (zh) 一种项目转型方法、装置和设备
CN111309332A (zh) 文件内容按需加载方法、装置及电子设备、存储介质
CN113111669B (zh) 基于增量的前端多语言国际化翻译方法及装置
CN114035789A (zh) 日志解析模板的生成方法、日志解析方法、装置及设备
CN111309713A (zh) Maven开源软件库的生成方法、装置及存储介质
CN111078529A (zh) 客户端写入模块测试方法、装置、电子设备
CN115599388A (zh) 一种api接口文档生成方法、存储介质及电子设备
CN112906404B (zh) 翻译文案校验方法及电子设备和可读存储介质
CN111151008B (zh) 游戏运营数据的校验方法、装置、配置后台及介质
CN114816437A (zh) 一种逆向生成Java实体类的方法、系统和设备
CN112199529A (zh) 图片处理方法、装置、电子设备及存储介质
CN115705297A (zh) 代码调用检测方法、装置、计算机设备以及存储介质
CN113672233A (zh) 一种基于Redfish的服务器带外管理方法、装置及设备
CN113050987A (zh) 一种接口文档的生成方法、装置、存储介质及电子设备
CN112597186A (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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20231012

Address after: Room 403, No. 3738 South Ring Road, Puyan Street, Binjiang District, Hangzhou City, Zhejiang Province, 310051

Applicant after: Yiqi Xufu Network Technology Co.,Ltd.

Address before: Room 708, 268 Xiangke Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai 201210

Applicant before: 17WIN NETWORK TECHNOLOGY CO.,LTD.

GR01 Patent grant
GR01 Patent grant