服务接口的代码校验方法技术

技术编号:39646306 阅读:9 留言:0更新日期:2023-12-09 11:14
本公开提供一种服务接口的代码校验方法

【技术实现步骤摘要】
服务接口的代码校验方法、装置、设备及存储介质


[0001]本公开涉及代码识别
,尤其涉及服务接口的代码校验方法

装置

设备及存储介质


技术介绍

[0002]在代码开发工作中,一般新需求开发前,开发人员需要提前设计定义好本次需求相关的服务接口的描述信息,例如方法签名

出入参或接口含义等信息

而设计产物,通常是以离
/
在线文档来承接

一些应用场景对接口字段有较高的规范要求,因此一般都会在某个应用开发平台中完成设计
/
定义接口工作

但在实际代码开发过程中,开发人员可能会随时修改接口相关信息,造成平台中的设计稿和实际代码不一致,从而让平台失去对代码规范的约束能力


技术实现思路

[0003]为克服相关技术中存在的问题,本公开提供了服务接口的代码校验方法

装置

设备及存储介质

[0004]根据本说明书实施例的第一方面,提供一种服务接口的代码校验方法,所述方法应用于应用开发管理平台,所述平台维护了对待开发的基于
Java
语言的服务接口预定义的接口描述信息,所述接口描述信息包括为所述服务接口预定义的
Java
注解信息,所述
Java
注解信息包括预定义的预设注解名称;所述方法包括:
[0005]响应于针对代码仓库的代码扫描事件,从所述代码仓库中获取基于
Java
编程语言开发完成的至少一份源码文件;
[0006]获取用户在源码文件中编写的接口描述信息;其中,获取到的接口描述信息包括:从针对所述至少一份源码文件进行编译得到的至少一份
class
文件中的目标
class
文件中解析出的与所述预设注解名称对应的
Java
注解信息;所述目标
class
文件为包含所述预设注解名称的
class
文件;
[0007]校验所述预定义的接口描述信息和获取到的接口描述信息是否相同

[0008]根据本说明书实施例的第二方面,提供一种服务接口的代码校验装置,所述装置应用于应用开发管理平台,所述平台维护了对待开发的基于
Java
语言的服务接口预定义的接口描述信息,所述接口描述信息包括为所述服务接口预定义的
Java
注解信息,所述
Java
注解信息包括预定义的预设注解名称;所述装置包括:
[0009]文件获取模块,用于:响应于针对代码仓库的代码扫描事件,从所述代码仓库中获取基于
Java
编程语言开发完成的至少一份源码文件;
[0010]信息获取模块,用于:获取用户在源码文件中编写的接口描述信息;其中,获取到的接口描述信息包括:从针对所述至少一份源码文件进行编译得到的至少一份
class
文件中的目标
class
文件中解析出的与所述预设注解名称对应的
Java
注解信息;所述目标
class
文件为包含所述预设注解名称的
class
文件;
[0011]校验模块,用于:校验所述预定义的接口描述信息和获取到的接口描述信息是否相同

[0012]根据本说明书实施例的第三方面,提供一种计算机设备,包括存储器

处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时实现前述第一方面所述服务接口的代码校验方法实施例的步骤

[0013]根据本说明书实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现前述第一方面所述服务接口的代码校验方法实施例的步骤

[0014]本说明书的实施例提供的技术方案可以包括以下有益效果:
[0015]本说明书实施例中,服务接口具有预定义的
Java
注解信息,
Java
注解信息包括预定义的预设注解名称,因此,在对服务接口的代码校验中,在获取到源码文件后可以编译得到
class
文件,进一步基于预设注解名称获取到目标
class
文件后,可以从目标
class
文件中解析出的与预设注解名称对应的
Java
注解信息

如此,针对服务接口的注解信息的解析,由于是对静态的
class
文件中的字节码进行解析,相对于反射机制并不需要依赖该注解的
Jar
包,还可以防止反射机制中由于引入
Jar
包可能产生的类冲突问题

[0016]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开

附图说明
[0017]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本公开的原理

[0018]图1是本说明书根据一示例性实施例示出的一种服务接口的代码校验方法的流程图

[0019]图
2A
和图
2B
分别是本说明书根据一示例性实施例示出的一种服务接口的代码校验方法的流程图

[0020]图3是本说明书根据一示例性实施例示出的一种服务接口的代码校验装置所在计算机设备的一种硬件结构图

[0021]图4是本说明书根据一示例性实施例示出的另一种服务接口的代码校验装置的框图

具体实施方式
[0022]这里将详细地对示例性实施例进行说明,其示例表示在附图中

下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素

以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式

相反,它们仅是与如所附权利要求书中所详述的

本说明书的一些方面相一致的装置和方法的例子

[0023]在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书

在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义

还应当理解,本文中使用的术语“和
/
或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合

[0024]应当理解,尽管在本说明书可能采用术语第一

第二

第三等来描述各种信息,但这些信息不应限本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.
一种服务接口的代码校验方法,所述方法应用于应用开发管理平台,所述平台维护了对待开发的基于
Java
语言的服务接口预定义的接口描述信息,所述接口描述信息包括为所述服务接口预定义的
Java
注解信息,所述
Java
注解信息包括预定义的预设注解名称;所述方法包括:响应于针对代码仓库的代码扫描事件,从所述代码仓库中获取基于
Java
编程语言开发完成的至少一份源码文件;获取用户在源码文件中编写的接口描述信息;其中,获取到的接口描述信息包括:从针对所述至少一份源码文件进行编译得到的至少一份
class
文件中的目标
class
文件中解析出的与所述预设注解名称对应的
Java
注解信息;所述目标
class
文件为包含所述预设注解名称的
class
文件;校验所述预定义的接口描述信息和获取到的接口描述信息是否相同
。2.
根据权利要求1所述的方法,所述获取到的接口描述信息,还包括通过如下方式得到的信息:从所述至少一份源码文件中,获取与所述目标
class
文件对应的目标源码文件;将所述目标源码文件转换为抽象语法树;从所述抽象语法树中识别出用户编写的方法,进一步获取所述用户编写的方法的方法签名信息和
/
或注释信息
。3.
根据权利要求2所述的方法,所述从所述抽象语法树中识别出用户编写的方法,包括:根据预设的默认方法的方法名,从所述抽象语法树中排除默认方法,得到用户编写的方法
。4.
根据权利要求2所述的方法,所述获取到的接口描述信息,还包括通过如下方式得到的信息:在内存中加载所述至少一份
class
文件,以将所述
class
文件包含的
class
对象转换成运行时对象;若所述用户编写的方法的方法签名信息中方法的入参类型和
/
或返回值类型并非基本类型,基于
Java
编程语言的反射机制,对所述运行时对象进行反射处理,以获取所述用户编写的方法的入参和
/
...

【专利技术属性】
技术研发人员:陈俊丰王子平
申请(专利权)人:蚂蚁区块链科技上海有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1