System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于Java字节码文件的Swagger注解稽核方法技术_技高网

一种基于Java字节码文件的Swagger注解稽核方法技术

技术编号:40602896 阅读:9 留言:0更新日期:2024-03-12 22:08
本发明专利技术公开了一种基于Java字节码文件的Swagger注解稽核方法,能够确保Swagger接口开发文档的准确性,实现前后端开发人员之间协作效率的提升,减少沟通成本。其技术方案为:步骤一:Swagger注解稽核前的准备工作;步骤二:判断当前项目中所使用的Swagger注解类型,并据此执行不同的稽核逻辑,若为Swagger2注解类型则跳转步骤三,若为OpenAPI3注解类型则跳转步骤四;步骤三:实现对Swagger2注解稽核;步骤四:实现对OpenAPI3注解稽核。

【技术实现步骤摘要】

本专利技术涉及稽核方法,具体涉及一种基于java字节码文件的swagger注解稽核方法。


技术介绍

1、在前后端分离模式的开发过程中,前后端开发人员存在对接口、参数的定义及变动沟通成本高、测试难度大等诸多协作问题。swagger作为一款可生成接口开发文档并且支持测试的框架,无论是独立使用,将接口开发文档作为前后端开发人员协作的连接点。或将接口开发文档作为数据源,导入apifox、apipost等当前流行的接口平台,以实现mock等更多附加功能。swagger框架均已经被广泛应用,大幅提高了前后端协作效率。

2、作为协作连接点、数据源的swagger接口开发文档,其准确性极为重要。一旦接口开发文档中某些接口参数数量、参数类型等出现错误,将直接影响前端开发人员常规开发、测试、mock等一系列问题。然而对于java项目而言,swagger是在后端开发框架中引入,后端人员编写swagger注解后,借助springfox、swagger-maven-plugin等swagger开源工具,将根据注解并结合实际接口,生成接口开发文档。swagger注解是关键点,但是无法确保后端人员对需要进行描述的类、接口等都编写了注解,也无法确保编写的每个接口、参数的注解属性值都是准确的。springfox、swagger-maven-plugin等swagger开源工具更多聚焦于接口开发文档的生成,但是对于开发人员编写的swagger注解规范性、准确性并没有涉及。

3、由此带来的问题会导致前后端开发人员之间协作效率的降低,增加了沟通成本。


技术实现思路

1、以下给出一个或多个方面的简要概述以提供对这些方面的基本理解。此概述不是所有构想到的方面的详尽综览,并且既非旨在指认出所有方面的关键性或决定性要素亦非试图界定任何或所有方面的范围。其唯一的目的是要以简化形式给出一个或多个方面的一些概念以为稍后给出的更加详细的描述之序。

2、本专利技术的目的在于解决上述问题,提供了一种基于java字节码文件的swagger注解稽核方法,能够确保swagger接口开发文档的准确性,实现前后端开发人员之间协作效率的提升,减少沟通成本。

3、本专利技术的技术方案为:本专利技术揭示了一种基于java字节码文件的swagger注解稽核方法,方法包括:

4、步骤一:swagger注解稽核前的准备工作;

5、步骤二:判断当前项目中所使用的swagger注解类型,并据此执行不同的稽核逻辑,若为swagger2注解类型则跳转步骤三,若为openapi3注解类型则跳转步骤四;

6、步骤三:实现对swagger2注解稽核;

7、步骤四:实现对openapi3注解稽核。

8、根据本专利技术的基于java字节码文件的swagger注解稽核方法的一实施例,步骤一包括以下两方面处理:从目标maven项目中,获取当前使用的swagger版本;从目标maven项目中,获取已编译且已过滤的待稽核java字节码文件。

9、根据本专利技术的基于java字节码文件的swagger注解稽核方法的一实施例,步骤一进一步包括以下处理步骤:

10、步骤1:读入目标maven项目;

11、步骤2:扫描当前路径下java字节码文件;

12、步骤3:判断当前路径下是否存在java字节码文件,若存在则跳转步骤4,若不存在,则将其设置为警告或异常信息并跳转步骤9;

13、步骤4:扫描当前路径下pom.xml文件;

14、步骤5:判断当前路径下是否存在pom.xml文件,若存在则跳转步骤6,若不存在,则将其设置为警告或异常信息并跳转步骤9;

15、步骤6:解析pom.xml文件中所有依赖;

16、步骤7:判断swagger依赖类型,若不存在swagger2或openapi3依赖,则将其设置为警告或异常信息并跳转步骤9,若既存在swagger2依赖又存在openapi3依赖,则将其设置为警告或异常信息并跳转步骤9,若存在swagger2或openapi3依赖,则跳转步骤8;

17、步骤8:遍历所有java字节码文件;

18、步骤9:收集警告及异常信息;

19、步骤10:步骤一结束。

20、根据本专利技术的基于java字节码文件的swagger注解稽核方法的一实施例,在步骤一中的步骤6中,借助maven-model工具中mavenxpp3reader对象,将pom文件解析为model模型,并获取model模型中所有依赖列表。

21、根据本专利技术的基于java字节码文件的swagger注解稽核方法的一实施例,在步骤一中的步骤7中,基于swagger依赖类型判断表,根据groupid和artifactid遍历步骤一中的步骤6所获取的依赖列表,进行swagger依赖类型判断。

