CN111796809A - 接口文档生成方法、装置、电子设备及介质 - Google Patents

接口文档生成方法、装置、电子设备及介质 Download PDF

Info

Publication number
CN111796809A
CN111796809A CN202010610741.7A CN202010610741A CN111796809A CN 111796809 A CN111796809 A CN 111796809A CN 202010610741 A CN202010610741 A CN 202010610741A CN 111796809 A CN111796809 A CN 111796809A
Authority
CN
China
Prior art keywords
interface
information
interface document
document generation
class
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.)
Pending
Application number
CN202010610741.7A
Other languages
English (en)
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.)
Ping An Puhui Enterprise Management Co Ltd
Original Assignee
Ping An Puhui Enterprise Management 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 Ping An Puhui Enterprise Management Co Ltd filed Critical Ping An Puhui Enterprise Management Co Ltd
Priority to CN202010610741.7A priority Critical patent/CN111796809A/zh
Publication of CN111796809A publication Critical patent/CN111796809A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本发明涉及数据处理,提供一种接口文档生成方法、装置、电子设备及介质。该方法能够当接收到接口文档生成请求时,从所述接口文档生成请求中提取maven坐标,从多个配置系统中拉取与所述maven坐标对应的代码文件,遍历所述代码文件,得到接口类方法,对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息,根据所述接口信息生成接口文档。本发明无需开发人员手工编写配置文件以及引入额外的注解,此外,由于在接收到接口文档生成请求时,对代码文件进行了重新拉取,能够避免生成接口文档时遗漏掉接口信息,另外,本发明能够提高所述接口文档的生成效率。此外,本发明还涉及区块链技术,所述接口文档可存储于区块链中。

Description

