CN115599388B - 一种api接口文档生成方法、存储介质及电子设备 - Google Patents

一种api接口文档生成方法、存储介质及电子设备 Download PDF

Info

Publication number
CN115599388B
CN115599388B CN202211269246.XA CN202211269246A CN115599388B CN 115599388 B CN115599388 B CN 115599388B CN 202211269246 A CN202211269246 A CN 202211269246A CN 115599388 B CN115599388 B CN 115599388B
Authority
CN
China
Prior art keywords
target
class
information
code
annotation
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
CN202211269246.XA
Other languages
English (en)
Other versions
CN115599388A (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.)
China Travelsky Mobile Technology Co Ltd
Original Assignee
China Travelsky Mobile 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 China Travelsky Mobile Technology Co Ltd filed Critical China Travelsky Mobile Technology Co Ltd
Priority to CN202211269246.XA priority Critical patent/CN115599388B/zh
Publication of CN115599388A publication Critical patent/CN115599388A/zh
Application granted granted Critical
Publication of CN115599388B publication Critical patent/CN115599388B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/447Target code generation
    • 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)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明公开了一种API接口文档生成方法、存储介质及电子设备,包括获取目标Java代码中的多个第一目标类。对每一第一目标类中的每一目标API的注释信息进行解析处理,以生成每一目标API的接口文档。本发明通过目标Java代码中所有的接口文档可以快速了解开发逻辑,有利于将各端人员的开发逻辑进行统一,由此可以提高各端之间的协同性,保证开发项目的顺利完成。另外,由于其他各端在了解应用项目的开发逻辑时,仅需要通过目标代码的接口文档即可了解代码要实现的开发逻辑,而无需再对具体的代码进行研究解析,由此,可以提高各端开发人员对开发逻辑的理解效率,进而提高应用项目的开发速度。

Description