22、根据本专利技术的基于java字节码文件的swagger注解稽核方法的一实施例,步骤一中的步骤8进一步包括:

23、步骤8.1初始化变量i=0;

24、步骤8.2获取第i个java字节码文件;

25、步骤8.3将字节码文件内容解析为javaclass对象;

26、步骤8.4获取javaclass对象中的类注解列表annotationentry;

27、步骤8.5判断是否存在待扫描的类注解,若存在则跳转步骤8.6,若不存在,则i++,跳转步骤8.2,对下一个字节码文件执行逻辑;

28、步骤8.6收集待稽核字节码文件;

29、步骤8.7判断是否为最后一个字节码文件,若是则跳转步骤10,若不是,则i++,跳转步骤8.2,对下一个字节码文件执行逻辑。

30、根据本专利技术的基于java字节码文件的swagger注解稽核方法的一实施例,在步骤8.3中,借助apache字节码解析工具bcel,将字节码文件解析为javaclass对象。

31、根据本专利技术的基于java字节码文件的swagger注解稽核方法的一实施例,在步骤8.5中,是基于待扫描类注解判断表,根据待扫描类注解包路径和待扫描类注解名称,遍历步骤8.4中获取的类注解列表,判断当前字节码文件是否存在待扫描类注解。

32、根据本专利技术的基于java字节码文件的swagger注解稽核方法的一实施例,步骤三进一步包括以下的处理步骤:

33、步骤1:读入待稽核java字节码文件;

34、步骤2:初始化变量i=0,准备遍历所有java字节码文件;

35、步骤3:获取第i个字节码文件并解析为javaclass对象,其中借助apache字节码解析工具bcel,将字节码文件解析为javaclass对象;

36、步骤4:获取javaclass对象中的类注解列表annotationentry;

37、步骤5:判断是本文档来自技高网...

【技术保护点】

1.一种基于Java字节码文件的Swagger注解稽核方法,其特征在于,方法包括:

2.根据权利要求1所述的基于Java字节码文件的Swagger注解稽核方法,其特征在于,步骤一包括以下两方面处理:从目标Maven项目中,获取当前使用的Swagger版本;从目标Maven项目中,获取已编译且已过滤的待稽核Java字节码文件。

3.根据权利要求1所述的基于Java字节码文件的Swagger注解稽核方法,其特征在于,步骤一进一步包括以下处理步骤:

4.根据权利要求3所述的基于Java字节码文件的Swagger注解稽核方法,其特征在于,在步骤一中的步骤6中,借助maven-model工具中MavenXpp3Reader对象,将pom文件解析为Model模型,并获取Model模型中所有依赖列表。

5.根据权利要求4所述的基于Java字节码文件的Swagger注解稽核方法,其特征在于,在步骤一中的步骤7中,基于swagger依赖类型判断表,根据groupId和artifactId遍历步骤一中的步骤6所获取的依赖列表,进行Swagger依赖类型判断。

6.根据权利要求5所述的基于Java字节码文件的Swagger注解稽核方法,其特征在于,步骤一中的步骤8进一步包括:

7.根据权利要求6所述的基于Java字节码文件的Swagger注解稽核方法,其特征在于,在步骤8.3中,借助apache字节码解析工具BCEL,将字节码文件解析为JavaClass对象。

8.根据权利要求7所述的基于Java字节码文件的Swagger注解稽核方法,其特征在于,在步骤8.5中,是基于待扫描类注解判断表,根据待扫描类注解包路径和待扫描类注解名称,遍历步骤8.4中获取的类注解列表,判断当前字节码文件是否存在待扫描类注解。

9.根据权利要求8所述的基于Java字节码文件的Swagger注解稽核方法,其特征在于,步骤三进一步包括以下的处理步骤:

10.根据权利要求9所述的基于Java字节码文件的Swagger注解稽核方法,其特征在于,步骤三中的步骤10进一步包括以下的处理:

...

【技术特征摘要】

1.一种基于java字节码文件的swagger注解稽核方法,其特征在于,方法包括:

2.根据权利要求1所述的基于java字节码文件的swagger注解稽核方法,其特征在于,步骤一包括以下两方面处理:从目标maven项目中,获取当前使用的swagger版本;从目标maven项目中,获取已编译且已过滤的待稽核java字节码文件。

3.根据权利要求1所述的基于java字节码文件的swagger注解稽核方法,其特征在于,步骤一进一步包括以下处理步骤:

4.根据权利要求3所述的基于java字节码文件的swagger注解稽核方法,其特征在于,在步骤一中的步骤6中,借助maven-model工具中mavenxpp3reader对象,将pom文件解析为model模型,并获取model模型中所有依赖列表。

5.根据权利要求4所述的基于java字节码文件的swagger注解稽核方法,其特征在于,在步骤一中的步骤7中,基于swagger依赖类型判断表,根据groupid和artifactid遍历...

【专利技术属性】
技术研发人员:马克谢恒李凡司马铭骏王嘉华
申请(专利权)人:上海金融期货信息技术有限公司
类型:发明
国别省市:

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

1