接口文档生成方法、装置、电子设备及介质
技术领域
本发明涉及数据处理技术领域,尤其涉及一种接口文档生成方法、装置、电子设备及介质。
背景技术
为了便于不同的开发人员之间能够相互了解各自编写的代码内容,每个开发人员除了要编写代码文件之外,还需要手工编写与代码文件对应的接口文档,然而,这种方式效率低下,另外,不同的开发人员所编写的接口文档的格式不统一,不便于其他开发人员阅读;此外,在接口更新或者修改时,开发人员容易忽略对接口文档中对应的接口说明的更新,因此,经常会出现接口文档与代码文件不一致的现象。
而现有的自动化生成方案中仍然需要手工编写配置文件,效率提升不够明显;另外,还需要引入额外的注解来标记接口,这种做法会对代码文件造成一定的侵入性。
发明内容
鉴于以上内容,有必要提供一种接口文档生成方法、装置、电子设备及介质,能够在无需引入额外的注解的同时,提高接口文档的生成效率。
一种接口文档生成方法,所述方法包括:
当接收到接口文档生成请求时,从所述接口文档生成请求中提取maven坐标;
从多个配置系统中拉取与所述maven坐标对应的代码文件;
遍历所述代码文件,得到接口类方法;
对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息;
根据所述接口信息生成接口文档。
根据本发明优选实施例,所述从多个配置系统中拉取与所述maven坐标对应的代码文件包括:
从所述多个配置系统中搜索与所述maven坐标对应的项目;
从所述接口文档生成请求中提取项目版本号;
根据所述项目,从配置库中获取与所述项目版本号对应的路径信息;
根据所述路径信息获取所述代码文件。
根据本发明优选实施例,所述根据所述接口信息生成接口文档包括:
获取所述接口信息对应的标识,并获取与所述项目对应的目标模板;
从所述目标模板上获取与所述标识对应的标签;
确定所述标签在所述目标模板上的参数位置;
将所述接口信息录入所述参数位置中。
根据本发明优选实施例,所述遍历所述代码文件,得到接口类方法包括:
识别所述代码文件所使用的软件框架;
基于所述软件框架,筛选所述代码文件中带有接口标记的类方法,并将筛选出的类方法确定为所述接口类方法。
根据本发明优选实施例,所述对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息包括:
编译所述接口类方法对应的方法体,得到class文件,所述class文件包含类注释信息;
提取所述类注释信息中的多个参数对象;
解析所述多个参数对象,得到所述多个参数对象对应的多个属性信息;
对所述多个属性信息进行转换处理,得到JSON注释信息;
解析所述JSON注释信息,得到所述接口信息。
根据本发明优选实施例,在根据所述接口信息生成接口文档之后,所述接口文档生成方法还包括:
为所述接口文档建立索引,得到目标索引,并保存所述目标索引与所述接口文档的映射关系及保存所述接口文档至数据库中;
当接收到对任意接口文档的搜索指令时,搜索所述数据库中的所有接口文档,并将搜索到的接口文档确定为目标接口文档;
创建多个显示形式的显示界面,及检测用户对所述显示界面的选取操作,并将选取的显示界面确定为指定界面;
通过所述指定界面展示所述目标接口文档;
监听所述指定界面上的修改操作;
当监听到所述指定界面上有修改操作产生时,获取所述修改操作对应的日志信息;
解析所述日志信息,得到修改信息,并根据所述修改信息对所述目标接口文档进行修改,得到修改后的接口文档。
根据本发明优选实施例,在根据所述接口信息生成接口文档后,所述接口文档生成方法还包括:
获取所述接口文档生成请求的请求编号;
根据所述请求编号及所述目标索引生成提示信息;
采用对称加密技术加密所述提示信息,得到密文;
将所述密文发送至指定联系人的终端设备。
一种接口文档生成装置,所述装置包括:
提取单元,用于当接收到接口文档生成请求时,从所述接口文档生成请求中提取maven坐标;
拉取单元,用于从多个配置系统中拉取与所述maven坐标对应的代码文件;
遍历单元,用于遍历所述代码文件,得到接口类方法;
处理单元,用于对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息;
生成单元,用于根据所述接口信息生成接口文档。
根据本发明优选实施例,所述拉取单元具体用于:
从所述多个配置系统中搜索与所述maven坐标对应的项目;
从所述接口文档生成请求中提取项目版本号;
根据所述项目,从配置库中获取与所述项目版本号对应的路径信息;
根据所述路径信息获取所述代码文件。
根据本发明优选实施例,所述生成单元根据所述接口信息生成接口文档包括:
获取所述接口信息对应的标识,并获取与所述项目对应的目标模板;
从所述目标模板上获取与所述标识对应的标签;
确定所述标签在所述目标模板上的参数位置;
将所述接口信息录入所述参数位置中。
根据本发明优选实施例,所述遍历单元具体用于:
识别所述代码文件所使用的软件框架;
基于所述软件框架,筛选所述代码文件中带有接口标记的类方法,并将筛选出的类方法确定为所述接口类方法。
根据本发明优选实施例,所述处理单元对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息包括:
编译所述接口类方法对应的方法体,得到class文件,所述class文件包含类注释信息;
提取所述类注释信息中的多个参数对象;
解析所述多个参数对象,得到所述多个参数对象对应的多个属性信息;
对所述多个属性信息进行转换处理,得到JSON注释信息;
解析所述JSON注释信息,得到所述接口信息。
根据本发明优选实施例,所述接口文档生成装置还包括:
保存单元,用于在根据所述接口信息生成接口文档之后,为所述接口文档建立索引,得到目标索引,并保存所述目标索引与所述接口文档的映射关系及保存所述接口文档至数据库中;
确定单元,用于当接收到对任意接口文档的搜索指令时,搜索所述数据库中的所有接口文档,并将搜索到的接口文档确定为目标接口文档;
所述确定单元,还用于创建多个显示形式的显示界面,及检测用户对所述显示界面的选取操作,并将选取的显示界面确定为指定界面;
展示单元,用于通过所述指定界面展示所述目标接口文档;
监听单元,用于监听所述指定界面上的修改操作;
获取单元,用于当监听到所述指定界面上有修改操作产生时,获取所述修改操作对应的日志信息;
修改单元,用于解析所述日志信息,得到修改信息,并根据所述修改信息对所述目标接口文档进行修改,得到修改后的接口文档。
根据本发明优选实施例,所述获取单元,还用于在根据所述接口信息生成接口文档后,获取所述接口文档生成请求的请求编号;
所述生成单元,还用于根据所述请求编号及所述目标索引生成提示信息;
所述接口文档生成装置还包括:
加密单元,用于采用对称加密技术加密所述提示信息,得到密文;
发送单元,用于将所述密文发送至指定联系人的终端设备。
一种电子设备,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现所述接口文档生成方法。
一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现所述接口文档生成方法。
由以上技术方案可以看出,本发明能够当接收到接口文档生成请求时,从所述接口文档生成请求中提取maven坐标,从多个配置系统中拉取与所述maven坐标对应的代码文件,遍历所述代码文件,得到接口类方法,对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息,根据所述接口信息生成接口文档。本发明无需开发人员手工编写配置文件以及引入额外的注解,此外,由于在接收到接口文档生成请求时,对代码文件进行了重新拉取,能够避免生成接口文档时遗漏掉接口信息,另外,由于代码文件被维护在多个程序人员的本地系统中,因此,即使电子设备出现宕机或者删库,也不会导致接口文档被删除。
附图说明
图1是本发明接口文档生成方法的较佳实施例的流程图。
图2是本发明接口文档生成装置的较佳实施例的功能模块图。
图3是本发明实现接口文档生成方法的较佳实施例的电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图1所示,是本发明接口文档生成方法的较佳实施例的流程图。根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
所述接口文档生成方法应用于智慧政务场景中,从而推动智慧城市的建设。所述接口文档生成方法应用于一个或者多个电子设备中,所述电子设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述电子设备可以是任何一种可与用户进行人机交互的电子产品,例如,个人计算机、平板电脑、智能手机、个人数字助理(Personal Digital Assistant,PDA)、游戏机、交互式网络电视(Internet Protocol Television,IPTV)、智能穿戴式设备等。
所述电子设备还可以包括网络设备和/或用户设备。其中,所述网络设备包括,但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量主机或网络服务器构成的云。
所述电子设备所处的网络包括,但不限于:互联网、广域网、城域网、局域网、虚拟专用网络(Virtual Private Network,VPN)等。
S10,当接收到接口文档生成请求时,从所述接口文档生成请求中提取maven坐标。
在本发明的至少一个实施例中,所述接口文档生成请求可以是在预设时间自动触发,也可以由用户触发。
其中,所述预设时间可以是一个时间点,也可以是一个时间段,例如:每天早上十点,具体的取值本发明对此不作限制。
在本发明的至少一个实施例中,所述接口文档生成请求中的信息包括请求编号、maven坐标、项目版本号等。
在本发明的至少一个实施例中,所述maven坐标的坐标元素包括groupId、artifactId、version、packaging及classfier,通过所述坐标元素可以找到对应的构件。
在本发明的至少一个实施例中,所述电子设备从所述接口文档生成请求中提取maven坐标包括:
解析所述接口文档生成请求,得到所述接口文档生成请求携带的数据信息;
获取预设标签;
从所述数据信息中获取与所述预设标签对应的信息,作为所述maven坐标。
其中,所述预设标签是指预先定义好的标签,例如:所述预设标签可以是name。
通过所述预设标签与所述maven坐标的映射关系,能够准确确定所述maven坐标。
S11,从多个配置系统中拉取与所述maven坐标对应的代码文件。
在本发明的至少一个实施例中,每个配置库中存储项目、项目版本号与路径信息的对应关系。
其中,所述项目中包括至少一个项目版本号;进一步地,所述项目版本号与所述路径信息存在一一对应的关系。
在本发明的至少一个实施例中,所述电子设备从多个配置系统中拉取与所述maven坐标对应的代码文件包括:
从所述多个配置系统中搜索与所述maven坐标对应的项目;
从所述接口文档生成请求中提取项目版本号;
根据所述项目,从配置库中获取与所述项目版本号对应的路径信息;
根据所述路径信息获取所述代码文件。
由于同一个项目下有多个版本对应的代码文件,因此,通过确定与所述项目及所述项目版本号对应的路径信息,能够准确地确定所述代码文件。
S12,遍历所述代码文件,得到接口类方法。
在本发明的至少一个实施例中,所述代码文件中可以包括多个类,所述多个类中每个类也可以包括多个类方法,所述多个类方法包括接口类方法和非接口类方法。
其中,本发明将带有接口标记的类方法确定为接口类方法,例如,将方法体中带有@Path标记的类方法确定为接口类方法;将不带有接口标记的类方法确定为非接口类方法。
另外,不同的软件框架对接口的标记不完全相同,例如,在jersey框架中标记有@path的method类为对外提供的接口,而在spring mvc框架中标记有@path Mapping的method类为对外提供的接口。
在本发明的至少一个实施例中,所述电子设备遍历所述代码文件,得到接口类方法包括:
识别所述代码文件所使用的软件框架;
基于所述软件框架,筛选所述代码文件中带有接口标记的类方法,并将筛选出的类方法确定为所述接口类方法。
通过所述软件框架,能够准确确定所述接口类方法。
具体地,所述电子设备可以利用doclet技术识别所述代码文件所使用的软件框架。
S13,对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息。
在本发明的至少一个实施例中,所述电子设备对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息包括:
编译所述接口类方法对应的方法体,得到class文件,所述class文件包含类注释信息;
提取所述类注释信息中的多个参数对象;
解析所述多个参数对象,得到所述多个参数对象对应的多个属性信息;
对所述多个属性信息进行转换处理,得到JSON注释信息;
解析所述JSON注释信息,得到所述接口信息。
其中,所述class文件包含的类注释信息由接口代码中的Java注释信息生成。
进一步地,所述类注释信息是指class文件包含的注释信息。此外,所述类注释信息包括多种属性的参数对象,且每个参数对象有对应的属性信息。例如,所述类注释信息中包括入参对象和出参对象,所述属性信息可以包括,但不限于:字段、字段类型、备注等信息。
具体地,所述电子设备通过javac命令将所述接口类方法对应的方法体编译成所述class文件,进一步地,所述电子设备根据所述类注释信息中的参数对象@request及@response可以获取到接口的出入参对象,找到出入参对象之后,解析每个参数对象对应的属性信息。所述电子设备采用可调用格式转换工具将解析得到的属性信息进行转换处理,得到JSON格式的JSON注释信息,更进一步地,对所述JSON注释信息进行解析处理,得到所述接口信息。
S14,根据所述接口信息生成接口文档。
需要强调的是,为进一步保证上述接口文档的私密和安全性,上述接口文档还可以存储于一区块链的节点中。
在本发明的至少一个实施例中,所述电子设备根据所述接口信息生成接口文档包括:
获取所述接口信息对应的标识,并获取与所述项目对应的目标模板;
从所述目标模板上获取与所述标识对应的标签;
确定所述标签在所述目标模板上的参数位置;
将所述接口信息录入所述参数位置中。
通过上述实施方式,将所述接口信息中包含的多个参数信息准确录入所述目标模板对应的位置中,从而避免所述接口信息中的多个参数信息录入混乱。
在本发明的至少一个实施例中,在根据所述接口信息生成接口文档之后,所述方法还包括:
所述电子设备为所述接口文档建立索引,得到目标索引,并保存所述目标索引与所述接口文档的映射关系及保存所述接口文档至数据库中;
当接收到对任意接口文档的搜索指令时,所述电子设备搜索所述数据库中的所有接口文档,并将搜索到的接口文档确定为目标接口文档;
所述电子设备创建多个显示形式的显示界面,及检测用户对所述显示界面的选取操作,并将选取的显示界面确定为指定界面;
所述电子设备通过所述指定界面展示所述目标接口文档;
所述电子设备监听所述指定界面上的修改操作;
当监听到所述指定界面上有修改操作产生时,所述电子设备获取所述修改操作对应的日志信息;
所述电子设备解析所述日志信息,得到修改信息,并根据所述修改信息对所述目标接口文档进行修改,得到修改后的接口文档。
通过上述实施方式,能够在监听到所述目标接口文档被修改时,对所述目标接口文档进行自动修改。
在本发明的至少一个实施例中,在根据所述接口信息生成接口文档后,所述方法还包括:
获取所述接口文档生成请求的请求编号;
根据所述请求编号及所述目标索引生成提示信息;
采用对称加密技术加密所述提示信息,得到密文;
将所述密文发送至指定联系人的终端设备。
其中,所述指定联系人可以是所述接口文档生成的负责人。
通过上述实施方式,能够在所述接口文档生成后,及时生成提示信息,并及时通知所述指定联系人,进而通过对所述提示信息进行加密处理,能够提高所述提示信息的安全性,避免所述提示信息被篡改。
在本发明的至少一个实施例中,所述电子设备将所述密文发送至指定联系人的终端设备包括:
确定所述接口文档生成请求所属的请求等级;
根据所述请求等级确定发送方式;
利用所述发送方式发送所述密文。
其中,所述请求等级包括,但不限于:等级一、等级二等。
进一步地,所述发送方式包括,但不限于:邮箱方式、电话方式等。
通过上述实施方式,能够确定出合适的发送方式,并通过该发送方式发送所述密文,使所述密文的发送更加合理及人性化。
在本发明的一个实施例中,在将所述密文发送至指定联系人的终端设备之后,所述方法还包括:
所述电子设备监听在配置时间内是否接收到来自所述终端设备的反馈信息;
当监听到在所述配置时间未接收到来自所述终端设备的反馈信息时,所述电子设备重新向所述终端设备发送所述密文。
通过上述实施方式,通过监听是否接收到所述反馈信息,能够确定所述终端设备是否接收到所述密文,进而能够在确定出所述终端设备未接收到所述密文时,再次向所述终端设备发送所述密文,以确保所述密文被所述终端设备所接收。
由以上技术方案可以看出,本发明能够当接收到接口文档生成请求时,从所述接口文档生成请求中提取maven坐标,从多个配置系统中拉取与所述maven坐标对应的代码文件,遍历所述代码文件,得到接口类方法,对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息,根据所述接口信息生成接口文档。本发明无需开发人员手工编写配置文件以及引入额外的注解,此外,由于在接收到接口文档生成请求时,对代码文件进行了重新拉取,能够避免生成接口文档时遗漏掉接口信息,另外,由于代码文件被维护在多个程序人员的本地系统中,因此,即使电子设备出现宕机或者删库,也不会导致接口文档被删除。
如图2所示,是本发明接口文档生成装置的较佳实施例的功能模块图。所述接口文档生成装置11包括提取单元110、拉取单元111、遍历单元112、处理单元113、生成单元114、保存单元115、确定单元116、展示单元117、监听单元118、获取单元119、修改单元120、加密单元121及发送单元122。本发明所称的模块/单元是指一种能够被处理器13所获取,并且能够完成固定功能的一系列计算机程序段,其存储在存储器12中。在本实施例中,关于各模块/单元的功能将在后续的实施例中详述。
当接收到接口文档生成请求时,提取单元110从所述接口文档生成请求中提取maven坐标。
在本发明的至少一个实施例中,所述接口文档生成请求可以是在预设时间自动触发,也可以由用户触发。
其中,所述预设时间可以是一个时间点,也可以是一个时间段,例如:每天早上十点,具体的取值本发明对此不作限制。
在本发明的至少一个实施例中,所述接口文档生成请求中的信息包括请求编号、maven坐标、项目版本号等。
在本发明的至少一个实施例中,所述maven坐标的坐标元素包括groupId、artifactId、version、packaging及classfier,通过所述坐标元素可以找到对应的构件。
在本发明的至少一个实施例中,所述提取单元110从所述接口文档生成请求中提取maven坐标包括:
解析所述接口文档生成请求,得到所述接口文档生成请求携带的数据信息;
获取预设标签;
从所述数据信息中获取与所述预设标签对应的信息,作为所述maven坐标。
其中,所述预设标签是指预先定义好的标签,例如:所述预设标签可以是name。
通过所述预设标签与所述maven坐标的映射关系,能够准确确定所述maven坐标。
拉取单元111从多个配置系统中拉取与所述maven坐标对应的代码文件。
在本发明的至少一个实施例中,每个配置库中存储项目、项目版本号与路径信息的对应关系。
其中,所述项目中包括至少一个项目版本号;进一步地,所述项目版本号与所述路径信息存在一一对应的关系。
在本发明的至少一个实施例中,所述拉取单元111从多个配置系统中拉取与所述maven坐标对应的代码文件包括:
从所述多个配置系统中搜索与所述maven坐标对应的项目;
从所述接口文档生成请求中提取项目版本号;
根据所述项目,从配置库中获取与所述项目版本号对应的路径信息;
根据所述路径信息获取所述代码文件。
由于同一个项目下有多个版本对应的代码文件,因此,通过确定与所述项目及所述项目版本号对应的路径信息,能够准确地确定所述代码文件。
遍历单元112遍历所述代码文件,得到接口类方法。
在本发明的至少一个实施例中,所述代码文件中可以包括多个类,所述多个类中每个类也可以包括多个类方法,所述多个类方法包括接口类方法和非接口类方法。
其中,本发明将带有接口标记的类方法确定为接口类方法,例如,将方法体中带有@Path标记的类方法确定为接口类方法;将不带有接口标记的类方法确定为非接口类方法。
另外,不同的软件框架对接口的标记不完全相同,例如,在jersey框架中标记有@path的method类为对外提供的接口,而在spring mvc框架中标记有@path Mapping的method类为对外提供的接口。
在本发明的至少一个实施例中,所述遍历单元112遍历所述代码文件,得到接口类方法包括:
识别所述代码文件所使用的软件框架;
基于所述软件框架,筛选所述代码文件中带有接口标记的类方法,并将筛选出的类方法确定为所述接口类方法。
通过所述软件框架,能够准确确定所述接口类方法。
具体地,所述遍历单元112可以利用doclet技术识别所述代码文件所使用的软件框架。
处理单元113对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息。
在本发明的至少一个实施例中,所述处理单元113对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息包括:
编译所述接口类方法对应的方法体,得到class文件,所述class文件包含类注释信息;
提取所述类注释信息中的多个参数对象;
解析所述多个参数对象,得到所述多个参数对象对应的多个属性信息;
对所述多个属性信息进行转换处理,得到JSON注释信息;
解析所述JSON注释信息,得到所述接口信息。
其中,所述class文件包含的类注释信息由接口代码中的Java注释信息生成。
进一步地,所述类注释信息是指class文件包含的注释信息。此外,所述类注释信息包括多种属性的参数对象,且每个参数对象有对应的属性信息。例如,所述类注释信息中包括入参对象和出参对象,所述属性信息可以包括,但不限于:字段、字段类型、备注等信息。
具体地,所述处理单元113通过javac命令将所述接口类方法对应的方法体编译成所述class文件,进一步地,所述处理单元113根据所述类注释信息中的参数对象@request及@response可以获取到接口的出入参对象,找到出入参对象之后,解析每个参数对象对应的属性信息。所述处理单元113采用可调用格式转换工具将解析得到的属性信息进行转换处理,得到JSON格式的JSON注释信息,更进一步地,所述处理单元113对所述JSON注释信息进行解析处理,得到所述接口信息。
生成单元114根据所述接口信息生成接口文档。
需要强调的是,为进一步保证上述接口文档的私密和安全性,上述接口文档还可以存储于一区块链的节点中。
在本发明的至少一个实施例中,所述生成单元114根据所述接口信息生成接口文档包括:
获取所述接口信息对应的标识,并获取与所述项目对应的目标模板;
从所述目标模板上获取与所述标识对应的标签;
确定所述标签在所述目标模板上的参数位置;
将所述接口信息录入所述参数位置中。
通过上述实施方式,将所述接口信息中包含的多个参数信息准确录入所述目标模板对应的位置中,从而避免所述接口信息中的多个参数信息录入混乱。
在本发明的至少一个实施例中,在根据所述接口信息生成接口文档之后,保存单元115为所述接口文档建立索引,得到目标索引,并保存所述目标索引与所述接口文档的映射关系及保存所述接口文档至数据库中;
当接收到对任意接口文档的搜索指令时,确定单元116搜索所述数据库中的所有接口文档,并将搜索到的接口文档确定为目标接口文档;
所述确定单元116创建多个显示形式的显示界面,及检测用户对所述显示界面的选取操作,并将选取的显示界面确定为指定界面;
展示单元117通过所述指定界面展示所述目标接口文档;
监听单元118监听所述指定界面上的修改操作;
当监听到所述指定界面上有修改操作产生时,获取单元119获取所述修改操作对应的日志信息;
修改单元120解析所述日志信息,得到修改信息,并根据所述修改信息对所述目标接口文档进行修改,得到修改后的接口文档。
通过上述实施方式,能够在监听到所述目标接口文档被修改时,对所述目标接口文档进行自动修改。
在本发明的至少一个实施例中,在根据所述接口信息生成接口文档后,所述获取单元119获取所述接口文档生成请求的请求编号;
所述生成单元114根据所述请求编号及所述目标索引生成提示信息;
加密单元121采用对称加密技术加密所述提示信息,得到密文;
发送单元122将所述密文发送至指定联系人的终端设备。
其中,所述指定联系人可以是所述接口文档生成的负责人。
通过上述实施方式,能够在所述接口文档生成后,及时生成提示信息,并及时通知所述指定联系人,进而通过对所述提示信息进行加密处理,能够提高所述提示信息的安全性,避免所述提示信息被篡改。
在本发明的至少一个实施例中,所述发送单元122将所述密文发送至指定联系人的终端设备包括:
确定所述接口文档生成请求所属的请求等级;
根据所述请求等级确定发送方式;
利用所述发送方式发送所述密文。
其中,所述请求等级包括,但不限于:等级一、等级二等。
进一步地,所述发送方式包括,但不限于:邮箱方式、电话方式等。
通过上述实施方式,能够确定出合适的发送方式,并通过该发送方式发送所述密文,使所述密文的发送更加合理及人性化。
在本发明的一个实施例中,在将所述密文发送至指定联系人的终端设备之后,所述监听单元118监听在配置时间内是否接收到来自所述终端设备的反馈信息;
当监听到在所述配置时间未接收到来自所述终端设备的反馈信息时,所述生成单元114重新向所述终端设备发送所述密文。
通过上述实施方式,通过监听是否接收到所述反馈信息,能够确定所述终端设备是否接收到所述密文,进而能够在确定出所述终端设备未接收到所述密文时,再次向所述终端设备发送所述密文,以确保所述密文被所述终端设备所接收。
由以上技术方案可以看出,本发明能够当接收到接口文档生成请求时,从所述接口文档生成请求中提取maven坐标,从多个配置系统中拉取与所述maven坐标对应的代码文件,遍历所述代码文件,得到接口类方法,对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息,根据所述接口信息生成接口文档。本发明无需开发人员手工编写配置文件以及引入额外的注解,此外,由于在接收到接口文档生成请求时,对代码文件进行了重新拉取,能够避免生成接口文档时遗漏掉接口信息,另外,由于代码文件被维护在多个程序人员的本地系统中,因此,即使电子设备出现宕机或者删库,也不会导致接口文档被删除。
如图3所示,是本发明实现接口文档生成方法的较佳实施例的电子设备的结构示意图。
在本发明的一个实施例中,所述电子设备1包括,但不限于,存储器12、处理器13,以及存储在所述存储器12中并可在所述处理器13上运行的计算机程序,例如接口文档生成程序。
本领域技术人员可以理解,所述示意图仅仅是电子设备1的示例,并不构成对电子设备1的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述电子设备1还可以包括输入输出设备、网络接入设备、总线等。
所述处理器13可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器13是所述电子设备1的运算核心和控制中心,利用各种接口和线路连接整个电子设备1的各个部分,及执行所述电子设备1的操作系统以及安装的各类应用程序、程序代码等。
所述处理器13执行所述电子设备1的操作系统以及安装的各类应用程序。所述处理器13执行所述应用程序以实现上述各个接口文档生成方法实施例中的步骤,例如图1所示的步骤。
或者,所述处理器13执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如:
当接收到接口文档生成请求时,从所述接口文档生成请求中提取maven坐标;
从多个配置系统中拉取与所述maven坐标对应的代码文件;
遍历所述代码文件,得到接口类方法;
对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息;
根据所述接口信息生成接口文档。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器12中,并由所述处理器13执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述电子设备1中的执行过程。例如,所述计算机程序可以被分割成提取单元110、拉取单元111、遍历单元112、处理单元113、生成单元114、保存单元115、确定单元116、展示单元117、监听单元118、获取单元119、修改单元120、加密单元121及发送单元122。
所述存储器12可用于存储所述计算机程序和/或模块,所述处理器13通过运行或执行存储在所述存储器12内的计算机程序和/或模块,以及调用存储在存储器12内的数据,实现所述电子设备1的各种功能。所述存储器12可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据等。此外,存储器12可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。
所述存储器12可以是电子设备1的外部存储器和/或内部存储器。进一步地,所述存储器12可以是具有实物形式的存储器,如内存条、TF卡(Trans-flash Card)等等。
所述电子设备1集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。
其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
结合图1,所述电子设备1中的所述存储器12存储多个指令以实现一种接口文档生成方法,所述处理器13可执行所述多个指令从而实现:
当接收到接口文档生成请求时,从所述接口文档生成请求中提取maven坐标;
从多个配置系统中拉取与所述maven坐标对应的代码文件;
遍历所述代码文件,得到接口类方法;
对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息;
根据所述接口信息生成接口文档。
具体地,所述处理器13对上述指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附关联图标记视为限制所涉及的权利要求。
此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。

