生成API文档的方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:37323527 阅读:13 留言:0更新日期:2023-04-21 23:03
本发明专利技术提供了一种生成API文档的方法、装置、计算机设备及存储介质,涉及软件开发技术领域,包括:获取原始代码注解;对所述原始代码注解增加API注解,得到目标代码注解;根据所述目标代码注解的注解级别,判断所述目标代码注解是否进入注解处理器;若所述目标代码注解进入所述注解处理器,则处理进入所述注解处理器的所述目标代码注解,获取API数据;将所述API数据汇总生成API文档。本发明专利技术实现了API文档不随项目发布,从而减少系统信息泄露风险。从而减少系统信息泄露风险。从而减少系统信息泄露风险。

【技术实现步骤摘要】
生成API文档的方法、装置、计算机设备及存储介质


[0001]本专利技术涉及软件开发
,具体而言,涉及一种生成API文档的方法、装置、计算机设备及存储介质。

技术介绍

[0002]Java是现有的具有可移植性的用于编写程序的高级编程语言,其中系统和应用程序通过API进行通信。其中API是一些预先定义的函数,而API文档是一个关于API的
技术实现思路
交付文件,包含如何有效地使用和集成API的说明。它包含了使用API所需的所有信息,详细介绍了函数、类、返回类型、参数等,对API的解读非常重要。
[0003]目前API文档的编写主要分为手工编写和通过工具生成API文档。手工编写是使用MarkDown语法或者其他Html样式进行手工编写的API文档,但会造成增加工作量,代码和文档更新不同步、不及时等问题。通过工具生成API文档大多将相关信息随代码一起编写,然后再通过特定工具进行抽取和解析。此类技术主要通过Java自带的swagger技术实现,swagger技术在项目启动时其会自动对代码和注解进行扫描和解析,生成API文档数据,再通过接口供用户查看。但同时引入swagger就需要引用它的相关类库,并且生成生产包时也会将相关类库打包,API文档数据耦合在程序中并且随程序发布。其他人在获取API文档后,可以通过API文档查看相关接口信息,利用简单的反编译获取代码中的相关注释,使得系统源代码泄露的风险增大。

技术实现思路