一种API接口文档生成方法、存储介质及电子设备
技术领域
本发明涉及数据处理领域,特别是涉及一种API接口文档生成方法、存储介质及电子设备。
背景技术
在一个应用项目的Java开发过程中,通常需要多端之间的相互协作配合来最终实现该项目的开发工作。如:在一个应用项目的开发过程中前端负责页面开发,而后端负责程序实现,最终一起协同完成应用项目的开发。在现有技术中为了提高开发效率,越来越流行前后端分离开发。由此,在开发过程中会很容易出现前后端开发逻辑不一致的情况,进而使得前后端的开发工作存在较大差异。由于各端之间的协同性较低,会导致开发项目无法顺利完成。
发明内容
针对上述技术问题,本发明采用的技术方案为:
根据本发明的一个方面,提供了一种API接口文档生成方法,本方法包括如下步骤:
获取目标Java代码中的多个第一目标类。每一第一目标类均对应至少一个API,每一第一目标类内均包括其对应的每一API的API配置代码以及API的注释信息。
对每一第一目标类中对应的每一目标API的注释信息A1,A2,…,Ai,…,Az进行解析处理,以生成每一目标API的接口文档D1,D2,…,Di,…,Dz。其中,Ai为第一目标类中第i个目标API的注释信息。每一注释信息中包括若干注释字段。Di为Ai的接口文档。目标API为注释信息中具有第二类注释字段的任一API。i=1,2,…,z,z为第一目标类中目标API的总数量。
解析处理包括如下步骤:
每当解析到Ai中的注释字段为第一类注释字段时,将当前注释字段的字段名以及字段内容添加至Ai的基本信息集中。
每当解析到Ai中的注释字段为第二类注释字段时,获取第i个目标API的第二目标类。第二目标类为第i个目标API中类标识为当前的注释字段的字段内容的类。第二目标类中包括至少一个第二目标代码信息B1,B2,…,Bn,…,By,其中,Bn为第二目标类中的第n个第二目标代码信息。n=1,2,…,y,y为第二目标类中的第二目标代码信息的总数量。每一第二目标代码信息均由一行第二目标代码及第二目标代码的代码注释构成。每一第二目标代码包括数据类型及变量名。第一类注释字段的字段内容为预设信息,第二类注释字段的字段内容为对应的第二目标类的类标识。
依次将每一第二目标代码信息中包含的数据类型、变量名以及代码注释加入到每一第二目标代码信息对应的代码记录中,以生成Ai的第一代码记录集Ci=(Ci1,Ci2,…,Cin,…,Ciy),其中,Cin为Bn的代码记录。
根据Ai的基本信息集及Ci中的信息生成Di
根据本发明的第二个方面,提供了一种非瞬时性计算机可读存储介质,非瞬时性计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述的一种API接口文档生成方法。
根据本发明的第三个方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述的一种API接口文档生成方法。
本发明至少具有以下有益效果:
本发明中,可以将目标Java代码中的第一目标类中包含的每一个目标API中对应的注释信息提取出来,并根据提取出来的注释信息生成对应的接口文档。由于注释信息为对每一个目标API中的代码要实现的功能的详细描述。所以,可以通过目标API的接口文档来快速了解每一目标API要实现的功能,并通过目标Java代码中所有的接口文档可以快速了解开发逻辑,有利于将各端人员的开发逻辑进行统一。由此可以提高各端之间的协同性,以保证开发项目的顺利完成。
另外,由于其他各端在了解应用项目的开发逻辑时,仅需要通过目标代码的接口文档即可了解代码要实现的开发逻辑,而无需再对具体的代码进行研究解析,由此,不仅可以保证各端人员的开发逻辑尽量统一,还可以提高各端开发人员对开发逻辑的理解效率,进而提高应用项目的开发速度。
同时,本申请中目标Java代码中确定的第一目标类及目标API仅为需要进行协同作业的部分,并且在对每一注释信息A1,A2,…,Ai,…,Az进行解析处理时,仅对注释字段为基本属性字段及第二类注释字段对应的注释信息进行解析提取。由此,可以仅对其他各端需要的内容进行提取展示,而不会对目标Java代码中的所有注释都进行提取。同时可以减少目标Java代码中内容的公开量,提高对目标Java代码的保密性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种API接口文档生成方法的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
作为本发明一种可能的实施例,如图1所示,提供了一种API接口文档生成方法,本方法包括如下步骤:
步骤S100:获取目标Java代码中的多个第一目标类。每一第一目标类均对应至少一个API,每一第一目标类内均包括其对应的每一API的API配置代码以及API的注释信息。第一目标类为具有用于表明目标Java代码的开发逻辑信息的类。
目标Java代码中会包括多个类,每一个类中又会对应多个函数,本实施例中所述的函数也即API(Application Programming Interface,应用程序编程接口)。在实际使用中,可以通过类寄存器来提取目标Java代码中的第一目标类,类寄存器可以将目标Java代码中第一目标类对应的所有的属性信息自动提取出来,如提取出第一目标类对应的全部代码以及相应的注释。
第一类注释字段可以根据具体的使用场景进行设定,且第一类注释字段的位置在每一个类对应的注释中。该第一类注释字段用于表示对应的类(第一目标类)的注释信息需要被提取。具体的,第一类注释字段可以为@restapi或@rulerapi。具体的,在后端开发人员进行程序开发的过程中,可以根据需要将第一类注释字段添加至每一个第一目标类的注释中。通常在确定哪一些类为第一目标类时,需要保证确定出的第一目标类为对应的其他端的开发人员在进行协同时需要使用的类,另外,确定出的所有第一目标类最终对应生成的接口文档,可以反映出开发逻辑,以便于其他端的开发人员快速理解并制定相应的开发方案。
本步骤中,通过在不同的类的注释中设置第一类注释字段,可以生成目标Java代码对应的多个不同种类的注释文档,不同的注释文档中包括不同的第一目标类,如若在与前端人员进行协同时,仅需要在前端人员需要看到的类的注释中设置第一类注释字段;若在与运维端人员进行协同时,仅需要在运维端人员需要看到的类的注释中设置第一类注释字段;由此,在针对不同端进行协同时,可以生成更加具有针对性的注释文档,进而使得本实施例可以更加灵活地生成多种注释文档。
步骤S200:对每一第一目标类中对应的每一目标API的注释信息A1,A2,…,Ai,…,Az进行解析处理,以生成每一目标API的接口文档D1,D2,…,Di,…,Dz。其中,Ai为第一目标类中第i个目标API的注释信息。每一注释信息中包括若干注释字段。Di为Ai的接口文档。目标API为注释信息中具有第二类注释字段的任一API。i=1,2,…,z,z为第一目标类中目标API的总数量。目标Java代码中/**与*/之间的内容为注释内容,由此可以提取每一目标API对应的程序中/**与*/之间的内容作为A1,A2,…,Ai,…,Az
同理,第二类注释字段可以根据具体的使用场景进行设定,由此可以更加灵活的确定每一第一目标类中对应的不同的目标API。经过步骤S100及步骤S200中的第一目标类及目标API的确定步骤,可以保证最终形成的接口文档中包含的信息,基本为其它端在进行协作时需要使用的信息,尽量减少无用信息的存在,由此减少对无用信息的解析提取操作,提高本实施例生成对应的接口文档的速度与效率。
同时,本申请中目标Java代码中确定的第一目标类及目标API仅为需要进行协同作业的部分,并且在对每一注释信息A1,A2,…,Ai,…,Az进行解析处理时,仅对注释字段为基本属性字段及第二类注释字段对应的注释信息进行解析提取。由此,可以仅对其他各端需要的内容进行提取展示,而不会对目标Java代码中的所有注释都进行提取,同时减少目标Java代码中内容的公开量,提高对目标Java代码的保密性。
解析处理包括如下步骤:
步骤S201:每当解析到Ai中的注释字段为第一类注释字段时,将当前注释字段的字段名以及字段内容添加至Ai的基本信息集中。
第一类注释字段可以为基本属性字段,基本属性字段的字段内容也即对类的基本信息的描述。
基本属性字段的字段名可以为:@name(接口名称)、接口类型、@version(版本号)、@rule(协议号)、@requestType(请求类型)、@requestUrl(请求Url)等对应的字段。由此,可以通过上述字段中对应的值,可以对接口的基本属性进行说明介绍。
在实际的编写过程中,在类的注释中也会编写对应的第二类注释字段,如@param(入参值)或@return(返回值)对应的字段。
步骤S202:每当解析到Ai中的注释字段为第二类注释字段时,获取第i个目标API的第二目标类。第二目标类为第i个目标API中类标识为当前的注释字段的字段内容的类。第二目标类中包括至少一个第二目标代码信息B1,B2,…,Bn,…,By,其中,Bn为第二目标类中的第n个第二目标代码信息。n=1,2,…,y,y为第二目标类中的第二目标代码信息的总数量。每一第二目标代码信息均由一行第二目标代码及第二目标代码的代码注释构成。每一第二目标代码包括数据类型及变量名。优选的,第二类注释字段为入参字段或返回值字段。
第一类注释字段的字段内容为预设信息,第二类注释字段的字段内容为对应的第二目标类的类标识。
具体的,第二类注释字段为第一数据表中字段名为入参值和返回值对应的注释字段。第一类注释字段为第一数据表中除了入参值和返回值后剩余的字段名对应的注释字段。第一数据表中预存有目标API的注释信息对应的所有注释字段的字段名。具体第一数据表中的字段名可参照前述字段名。
本实施例中优选的,代码注释中包括第一注释,第一注释用于解释说明对应的第二目标代码或第三目标代码。更优选的,代码注释中还包括第二注释和/或第三注释,第二注释为对应的代码的输入信息的示例信息。如:@mock=起飞。第三注释用于表示对应的代码是否必须返回信息。如:@must=是。由于,在实际的使用过程中,仅通过查看代码对应的第一注释依然会存在难以准确理解到该代码需要输入的信息是什么,由此也会影响到其他端开发人员对相关代码理解的准确性。如以测试端为例进行说明,可以根据第二注释来更快的确定输入内容进而对目标Java代码进行测试。同时,可以根据第三注释中对应的值(是或否),来确定某一程序是否需要设置对应的程序来测试其是否有返回值。具体为,当第三注释中对应的值为否时,无需再次对其返回值进行测试。由此,可以减少其他端的开发人员在开展工作时,进行一些无用操作。通过设置上述三种注释,有利于其他端开发人员更加高效顺利地开展工作,进一步提高多端之间的协同性。
每当解析到Ai中的注释字段为第二类注释字段时,可以通过反射第二类注释字段的值来在Java程序中找到该值具体对应的程序段,也即第二目标类。然后,再对每一个第二目标类中的每一行代码进行处理,以生成每一个第二目标代码信息对应的代码记录。反射为现有技术,其主要用于通过对应的值来查找该值对应的某一程序段。
步骤S203:依次将每一第二目标代码信息中包含的数据类型、变量名以及代码注释加入到每一第二目标代码信息对应的代码记录中,以生成Ai的第一代码记录集Ci=(Ci1,Ci2,…,Cin,…,Ciy),其中,Cin为Bn的代码记录。
每一个代码记录具体可以为,将一行第二目标代码中包含的数据类型及变量名等信息分别放入代码记录对应的字段中,另外,将代码注释放置到代码记录的其他对应的字段中。同时,由于在代码注释中可能会包括第一注释、第二注释和第三注释三种类型,由此对应的代码记录中会至少设置3个对应的字段,用于存放对应的信息。
步骤S204:根据Ai的基本信息集及Ci中的信息生成Di。Di可以为网页,将Ai的基本信息集及Ci中的信息加入网页对应的页面中即可,以形成某一目标API对应的接口文档。使用上述方法生成目标Java代码中对应的每一目标API的接口文档。
本发明中,可以将目标Java代码中的第一目标类中包含的每一个目标API中对应的注释信息提取出来,并根据提取出来的注释信息生成对应的接口文档。由于注释信息为对每一个目标API中的代码要实现的功能的详细描述。所以,可以通过目标API的接口文档来快速了解每一目标API要实现的功能,并通过目标Java代码中所有的接口文档快速了解开发逻辑,有利于将各端人员的开发逻辑进行统一,由此提高各端之间的协同性,以保证开发项目的顺利完成。
另外,由于其他各端在了解应用项目的开发逻辑时,仅需要通过目标代码的接口文档即可了解代码要实现的开发逻辑,而无需再对具体的代码进行研究解析,由此,不仅可以保证各端人员的开发逻辑进的统一,还可以提高各端开发人员对开发逻辑的理解效率。进而提高应用项目的开发速度。
作为本发明的另一个可能的实施例,步骤S204:根据Ai的基本信息集及Ci中的信息生成Di,包括:
步骤S205:每当第二目标代码信息中包含的数据类型为预设数据类型时,获取第i个目标API的第三目标类。以获取第i个目标API对应的多个第三目标类fi1,fi2,…,fip,…,fix,fip=(Ep1,Ep2,…,Epa,…,Epf(p))。其中,fip为第i个目标API对应的第p个第三目标类。Epa为fip中的第a个第三目标代码信息。p=1,2,…,x,x为第i个目标API对应的第三目标类的总数量。a=1,2,…,f(p),f(p)为fip中的第三目标代码信息的总数量。预设数据类型为第二数据表中预存的字符串对应的数据类型。
步骤S206:第三目标类为第i个目标API中类名为预设数据类型的类。第三目标代码信息为第三目标类中的任一行第三目标代码及第三目标代码对应的代码注释。第三目标代码包括数据类型及变量名。
步骤S207:将每一第三目标类中包含的所有第三目标代码信息中包含的数据类型、变量名以及代码注释加入到对应的第三目标代码信息的代码记录中,以生成每一对应的第三目标类的第二代码记录子集Gi1,Gi2,…,Gip,…,Gix,Gip=(Gp1,Gp2,…,Gpa,…,Gpf(p))。其中,Gip为fip对应的第二代码记录子集。Gpa为Epa对应的代码记录。
步骤S208:根据Ai的基本信息集、Ci及Gi1,Gi2,…,Gip,…,Gix中的信息生成Di
在对每一第二目标代码信息进行解析的过程中,第二目标代码信息中包含的数据类型可能为预设数据类型,若为预设数据类型时,则说明该代码还在调用其他的子代码,同样通过预设数据类型对应的值进行反射,可以找到每一个预设数据类型对应的子代码,也即第三目标类。通常常规的数据类型可以为“String、Integer、Long、int”等。预设数据类型可以自行设定,如“List、CarServiceDes、List<String>”等。以第二目标代码信息为:
/**
*文案内容
*/
private List<String>content为例进行说明,private List<String>为该第二目标代码信息对应的代码记录中数据类型字段对应的值。content为该第二目标代码信息对应的代码记录中变量名字段对应的值。文案内容为该第二目标代码信息对应的代码记录中备注字段对应的值。由于List<String>为预设数据类型,所以可以通过反射来找到类名为“List<String>”的第三目标类。然后再通过上述的步骤S206与步骤S207确定第三目标类中每一第三目标代码信息对应的代码记录。
通过本实施例可以在生成第二目标代码信息对应的代码记录的基础上,再生成对应的第三目标代码信息的代码记录。同理,生成第N目标代码信息对应的代码记录,均可按照上述生成对应的第三目标代码信息的代码记录的方式进行。N为大于3的正整数。所以,通过本实施例可以逐级将每一级代码中的信息提取出来。由此,生成的接口文档中的信息之间的层级关系以及相互之间的包含关系更加清楚明了,也可以反映出代码之间的层级关系,便于其他端的开发人员根据对应的层级关系更加清楚的了解开发逻辑,以提高各端之间的协同性。
作为本发明的另一个可能的实施例,步骤S100:获取目标Java代码中的第一目标类,包括:
步骤S101:提取目标Java代码中每一个类的原始信息,类的原始信息包括类的原始代码及类的注释信息。类的注释信息为每一个类的原始信息中第一设定标识符与第二设定标识符之间的信息。第一设定标识符可以为“/**”,第二设定标识符可以为“*/”。
可以通过现有的提取工具将目标Java代码中每一个类的信息,如使用现有的qdox工具对目标Java代码中进行提取,可以读取出每一个类对应的原始代码及类的注释信息。
步骤S102:对目标Java代码中每一个类的注释信息中的注释字段进行第一判定处理,以确定目标Java代码中包括的第一目标类。
第一判定处理包括如下步骤:
步骤S103:依次解析当前的类中的每一注释字段。
步骤S104:每当解析到的注释字段为第一类注释字段时,确定当前的类为第一目标类。并结束对当前的类中注释信息的剩余注释字段的解析。
进一步的,在步骤S200:对每一第一目标类中的每一目标API的注释信息A1,A2,…,Ai,…,Az进行解析处理之前,方法还包括:
步骤S210:对每一第一目标类中的每一API的注释信息进行第二判定处理,以确定第一目标类中包括的目标API。
第二判定处理包括如下步骤:
步骤S211:对当前的API的注释信息中的注释字段进行解析。
步骤S212:每当解析到的注释字段为第二类注释字段时,确定当前的API为目标API。并结束对当前的API的注释信息中的剩余注释字段的解析。
本实施例中,在确定目标Java代码中的第一目标类以及每一第一目标类中的目标API的步骤中,均是先对对应的注释信息中的注释字段进行匹配,当匹配成功时,则确定对应的第一目标类以及目标API。在整个匹配的过程中仅关注注释字段,可以减少对其他信息的处理操作,由此可以提高第一目标类以及目标API的确定速度。另外,一旦完成第一目标类或目标API的匹配,即停止对剩余注释字段解析匹配处理。由此,可以及时对下一个类或者API进行解析匹配处理,进而进一步提高第一目标类以及目标API的确定速度。
作为本发明的另一个可能的实施例,步骤S208:根据Ai的基本信息集、Ci及Gi1,Gi2,…,Gip,…,Gix中的信息生成Di,包括:
步骤S2081:建立Di,Di包括基本信息表及注释表。注释表中具有多个一级记录。
步骤S2082:将基本信息集中的信息加载至基本信息表。
步骤S2083:将Ci中的每一代码记录依次插入注释表的每一一级记录中。
步骤S2084:每当一级记录中的数据类型与Gi1,Gi2,…,Gip,…,Gix中任一第二代码记录子集对应的第三目标类的类名相同时,确定一级记录为目标一级记录。
步骤S2085:建立每一目标一级记录对应的二级注释子表,二级注释子表具有多个二级记录。
步骤S2086:分别将每一Gi1,Gi2,…,Gip,…,Gix中包括的代码记录,插入至对应的目标一级记录对应的二级注释子表中。同时,还可以根据每一第一目标类中包括的目标API、第二目标类以及第三目标类等信息之间的层级关系,生成每一第一目标的层级关系树。
本实施例中,可以根据一级代码之间的层级关系,来对应确定接口文档中的各信息之间的层级关系。由此,可以更加清楚明了地反映出代码之间的层级关系,便于其他端的开发人员根据对应的层级关系更加清楚地了解开发逻辑,以提高各端之间的协同性。
本发明的实施例还提供了一种非瞬时性计算机可读存储介质,该存储介质可设置于电子设备之中以保存用于实现方法实施例中一种方法相关的至少一条指令或至少一段程序,该至少一条指令或该至少一段程序由该处理器加载并执行以实现上述实施例提供的方法。
本发明的实施例还提供了一种电子设备,包括处理器和前述的非瞬时性计算机可读存储介质。
本发明的实施例还提供一种计算机程序产品,其包括程序代码,当程序产品在电子设备上运行时,程序代码用于使该电子设备执行本说明书上述描述的根据本发明各种示例性实施方式的方法中的步骤。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明开的范围由所附权利要求来限定。