Claims (10)

1.一种接口文档生成方法,其特征在于,所述接口文档生成方法包括:
当接收到接口文档生成请求时,从所述接口文档生成请求中提取maven坐标;
从多个配置系统中拉取与所述maven坐标对应的代码文件;
遍历所述代码文件,得到接口类方法;
对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息;
根据所述接口信息生成接口文档。
2.如权利要求1所述的接口文档生成方法,其特征在于,所述从多个配置系统中拉取与所述maven坐标对应的代码文件包括:
从所述多个配置系统中搜索与所述maven坐标对应的项目;
从所述接口文档生成请求中提取项目版本号;
根据所述项目,从配置库中获取与所述项目版本号对应的路径信息;
根据所述路径信息获取所述代码文件。
3.如权利要求2所述的接口文档生成方法,其特征在于,所述根据所述接口信息生成接口文档包括:
获取所述接口信息对应的标识,并获取与所述项目对应的目标模板;
从所述目标模板上获取与所述标识对应的标签;
确定所述标签在所述目标模板上的参数位置;
将所述接口信息录入所述参数位置中。
4.如权利要求1所述的接口文档生成方法,其特征在于,所述遍历所述代码文件,得到接口类方法包括:
识别所述代码文件所使用的软件框架;
基于所述软件框架,筛选所述代码文件中带有接口标记的类方法,并将筛选出的类方法确定为所述接口类方法。
5.如权利要求1所述的接口文档生成方法,其特征在于,所述对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息包括:
编译所述接口类方法对应的方法体,得到class文件,所述class文件包含类注释信息;
提取所述类注释信息中的多个参数对象;
解析所述多个参数对象,得到所述多个参数对象对应的多个属性信息;
对所述多个属性信息进行转换处理,得到JSON注释信息;
解析所述JSON注释信息,得到所述接口信息。
6.如权利要求1所述的接口文档生成方法,其特征在于,在根据所述接口信息生成接口文档之后,所述接口文档生成方法还包括:
为所述接口文档建立索引,得到目标索引,并保存所述目标索引与所述接口文档的映射关系及保存所述接口文档至数据库中;
当接收到对任意接口文档的搜索指令时,搜索所述数据库中的所有接口文档,并将搜索到的接口文档确定为目标接口文档;
创建多个显示形式的显示界面,及检测用户对所述显示界面的选取操作,并将选取的显示界面确定为指定界面;
通过所述指定界面展示所述目标接口文档;
监听所述指定界面上的修改操作;
当监听到所述指定界面上有修改操作产生时,获取所述修改操作对应的日志信息;
解析所述日志信息,得到修改信息,并根据所述修改信息对所述目标接口文档进行修改,得到修改后的接口文档。
7.如权利要求6所述的接口文档生成方法,其特征在于,在根据所述接口信息生成接口文档后,所述接口文档生成方法还包括:
获取所述接口文档生成请求的请求编号;
根据所述请求编号及所述目标索引生成提示信息;
采用对称加密技术加密所述提示信息,得到密文;
将所述密文发送至指定联系人的终端设备。
8.一种接口文档生成装置,其特征在于,所述接口文档生成装置包括:
提取单元,用于当接收到接口文档生成请求时,从所述接口文档生成请求中提取maven坐标;
拉取单元,用于从多个配置系统中拉取与所述maven坐标对应的代码文件;
遍历单元,用于遍历所述代码文件,得到接口类方法;
处理单元,用于对所述接口类方法对应的方法体进行反射处理及解析处理,得到接口信息;
生成单元,用于根据所述接口信息生成接口文档。
9.一种电子设备,其特征在于,所述电子设备包括:
存储器,存储至少一个指令;及
处理器,执行所述存储器中存储的指令以实现如权利要求1至7中任意一项所述的接口文档生成方法。
10.一种计算机可读存储介质,其特征在于:所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被电子设备中的处理器执行以实现如权利要求1至7中任意一项所述的接口文档生成方法。
CN202010610741.7A 2020-06-29 2020-06-29 接口文档生成方法、装置、电子设备及介质 Pending CN111796809A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010610741.7A CN111796809A (zh) 2020-06-29 2020-06-29 接口文档生成方法、装置、电子设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010610741.7A CN111796809A (zh) 2020-06-29 2020-06-29 接口文档生成方法、装置、电子设备及介质