[0004]本专利技术解决的问题是API文档随项目发布增加系统源代码泄露风险。
>[0005]为解决上述问题,本专利技术提供一种生成API文档的方法,包括:
[0006]获取原始代码注解;对所述原始代码注解增加API注解,得到目标代码注解;根据所述目标代码注解的注解级别,判断所述目标代码注解是否进入注解处理器;若所述目标代码注解进入所述注解处理器,则处理进入所述注解处理器的所述目标代码注解,获取API数据;将所述API数据汇总生成API文档。
[0007]可选地,所述原始代码注解的注解类型包括控制类型注解、服务类型注解和方法参数类型注解,所述API注解包括第一类别、第二类别和第三类别,所述API注解的所述第一类别用于标记所述原始代码注解的所述控制类型注解,所述API注解的所述第二类别用于标记所述原始代码注解的所述服务类型注解,所述API注解的所述第三类别用于标记所述原始代码注解的所述方法参数类型注解;
[0008]所述对所述原始代码注解增加API注解,得到目标代码注解,包括:
[0009]判断所述原始代码注解的所述注解类型;
[0010]根据所述原始代码注解的所述注解类型,对所述原始代码注解增加对应类别的所述API注解,得到所述目标代码注解。
[0011]可选地,所述若所述目标代码注解进入所述注解处理器,则处理进入所述注解处
理器的所述目标代码注解,获取API数据,包括:
[0012]提取进入所述注解处理器的所述目标代码注解中被所述第一类别标记的多个第一元素,依次判断所述第一元素是否包含所述控制类型注解,其中,所述第一元素包括多个子元素;
[0013]若不包含所述控制类型注解时,则检索下一个所述第一元素,
[0014]若包含所述控制类型注解时,则提取所述第一类别和所述控制类型注解的服务数据;
[0015]提取所述第一元素中为方法类的子元素,根据所述方法类的所述子元素获取第二元素;
[0016]根据所述第二元素获取方法属性数据和参数属性数据;
[0017]根据所述服务数据、所述方法属性数据和所述参数属性数据获取API数据。
[0018]可选地,所述根据所述第二元素获取方法属性数据和参数属性数据,包括:
[0019]判断所述第二元素是否包含所述服务类型注解,
[0020]若包含所述服务类型注解,则提取所述第二类别、所述第二元素的自身属性数据和所述服务类型注解的所述方法属性数据;
[0021]将所述第二元素参数转换获取第三元素;
[0022]根据所述第三元素的自身参数数据和所述方法参数类型注解获取所述参数属性数据。
[0023]可选地,所述注解级别包括源码级、类级和运行级;
[0024]所述根据所述目标代码注解的注解级别,判断所述目标代码注解是否进入注解处理器,包括:
[0025]当所述注解级别为所述源码级时,则所述目标代码注解进入所述注解处理器;
[0026]当所述注解级别为所述类级或运行级时,则所述目标代码注解不进入所述注解处理器。
[0027]可选地,所述当所述注解级别为所述类级或运行级时,则所述目标代码注解不进入所述注解处理器,包括;
[0028]当所述注解级别为所述类级时,则所述目标代码注解不进入所述注解处理器,进入源文件,且不加载运行;
[0029]当所述注解级别为所述运行级时,则所述目标代码注解不进入所述注解处理器,进入源文件,且加载运行,其中,所述源文件为编译的字节码文件。
[0030]可选地,所述API注解的所述注解级别均为所述源码级。
[0031]本专利技术所述的生成API文档的方法,通过对原始代码注解增加API注解,得到目标代码注解,通过注解级别使得相关注解只会出现在注解处理器中,保证运行时的程序不受相关注解的干扰。若目标代码注解进入注解处理器,则根据API注解处理进入注解处理器的目标代码注解,获取API数据,通过注解处理器生成API数据最后将API数据汇总打包生成API文档。本专利技术中,生成API数据的是目标代码注解,目标代码注解是对原始代码注解增加API注解得到的,并未耦合进入由代码构成的程序中,因此生成的API数据也未耦合进入程序中,即API文档和程序分离,有效地减小了API数据泄露的风险,从而减少了系统源代码泄露风险。
[0032]本专利技术还提供一种生成API文档的装置,包括:第一获取单元,所述第一获取单元用于获取原始代码注解;
[0033]注解单元,所述注解单元用于对所述原始代码注解增加API注解,得到目标代码注解;
[0034]判断单元,所述判断单元用于根据所述目标代码注解的注解级别,判断所述目标代码注解是否进入注解处理器;
[0035]第二获取单元,所述第二获取单元用于若所述目标代码注解进入所述注解处理器,则处理进入所述注解处理器的所述目标代码注解,获取API数据;
[0036]生成单元,所述生成单元用于将所述API数据汇总生成API文档。
[0037]本专利技术所述的生成API文档的装置与所述生成API文档的方法相对于现有技术的优势相同,在此不再赘述。
[0038]本专利技术还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现所述生成API文档的方法的步骤。
[0039]本专利技术所述的计算机设备与所述生成API文档的方法相对于现有技术的优势相同,在此不再赘述。
本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种生成API文档的方法,其特征在于,包括:获取原始代码注解;对所述原始代码注解增加API注解,得到目标代码注解;根据所述目标代码注解的注解级别,判断所述目标代码注解是否进入注解处理器;若所述目标代码注解进入所述注解处理器,则处理进入所述注解处理器的所述目标代码注解,获取API数据;将所述API数据汇总生成API文档。2.根据权利要求1所述的生成API文档的方法,其特征在于,所述原始代码注解的注解类型包括控制类型注解、服务类型注解和方法参数类型注解,所述API注解包括第一类别、第二类别和第三类别,所述API注解的所述第一类别用于标记所述原始代码注解的所述控制类型注解,所述API注解的所述第二类别用于标记所述原始代码注解的所述服务类型注解,所述API注解的所述第三类别用于标记所述原始代码注解的所述方法参数类型注解;所述对所述原始代码注解增加API注解,得到目标代码注解,包括:判断所述原始代码注解的所述注解类型;根据所述原始代码注解的所述注解类型,对所述原始代码注解增加对应类别的所述API注解,得到所述目标代码注解。3.根据权利要求2所述的生成API文档的方法,其特征在于,所述若所述目标代码注解进入所述注解处理器,则处理进入所述注解处理器的所述目标代码注解,获取API数据,包括:提取进入所述注解处理器的所述目标代码注解中被所述第一类别标记的多个第一元素,依次判断所述第一元素是否包含所述控制类型注解,其中,所述第一元素包括多个子元素;若包含所述控制类型注解时,则提取所述第一类别和所述控制类型注解的服务数据;提取所述第一元素中为方法类的子元素,根据所述方法类的所述子元素获取第二元素;根据所述第二元素获取方法属性数据和参数属性数据;根据所述服务数据、所述方法属性数据和所述参数属性数据获取API数据。4.根据权利要求3所述的生成API文档的方法,其特征在于,所述根据所述第二元素获取方法属性数据和参数属性数据,包括:判断所述第二元素是否包含所述服务类型注解,若包含所述服务类型注解,则提取所述第二类别、所述第二元素的自身属性数据和所述服务类型注解的所述方法属性数据;...

【专利技术属性】
技术研发人员:杨军苏彭张研邵慧
申请(专利权)人:安徽航天信息有限公司
类型:发明
国别省市:

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

1