Claims (9)

1.一种API接口文档生成方法,其特征在于,所述方法包括如下步骤:
获取目标Java代码中的多个第一目标类;每一所述第一目标类均对应至少一个API,每一所述第一目标类内均包括其对应的每一API的API配置代码以及API的注释信息;所述第一目标类为具有用于表明目标Java代码的开发逻辑信息的类;
对每一所述第一目标类中对应的每一目标API的注释信息A1,A2,…,Ai,…,Az进行解析处理,以生成每一目标API的接口文档D1,D2,…,Di,…,Dz;其中,Ai为所述第一目标类中第i个目标API的注释信息;每一注释信息中包括若干注释字段;Di为Ai的接口文档;所述目标API为注释信息中具有第二类注释字段的任一API;i=1,2,…,z,z为所述第一目标类中目标API的总数量;
所述解析处理包括如下步骤:
每当解析到Ai中的注释字段为第一类注释字段时,将当前所述注释字段的字段名以及字段内容添加至Ai的基本信息集中;
每当解析到Ai中的注释字段为所述第二类注释字段时,获取第i个目标API的第二目标类;所述第二目标类为第i个目标API中类标识为当前的注释字段的字段内容的类;所述第二目标类中包括至少一个第二目标代码信息B1,B2,…,Bn,…,By,其中,Bn为所述第二目标类中的第n个第二目标代码信息;n=1,2,…,y,y为所述第二目标类中的第二目标代码信息的总数量;每一所述第二目标代码信息均由一行第二目标代码及所述第二目标代码的代码注释生成;每一所述第二目标代码包括数据类型及变量名;所述第一类注释字段的字段内容为预设信息,所述第二类注释字段的字段内容为对应的第二目标类的类标识;
依次将每一所述第二目标代码信息中包含的数据类型、变量名以及代码注释加入到每一所述第二目标代码信息对应的代码记录中,以生成Ai的第一代码记录集Ci=(Ci1,Ci2,…,Cin,…,Ciy),其中,Cin为Bn的代码记录;
根据Ai的基本信息集及Ci中的信息生成Di
根据Ai的基本信息集及Ci中的信息生成Di,包括:
每当第二目标代码信息中包含的数据类型为预设数据类型时,获取第i个目标API的第三目标类,以获取第i个目标API对应的多个第三目标类fi1,fi2,…,fip,…,fix,fip=(Ep1,Ep2,…,Epa,…,Epf(p));其中,fip为第i个目标API对应的第p个第三目标类;Epa为fip中的第a个第三目标代码信息;p=1,2,…,x,x为第i个目标API对应的第三目标类的总数量;a=1,2,…,f(p),f(p)为fip中的第三目标代码信息的总数量;预设数据类型为数据表中预存的字符串对应的数据类型;
所述第三目标类为第i个目标API中类名为预设数据类型的类;所述第三目标代码信息为第三目标类中的任一行第三目标代码及所述第三目标代码对应的代码注释;所述第三目标代码包括数据类型及变量名;
将每一第三目标类中包含的所有第三目标代码信息中包含的数据类型、变量名以及代码注释加入到对应的所述第三目标代码信息的代码记录中,以生成每一对应的第三目标类的第二代码记录子集Gi1,Gi2,…,Gip,…,Gix,Gip=(Gp1,Gp2,…,Gpa,…,Gpf(p));其中,Gip为fip对应的第二代码记录子集;Gpa为Epa对应的代码记录;
根据Ai的基本信息集、Ci及Gi1,Gi2,…,Gip,…,Gix中的信息生成Di
2.根据权利要求1所述的方法,其特征在于,获取目标Java代码中的第一目标类,包括:
提取所述目标Java代码中每一个类的原始信息,所述类的原始信息包括类的原始代码及类的注释信息;所述类的注释信息为每一个类的原始信息中第一设定标识符与第二设定标识符之间的信息;
对所述目标Java代码中每一个类的注释信息中的注释字段进行第一判定处理,以确定所述目标Java代码中包括的第一目标类;
所述第一判定处理包括如下步骤:
依次解析当前的类中的每一注释字段;
每当解析到的注释字段为第一类注释字段时,确定当前的类为第一目标类;并结束对当前的类中注释信息的剩余注释字段的解析。
3.根据权利要求1所述的方法,其特征在于,在对每一所述第一目标类中的每一目标API的注释信息A1,A2,…,Ai,…,Az进行解析处理之前,所述方法还包括:
对每一第一目标类中的每一API的注释信息进行第二判定处理,以确定第一目标类中包括的目标API;
所述第二判定处理包括如下步骤:
对当前的API的注释信息中的注释字段进行解析;
每当解析到的注释字段为第二类注释字段时,确定当前的API为目标API;并结束对当前的API的注释信息中的剩余注释字段的解析。
4.根据权利要求1所述的方法,其特征在于,所述第二类注释字段为入参字段或返回值字段。
5.根据权利要求1所述的方法,其特征在于,根据Ai的基本信息集、Ci及Gi1,Gi2,…,Gip,…,Gix中的信息生成Di,包括:
建立Di,Di包括基本信息表及注释表;所述注释表中具有多个一级记录;
将所述基本信息集中的信息加载至所述基本信息表中;
将Ci中的每一代码记录依次插入所述注释表的每一一级记录中;
每当一级记录中的数据类型与Gi1,Gi2,…,Gip,…,Gix中任一第二代码记录子集对应的第三目标类的类名相同时,确定所述一级记录为目标一级记录;
建立每一所述目标一级记录对应的二级注释子表,所述二级注释子表具有多个二级记录;
分别将每一Gi1,Gi2,…,Gip,…,Gix中包括的代码记录,插入至对应的目标一级记录对应的二级注释子表中。
6.根据权利要求1所述的方法,其特征在于,所述代码注释中包括第一注释,所述第一注释用于注释说明对应的第二目标代码或第三目标代码。
7.根据权利要求6所述的方法,其特征在于,所述代码注释中还包括第二注释和/或第三注释,所述第二注释为对应的代码的输入信息的示例信息;所述第三注释用于表示对应的代码是否必须返回信息。
8.一种非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的一种API接口文档生成方法。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的一种API接口文档生成方法。
CN202211269246.XA 2022-10-17 2022-10-17 一种api接口文档生成方法、存储介质及电子设备 Active CN115599388B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211269246.XA CN115599388B (zh) 2022-10-17 2022-10-17 一种api接口文档生成方法、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211269246.XA CN115599388B (zh) 2022-10-17 2022-10-17 一种api接口文档生成方法、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN115599388A CN115599388A (zh) 2023-01-13
CN115599388B true CN115599388B (zh) 2023-07-21