Publications (1)

Publication Number Publication Date
CN111796809A true CN111796809A (zh) 2020-10-20

Family

ID=72809831

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010610741.7A Pending CN111796809A (zh) 2020-06-29 2020-06-29 接口文档生成方法、装置、电子设备及介质

Country Status (1)

Country Link
CN (1) CN111796809A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113050987A (zh) * 2021-03-26 2021-06-29 北京沃东天骏信息技术有限公司 一种接口文档的生成方法、装置、存储介质及电子设备
CN113094093A (zh) * 2021-03-29 2021-07-09 四川新网银行股份有限公司 一种基于互联网金融系统从源码生成系统交互的api文档的方法
CN113485746A (zh) * 2021-07-28 2021-10-08 山石网科通信技术股份有限公司 应用程序接口文档的生成方法及装置
CN113778423A (zh) * 2021-09-10 2021-12-10 上海幻电信息科技有限公司 接口文档生成方法及系统
CN113794997A (zh) * 2021-09-29 2021-12-14 中国银行股份有限公司 基于区块链及5g消息的接口文档管理方法及装置
CN113821254A (zh) * 2021-09-29 2021-12-21 平安普惠企业管理有限公司 接口数据处理方法、装置、存储介质及设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140040863A1 (en) * 2012-07-31 2014-02-06 Vmware, Inc. Documentation generation for web apis based on byte code analysis
CN108932122A (zh) * 2018-06-19 2018-12-04 上海陆家嘴国际金融资产交易市场股份有限公司 接口文档生成方法、装置、计算机设备和存储介质
CN109542412A (zh) * 2018-10-16 2019-03-29 平安普惠企业管理有限公司 接口信息生成方法、装置、计算机设备和存储介质
CN110333850A (zh) * 2019-05-30 2019-10-15 重庆金融资产交易所有限责任公司 接口文档的生成方法、装置、计算机设备和存储介质
CN110377336A (zh) * 2019-06-17 2019-10-25 平安普惠企业管理有限公司 接口文档生成方法、装置、计算机设备和存储介质
CN110442378A (zh) * 2019-06-27 2019-11-12 平安科技(深圳)有限公司 接口文档的修改方法和系统
CN111240653A (zh) * 2019-12-31 2020-06-05 瑞庭网络技术(上海)有限公司 接口文档生成方法、装置及可读存储介质

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140040863A1 (en) * 2012-07-31 2014-02-06 Vmware, Inc. Documentation generation for web apis based on byte code analysis
CN108932122A (zh) * 2018-06-19 2018-12-04 上海陆家嘴国际金融资产交易市场股份有限公司 接口文档生成方法、装置、计算机设备和存储介质
CN109542412A (zh) * 2018-10-16 2019-03-29 平安普惠企业管理有限公司 接口信息生成方法、装置、计算机设备和存储介质
CN110333850A (zh) * 2019-05-30 2019-10-15 重庆金融资产交易所有限责任公司 接口文档的生成方法、装置、计算机设备和存储介质
CN110377336A (zh) * 2019-06-17 2019-10-25 平安普惠企业管理有限公司 接口文档生成方法、装置、计算机设备和存储介质
CN110442378A (zh) * 2019-06-27 2019-11-12 平安科技(深圳)有限公司 接口文档的修改方法和系统
CN111240653A (zh) * 2019-12-31 2020-06-05 瑞庭网络技术(上海)有限公司 接口文档生成方法、装置及可读存储介质

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113050987A (zh) * 2021-03-26 2021-06-29 北京沃东天骏信息技术有限公司 一种接口文档的生成方法、装置、存储介质及电子设备
CN113094093A (zh) * 2021-03-29 2021-07-09 四川新网银行股份有限公司 一种基于互联网金融系统从源码生成系统交互的api文档的方法
CN113485746A (zh) * 2021-07-28 2021-10-08 山石网科通信技术股份有限公司 应用程序接口文档的生成方法及装置
CN113485746B (zh) * 2021-07-28 2024-02-06 山石网科通信技术股份有限公司 应用程序接口文档的生成方法及装置
CN113778423A (zh) * 2021-09-10 2021-12-10 上海幻电信息科技有限公司 接口文档生成方法及系统
CN113778423B (zh) * 2021-09-10 2024-03-01 上海幻电信息科技有限公司 接口文档生成方法及系统
CN113794997A (zh) * 2021-09-29 2021-12-14 中国银行股份有限公司 基于区块链及5g消息的接口文档管理方法及装置
CN113821254A (zh) * 2021-09-29 2021-12-21 平安普惠企业管理有限公司 接口数据处理方法、装置、存储介质及设备
CN113794997B (zh) * 2021-09-29 2022-11-11 中国银行股份有限公司 基于区块链及5g消息的接口文档管理方法及装置

Similar Documents

Publication Publication Date Title
US20210318866A1 (en) Auto-generation of api documentation via implementation-neutral analysis of api traffic
CN111796809A (zh) 接口文档生成方法、装置、电子设备及介质
CN111694840B (zh) 数据同步方法、装置、服务器及存储介质
CN111638908A (zh) 接口文档生成方法、装置、电子设备及介质
CN111797351A (zh) 页面数据管理方法、装置、电子设备及介质
JP6090850B2 (ja) ソースプログラム解析システム、ソースプログラム解析方法およびプログラム
CN111639284A (zh) 网页标注方法、装置、电子设备及介质
CN111881209A (zh) 异构数据库的数据同步方法、装置、电子设备及介质
CN112948418A (zh) 动态查询方法、装置、设备及存储介质
CN107391528B (zh) 前端组件依赖信息搜索方法及设备
US20140189526A1 (en) Changing log file content generation
CN110874216B (zh) 一种完备代码生成方法、装置、设备和存储介质
CN114116108A (zh) 动态渲染方法、装置、设备及存储介质
CN114416481A (zh) 日志分析方法、装置、设备及存储介质
CN112783482B (zh) 一种可视化表单生成方法、装置、设备及存储介质
CN112434062A (zh) 准实时数据处理方法、装置、服务器及存储介质
CN114610386A (zh) H5与应用程序的交互方法、装置、设备及存储介质
CN109948251B (zh) 基于cad的数据处理方法、装置、设备及存储介质
CN113282285A (zh) 代码编写方法、装置、电子设备及存储介质
CN114911534B (zh) 页面信息提取方法、设置方法、装置、电子设备及介质
US20240061762A1 (en) On-demand contextual trace log generation
WO2024045128A1 (zh) 人工智能模型的展示方法、装置、电子设备及存储介质
CN114254081B (zh) 企业大数据搜索系统、方法及电子设备
CN113836586B (zh) 一种文件管理方法、装置、设备以及存储介质
US20220318386A1 (en) Generation of a causality tree representation of threat analysis report data

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20201020