Family

ID=84847434

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211269246.XA Active CN115599388B (zh) 2022-10-17 2022-10-17 一种api接口文档生成方法、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN115599388B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116934438A (zh) * 2023-04-14 2023-10-24 济南明泉数字商务有限公司 一种基于chatGPT模型和算力的AI竞拍决策方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129365A (zh) * 2010-01-20 2011-07-20 阿里巴巴集团控股有限公司 一种生成代码说明文档的方法及装置
CN109783079A (zh) * 2018-12-21 2019-05-21 南京航空航天大学 一种基于程序分析和循环神经网络的代码注释生成方法
CN110825431A (zh) * 2019-11-14 2020-02-21 京东数字科技控股有限公司 接口文档处理方法及装置、系统、存储介质和电子设备
CN112162751A (zh) * 2020-09-09 2021-01-01 杭州涂鸦信息技术有限公司 一种接口文档自动生成方法及系统
CN113050953A (zh) * 2021-04-21 2021-06-29 平安普惠企业管理有限公司 基于注释生成代码的方法、装置及存储介质
WO2022076680A1 (en) * 2020-10-09 2022-04-14 Ezapi Llc Natural language processing of api specifications for automatic artifact generation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102129365A (zh) * 2010-01-20 2011-07-20 阿里巴巴集团控股有限公司 一种生成代码说明文档的方法及装置
CN109783079A (zh) * 2018-12-21 2019-05-21 南京航空航天大学 一种基于程序分析和循环神经网络的代码注释生成方法
CN110825431A (zh) * 2019-11-14 2020-02-21 京东数字科技控股有限公司 接口文档处理方法及装置、系统、存储介质和电子设备
CN112162751A (zh) * 2020-09-09 2021-01-01 杭州涂鸦信息技术有限公司 一种接口文档自动生成方法及系统
WO2022076680A1 (en) * 2020-10-09 2022-04-14 Ezapi Llc Natural language processing of api specifications for automatic artifact generation
CN113050953A (zh) * 2021-04-21 2021-06-29 平安普惠企业管理有限公司 基于注释生成代码的方法、装置及存储介质

Also Published As

Publication number Publication date
CN115599388A (zh) 2023-01-13

Similar Documents

Publication Publication Date Title
CN109800175B (zh) 一种基于代码插桩的以太坊智能合约重入漏洞检测方法
KR101780233B1 (ko) 소프트웨어의 코드 클론 탐지 장치 및 방법
US7958493B2 (en) Type inference system and method
JP4619698B2 (ja) コードセグメント作成方法及びそのシステム
JP4659946B2 (ja) ラッパ文法を生成する方法
EP1672526A2 (en) File formats, methods, and computer program products for representing documents
TW200821928A (en) Parsing unstructured resources
CN108984612B (zh) 目标sql语句的获取方法、装置、计算机设备及存储介质
CN112540862A (zh) 一种接口文档数据生成方法、装置、设备及存储介质
CN115599388B (zh) 一种api接口文档生成方法、存储介质及电子设备
CN114090671A (zh) 数据导入方法、装置、电子设备及存储介质
CN114153459A (zh) 接口文档生成方法及装置
US9158748B2 (en) Correction of quotations copied from electronic documents
CN113032393A (zh) 一种绑定关联对象的方法和装置
US9436664B2 (en) Performing multiple scope based search and replace within a document
CN111475150B (zh) 一种跨语言绑定方法、装置、设备及存储介质
CN111767213B (zh) 数据库检查点的测试方法、装置、电子设备及存储介质
CN110275712B (zh) 一种文本替换方法、装置及设备
CN117010345A (zh) 一种函数文档的生成方法、装置、设备及存储介质
CN113010550B (zh) 结构化数据的批处理对象生成、批处理方法和装置
CN110515653B (zh) 文档生成方法、装置、电子设备及计算机可读存储介质
CN111381827A (zh) 生成代码文件的语法树的方法、装置及电子设备
CN111626585B (zh) 脚本数据提取方法、装置、计算机设备和存储介质
CN112035367B (zh) 一种大数据平台工作流正确性的校验方法及系统
CN113448923B (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
GR01 Patent grant
GR01 Patent grant