CN113050987B - 一种接口文档的生成方法、装置、存储介质及电子设备 - Google Patents

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

Info

Publication number
CN113050987B
CN113050987B CN202110328306.XA CN202110328306A CN113050987B CN 113050987 B CN113050987 B CN 113050987B CN 202110328306 A CN202110328306 A CN 202110328306A CN 113050987 B CN113050987 B CN 113050987B
Authority
CN
China
Prior art keywords
interface
parameter
attribute
file
parameters
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
CN202110328306.XA
Other languages
English (en)
Other versions
CN113050987A (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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information 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 Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202110328306.XA priority Critical patent/CN113050987B/zh
Publication of CN113050987A publication Critical patent/CN113050987A/zh
Application granted granted Critical
Publication of CN113050987B publication Critical patent/CN113050987B/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/70Software maintenance or management
    • G06F8/73Program documentation
    • 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
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种接口文档的生成方法、装置、存储介质及电子设备,其中方法包括:获取任一接口的接口文件,并识别所述接口文件中的字符串,基于各所述接口文件中的字符串以及各所述接口文件的全路径信息生成文件存储列表;基于所述全路径信息进行反射处理,得到各所述接口文件的字符串中的参数;基于各参数的解析策略,对所述各参数进行参数解析,得到各参数的属性以及属性说明;基于所述各参数,以及各参数对应的属性以及属性说明生成接口文档。实现了接口文件的自动解析以及接口文档的自动生成,替代了人工生成接口文档的过程,提高了接口文档生成效率以及质量。

Description

一种接口文档的生成方法、装置、存储介质及电子设备
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种接口文档的生成方法、装置、存储介质及电子设备。
背景技术
随着科技水平的迅速发展,各种平台不断的在推出新的软件以及对已有软件进行更新,以满足用户的需求。软件开发过程中,接口提供方和接口使用方之间需要维护接口文档,但维护此接口文档会有投入人力和不能实时更新等很多问题。
但是在实现本发明的过程中,发明人发现现有技术中至少存在以下技术问题:目前的接口文档一般是靠开发人员人工编写,效率较低,文档质量也不统一。
发明内容
本发明提供一种接口文档的生成方法、装置、存储介质及电子设备,以实现提高接口文件的效率。
第一方面,本发明实施例提供了一种接口文档的生成方法,包括:
获取任一接口的接口文件,并识别所述接口文件中的字符串,基于各所述接口文件中的字符串以及各所述接口文件的全路径信息生成文件存储列表;
基于所述全路径信息进行反射处理,得到各所述接口文件的字符串中的参数;
基于各参数的解析策略,对所述各参数进行参数解析,得到各参数的属性以及属性说明;
基于所述各参数,以及各参数对应的属性以及属性说明生成接口文档。
第二方面,本发明实施例还提供了一种接口文档的生成装置,包括:
接口文件获取模块,用于获取任一接口的接口文件;
文件存储列表生成模块,用于识别所述接口文件中的字符串,基于各所述接口文件中的字符串以及各所述接口文件的全路径信息生成文件存储列表;
参数确定模块,用于基于所述全路径信息进行反射处理,得到各所述接口文件的字符串中的参数;
参数解析模块,用于基于各参数的解析策略,对所述各参数进行参数解析,得到各参数的属性以及属性说明;
接口文档生成模块,用于基于所述各参数,以及各参数对应的属性以及属性说明生成接口文档。
第三方面,本发明实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如本发明任一实施例提供的接口文档的生成方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任一实施例提供的接口文档的生成方法。
本实施例提供的技术方案,通过获取接口的多个接口文件,并读取各接口文件中的字符串,通过接口文件的字符串与全路径信息形成对应存储的文件存储列表,便于对接口文件中的参数进行解析。通过对全路径信息进行反射处理,得到各所述接口文件的字符串中的参数,并根据各参数的类型分别对应的参数解析策略,对各参数进行参数解析,得到各参数的属性以及属性说明,将上述各参数、各参数对应的属性以及属性说明生成接口文档,实现了接口文件的自动解析以及接口文档的自动生成,替代了人工生成接口文档的过程,提高了接口文档生成效率以及质量。
附图说明
图1为本发明实施例一提供的一种接口文档的生成方法的流程示意图;
图2是本发明实施例二提供的一种接口文档的生成方法的流程示意图;
图3是本发明实施例提供的接口文件生成文件存储列表的流程示意图;
图4是本发明实施例提供的参数解析的流程示意图;
图5是本发明实施例提供的接口文档的生成的流程示意图;
图6是本发明实施例三提供的一种接口文档的生成装置的结构示意图;
图7为本发明实施例四提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1为本发明实施例一提供的一种接口文档的生成方法的流程示意图,本实施例可适用于自动生成接口文档的情况,该方法可以由本发明实施例提供的一种接口文档的生成装置来执行,该装置可通过软件和/或硬件的方式实现,该装置可集成于诸如计算机等的电子设备上。该方法具体包括如下步骤:
S110、获取任一接口的接口文件,并识别所述接口文件中的字符串,基于各所述接口文件中的字符串以及各所述接口文件的全路径信息生成文件存储列表。
S120、基于所述全路径信息进行反射处理,得到各所述接口文件的字符串中的参数。
S130、基于各参数的解析策略,对所述各参数进行参数解析,得到各参数的属性以及属性说明。
S140、基于所述各参数,以及各参数对应的属性以及属性说明生成接口文档。
本实施例中的接口包括但不限于RPC(Remote Procedure Call Protocol,远程过程调用协议)接口,远程过程调用协议用于一个节点(例如服务器)请求另一节点(例如服务器)提供服务。RPC接口为远程调用过程中两个节点之间进行交互的接口。在一些可选实施例中,接口还可以是http(HyperText Transfer Protocol,超文本传输协议)接口、api(Application Programming Interface,应用程序接口)接口等,对此不作限定。
对于任一接口,获取该接口的接口文件,该接口文件可以是java文件。其中,任一接口可以是对应对各接口文件。具体的,输入待处理接口对应的工程路径,扫描该工程路径下的java文件,得到该接口对应的至少一个接口文件。
对于读取的多个接口文件,循环识别每一个接口文件中的字符串,得到各接口文件的字符串。可选的,在识别所述接口文件中的字符串之后,所述方法还包括:识别所述字符串中的预设标识,剔除不包括所述预设标识的接口文件。其中,预设标识用于对接口文件进行标记,设置有预设标识的接口文件为需要进行解析的,用于生成接口文档的接口文件。通过对各接口文件的字符串进行预设标识的匹配,剔除不需求进行解析的接口文件,减少无需的解析过程,提高解析效率和精度,进一步提高接口文档的生成效率。
接口文件中的预设标识可以是根据研发用户的需求设置,不限定预设标识的具体形式,在一下实施例中预设标识可以是字符@RpcApi。将配置有预设标识的接口文件形成待解析集合列表,基于该待解析集合列表中各接口文件的字符串生成各接口文件对应的全路径信息,并基于全路径信息和对应的字符串进行对应存储,形成文件存储列表,通过设置文件存储列表,可通过全路径信息快速确定对应的字符串,提高了接口文件中内容的查询效率,且对接口文件以字符串的形式进行存储,便于对接口文件中内容的快速读取,便于对接口文件进行快速解析。
在一些实施例中,所述基于各所述接口文件中的字符串以及各所述接口文件的全路径信息生成文件存储列表,包括:基于第一正则函数对各所述接口文件的字符串进行正则化处理,得到各所述接口文件的包路径信息;基于第二正则函数对各所述接口文件的字符串进行正则化处理,得到各所述接口文件的class类名称;基于各所述接口文件的包路径信息和class类名称生成各所述接口文件的全路径信息;将各所述接口文件的全路径信息以及字符串以键值对的形式进行存储,生成文件存储列表。
本实施例中,通过对各接口文件对应的字符串进行正则化处理,生成各接口文件的全路径信息。本实施例中,不限定进行正则化处理的正则化表达式的具体形式的数量,能够实现对接口文件的字符串进行处理得到全路径信息即可。在一些实施例中,第一正则函数可以是package[]+([\\w._\\p{S}]+),第二正则函数可以是public+class+(\\S*),分别基于上述正则函数分布对接口文件的字符串进行处理,以得到接口文件的包路径信息和class类名称,将包路径信息和class类名称进行拼接得到接口文件的全路径信息。
将接口文件的全路径信息以及字符串以键值对的形式进行存储,具体的,可以是将接口文件的全路径信息作为key,将接口文件的字符串作为value进程存储,得到文件存储列表。
对文件存储列表中的对应存储的全路径信息和字符串进行解析,得到各接口文件中的参数、参数属性以及属性说明,上述参数、参数属性以及属性说明用于生成该接口的接口文档。本实施例中,通过反射方式对上述全路径信息和字符串进行解析,无需下载任何第三方工具或者插件等,简化了接口文件的解析过程,避免第三方工具或者插件占用内存的问题。
可选的,基于所述全路径信息进行反射处理,得到各所述接口文件的字符串中的参数,包括:对各所述接口文件的全路径信息进行反射处理,得到各所述接口文件的class类;基于各所述接口文件的class类确定各所述接口文件中的函数以及所述函数的入参参数和出参参数。
对于全路径信息path进行反射处理,具体的,可以是通过Class.forName(path)实现,以得到全路径信息path对应的class类。进一步的,通过接口文件的class类确定各所述接口文件中的函数以及所述函数的入参参数和出参参数,具体的,可以是通过java原生函数Class.getMethod()得到接口文件的函数集合,该函数结合中包括至少一个函数,以及函数的入参参数和出参参数。
遍历各个函数,分别对每一个函数的出参参数和入参参数进行解析,以得到出参参数的属性以及属性说明,和入参参数的属性以及属性说明,将上述解析得到参数、参数的属性以及属性说明封装为ParamNode类,得到解析信息。该ParamNode类中包括但不限于接口描述description,作者author,函数名称methodName,请求参数入参参数paramNodes,paramNodes包含多个请求属性。请求结果出参参数responseNodes,responseNodes中包含多个属性节点,封装返回参数属性。
需要说明的是,出参参数和入参参数的解析方式不同,可根据参数类型调用不同的解析方法,给解析方法可以是预先设置的,可根据参数类型进行调用。出参参数和入参参数的解析顺序不作限定,可以是顺序解析,还可以是同步进行解析,以提高解析效率。可选的,对出参参数和入参参数进行解析可以是通过正则匹配方式从文件存储列表的字符串中匹配到描述信息,该描述信息可以是出参参数和入参参数的属性说明。
通过解析到的各接口文件中的参数、参数的属性以及属性说明,形成预设格式的接口文档,实现了参数、参数的属性以及属性说明的自动解析以及接口文档的自动生成,替代了人工生成接口文档的过程,简化了接口文件生成过程,提供了接口文档的质量。
在一些实施例中,在基于各参数的解析策略,对所述各参数进行参数解析,得到各参数的属性以及属性说明之后,所述方法还包括:将所述各参数、各参数对应的属性以及属性说明进行封装,形成接口封装类,即ParamNode类。
在一些实施例中,基于所述各参数,以及各参数对应的属性以及属性说明生成接口文档,包括:调用预设格式的接口文档模板,将所述接口封装类的列表信息添加到所述接口文档模板的上下文中;基于所述接口文档模板中信息标识从所述上下文中匹配对应信息,生成接口文档。本实施例中,接口文档为markdown格式文件,接口文档模板符合freemarker语法,将接口封装类中的参数、各参数对应的属性以及属性说明分别添加至接口文档模板中,生成接口文档。其中,接口封装类的列表信息中可以是包括各信息的标识和信息值,将接口封装类的列表信息封装至接口文档模板的上下文context中,接口文档模板从上下文中通过标识匹配的方式得到对应的信息值,将匹配得到的信息值添加至接口文档模板中各标识的信息区域,形成接口文档。可选的,接口文档模板从上下文中获取的信息包括但不限于description(接口描述),author(接口作者),requestUrl(接口路径),paramsNode(接口参数list列表),responseNode(接口返回结果)。
本实施例的技术方案,通过获取接口的多个接口文件,并读取各接口文件中的字符串,通过接口文件的字符串与全路径信息形成对应存储的文件存储列表,便于对接口文件中的参数进行解析。通过对全路径信息进行反射处理,得到各所述接口文件的字符串中的参数,并根据各参数的类型分别对应的参数解析策略,对各参数进行参数解析,得到各参数的属性以及属性说明,将上述各参数、各参数对应的属性以及属性说明生成接口文档,实现了接口文件的自动解析以及接口文档的自动生成,替代了人工生成接口文档的过程,提高了接口文档生成效率以及质量。
实施例二
图2是本发明实施例二提供的一种接口文档的生成方法的流程示意图,在上述实施例的基础上进行了优化,可选的,所述基于各参数的解析策略,对所述各参数进行参数解析,得到各参数的属性以及属性说明,包括:对于函数的至少一个入参参数,循环对各入参参数进行反射处理,得到各入参参数的属性以及属性类型;基于所述入参参数的class类在所述文件存储列表中进行匹配,确定所述入参参数的各属性的属性说明。以及所述基于各参数的解析策略,对所述各参数进行参数解析,得到各参数的属性以及属性说明,包括:对于函数的出参参数,对所述出参参数进行反射处理,得到所述出参参数的属性以及属性类型;遍历各属性,若所述属性的属性类型为非基础类型,则基于对所述属性进行递归反射解析,直到解析到的属性为基础类型;若所述属性的class类在所述文件存储列表内,则基于所述属性的class类所述文件存储列表中进行匹配,确定所述属性的属性说明。
该方法具体包括:
S210、获取任一接口的接口文件,并识别所述接口文件中的字符串,基于各所述接口文件中的字符串以及各所述接口文件的全路径信息生成文件存储列表。
S220、基于所述全路径信息进行反射处理,得到各所述接口文件的字符串中的参数。
S230、对于函数的至少一个入参参数,循环对各入参参数进行反射处理,得到各入参参数的属性以及属性类型;基于所述入参参数的class类在所述文件存储列表中进行匹配,确定所述入参参数的各属性的属性说明。
S240、对于函数的出参参数,对所述出参参数进行反射处理,得到所述出参参数的属性以及属性类型;遍历各属性,若所述属性的属性类型为非基础类型,则基于对所述属性进行递归反射解析,直到解析到的属性为基础类型;若所述属性的class类在所述文件存储列表内,则基于所述属性的class类所述文件存储列表中进行匹配,确定所述属性的属性说明。
S250、基于所述各参数,以及各参数对应的属性以及属性说明生成接口文档。
对于参数的解析过程,函数的入参参数可以是一个或多个,对入参参数的反射函数进行循环调用,直到函数的全部入参参数解析完成。其中,反射函数的入参为Class类,通过对入参参数的Class类进行反射处理,得到该Class类的所有属性以及属性类型。通过入参参数的Class类进行判定,若该入参参数的Class类为本工程类,则通过在入参参数的class类对应字符串中进行正则匹配,得到入参参数的属性上方的属性说明。具体的,将入参参数的Class类与文件存储列表中的全路径信息进行匹配,若匹配成功,则确定该入参参数的Class类为本工程类。若匹配失败,则确定入参参数的Class类不是本工程类,取消获取该入参参数的属性说明。
对于出参参数,对所述出参参数的Class类进行反射处理,得到所述出参参数的属性(field)以及属性类型(type);由于出参参数一般比较复杂,反射处理的返回结果一般为非基础类型类,对于非基础类型类循环执行反射处理,直到得到基础类型的返回结果。其中,基础类型是预先设置的,例如包括但不限于int、long、double等。
具体的,遍历各属性,确定各属性的属性类型是否为基础类,若所述属性的属性类型为非基础类型,则基于对所述属性进行递归反射解析,直到解析到的属性为基础类型;若属性的属性类型为基础类型,则停止对属性的进一步反射处理。对于任一属性,确定属性的class类是否为本工程类,若是,即若所述属性的class类在所述文件存储列表内,则基于所述属性的class类所述文件存储列表中进行匹配,确定所述属性的属性说明。
可选的,在一些实施例中,预先设置有反射函数,以及用于解析入参参数的循环调用逻辑,以及用于解析出参参数的属性类型判断以及递进调用逻辑,该循环调用逻辑和递进调用逻辑分别用于调用反射函数,对入参参数或出参参数的属性的class类进行反射处理。
将所述各参数、各参数对应的属性以及属性说明进行封装,形成接口封装类,并基于接口封装类和接口文档模板生成接口文档。
需要说明的是,步骤S230和步骤S240可以是顺序执行,还可以是先直行步骤S240再执行步骤S230,还可以是步骤S230和步骤S240同步执行,本实施例对此不作限定。
本实施例的技术方案,通过在参数解析过程中,针对入参参数和出参参数分别采用不同的解析方式,实现对函数的入参参数和出参参数进行自动解析,得到入参参数和出参参数的属性以及属性说明,以生成接口文档,提高了接口文档的生成自动化以及质量。
在上述实施例的基础上还提供了一个优选示例,示例性的,参见图3,图3是本发明实施例提供的接口文件生成文件存储列表的流程示意图。具体的,获取待处理接口的工程路径,扫描该工程路径下的所有接口文件,即.java文件,循环将该java文件读取为字符串,进行文本正则匹配是否包含@RpcApi标记,即预设标识,过滤掉不需要解析的java文件,即不包括预设标识的接口文件,得到需要生成解析文件的java文件字符串列表。基于各ava文件的字符串生成各接口文件的class全路径信息,将各个java文件的字符串存放在Map中,map的key即是这个java文件对应的class全路径信息,value为该java文件对应的字符串,形成文件存储列表。
示例性的,参见图4,图4是本发明实施例提供的参数解析的流程示意图。通过反射Class.forName(path),获取各java文件的Class类,通过得到的Class类以及java原生函数获取到该class对应的所有函数(method),具体的,通过Class.getMethod()函数返回的函数集合,该函数结合中包括函数以及函数的出参参数和入参参数。入参参数可能有多个,对入参参数解析可以封装为一个工具函数进行循环调用,该函数入参为Class类,出参为该类对应的属性以及属性说明结果封装为ParamNode类。具体的,通过Class类反射获取该class所有属性类型以及属性名称(即属性)。如果该类为本工程类,则通过对应Class的java字符串正则匹配,获取属性上方的属性说明。
示例性的,参见图5,图5是本发明实施例提供的接口文档的生成的流程示意图,接口文档为markdown格式文件,用markdown语法写接口文档,然后结合freemarker语法,改成最终接口预处理接口文档模板。具体的,结合第二步封装的集合ParamNode信息,将该集合List信息封装到freemarker的上下文context中,输出最终的markdown文件。freemarker模板需要从上下文中获取的参数有:description(接口描述),author(接口作者),requestUrl(接口路径),paramsNode(接口参数list列表),responseNode(接口返回结果)。
实施例三
图6是本发明实施例三提供的一种接口文档的生成装置的结构示意图,该装置包括:
接口文件获取模块310,用于获取任一接口的接口文件;
文件存储列表生成模块320,用于识别所述接口文件中的字符串,基于各所述接口文件中的字符串以及各所述接口文件的全路径信息生成文件存储列表;
参数确定模块330,用于基于所述全路径信息进行反射处理,得到各所述接口文件的字符串中的参数;
参数解析模块340,用于基于各参数的解析策略,对所述各参数进行参数解析,得到各参数的属性以及属性说明;
接口文档生成模块350,用于基于所述各参数,以及各参数对应的属性以及属性说明生成接口文档。
在上述实施例的基础上,文件存储列表生成模块320用于:
基于第一正则函数对各所述接口文件的字符串进行正则化处理,得到各所述接口文件的包路径信息;
基于第二正则函数对各所述接口文件的字符串进行正则化处理,得到各所述接口文件的class类名称;
基于各所述接口文件的包路径信息和class类名称生成各所述接口文件的全路径信息;
将各所述接口文件的全路径信息以及字符串以键值对的形式进行存储,生成文件存储列表。
在上述实施例的基础上,该装置还包括:
接口文件识别模块,用于在识别所述接口文件中的字符串之后,识别所述字符串中的预设标识,剔除不包括所述预设标识的接口文件。
在上述实施例的基础上,参数确定模块330用于:
对各所述接口文件的全路径信息进行反射处理,得到各所述接口文件的class类;
基于各所述接口文件的class类确定各所述接口文件中的函数以及所述函数的入参参数和出参参数。
在上述实施例的基础上,参数解析模块340用于:
对于函数的至少一个入参参数,循环对各入参参数进行反射处理,得到各入参参数的属性以及属性类型;
基于所述入参参数的class类在所述文件存储列表中进行匹配,确定所述入参参数的各属性的属性说明。
在上述实施例的基础上,参数解析模块340用于:
对于函数的出参参数,对所述出参参数进行反射处理,得到所述出参参数的属性以及属性类型;
遍历各属性,若所述属性的属性类型为非基础类型,则基于对所述属性进行递归反射解析,直到解析到的属性为基础类型;
若所述属性的class类在所述文件存储列表内,则基于所述属性的class类所述文件存储列表中进行匹配,确定所述属性的属性说明。
在上述实施例的基础上,该装置还包括:
信息封装模块,用于基于各参数的解析策略,对所述各参数进行参数解析,得到各参数的属性以及属性说明之后,将所述各参数、各参数对应的属性以及属性说明进行封装,形成接口封装类。
在上述实施例的基础上,接口文档生成模块350用于:
调用预设格式的接口文档模板,将所述接口封装类的列表信息添加到所述接口文档模板的上下文中;
基于所述接口文档模板中信息标识从所述上下文中匹配对应信息,生成接口文档。
上述接口文档的生成装置可执行本发明任意实施例所提供的接口文档的生成方法,具备执行接口文档的生成方法相应的功能模块和有益效果。
实施例四
图7为本发明实施例四提供的一种电子设备的结构示意图。图7示出了适于用来实现本发明实施方式的电子设备12的框图。图7显示的电子设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。设备12典型的是承担图像分类功能的电子设备。
如图7所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器16,存储装置28,连接不同***组件(包括存储装置28和处理器16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture,ISA)总线,微通道体系结构(Micro Channel Architecture,MCA)总线,增强型ISA总线、视频电子标准协会(Video Electronics Standards Association,VESA)局域总线以及***组件互连(Peripheral Component Interconnect,PCI)总线。
电子设备12典型地包括多种计算机***可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储装置28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(Random Access Memory,RAM)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34可以用于读写不可移动的、非易失性磁介质(图7未显示,通常称为“硬盘驱动器”)。尽管图7中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如只读光盘(Compact Disc-Read Only Memory,CD-ROM)、数字视盘(Digital Video Disc-Read Only Memory,DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储装置28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块26的程序36,可以存储在例如存储装置28中,这样的程序模块26包括但不限于操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网关环境的实现。程序模块26通常执行本发明所描述的实施例中的功能和/或方法。
电子设备12也可以与一个或多个外部设备14(例如键盘、指向设备、摄像头、显示器24等)通信,还可与一个或者多个使得用户能与该电子设备12交互的设备通信,和/或与使得该电子设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,电子设备12还可以通过网关适配器20与一个或者多个网关(例如局域网(Local Area Network,LAN),广域网Wide Area Network,WAN)和/或公共网关,例如因特网)通信。如图所示,网关适配器20通过总线18与电子设备12的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、磁盘阵列(Redundant Arrays of Independent Disks,RAID)***、磁带驱动器以及数据备份存储***等。
处理器16通过运行存储在存储装置28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明上述实施例所提供的接口文档的生成方法。
实施例五
本发明实施例五提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明实施例所提供的接口文档的生成方法。
当然,本发明实施例所提供的一种计算机可读存储介质,其上存储的计算机程序不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的接口文档的生成方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的源代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的源代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机源代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。源代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网关——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (9)

1.一种接口文档的生成方法,其特征在于,包括:
获取任一接口的接口文件,并识别所述接口文件中的字符串,基于各所述接口文件中的字符串以及各所述接口文件的全路径信息生成文件存储列表,其中,所述接口文件的全路径信息包括所述接口文件的包路径信息和class类名称,各所述接口文件中的字符串和各所述接口文件的全路径信息以键值对的形式存储;
基于所述全路径信息进行反射处理,得到各所述接口文件的字符串中的参数;
基于各参数的解析策略,对所述各参数进行参数解析,得到各参数的属性以及属性说明;
基于所述各参数,以及各参数对应的属性以及属性说明生成接口文档;
其中,所述基于所述全路径信息进行反射处理,得到各所述接口文件的字符串中的参数,包括:
对各所述接口文件的全路径信息进行反射处理,得到各所述接口文件的class类;
基于各所述接口文件的class类确定各所述接口文件中的函数以及所述函数的入参参数和出参参数。
2.根据权利要求1所述的方法,其特征在于,所述基于各所述接口文件中的字符串以及各所述接口文件的全路径信息生成文件存储列表,包括:
基于第一正则函数对各所述接口文件的字符串进行正则化处理,得到各所述接口文件的包路径信息;
基于第二正则函数对各所述接口文件的字符串进行正则化处理,得到各所述接口文件的class类名称;
基于各所述接口文件的包路径信息和class类名称生成各所述接口文件的全路径信息;
将各所述接口文件的全路径信息以及字符串以键值对的形式进行存储,生成文件存储列表。
3.根据权利要求1所述的方法,其特征在于,在识别所述接口文件中的字符串之后,所述方法还包括:
识别所述字符串中的预设标识,剔除不包括所述预设标识的接口文件。
4.根据权利要求1所述的方法,其特征在于,所述基于各参数的解析策略,对所述各参数进行参数解析,得到各参数的属性以及属性说明,包括:
对于函数的至少一个入参参数,循环对各入参参数进行反射处理,得到各入参参数的属性以及属性类型;
基于所述入参参数的class类在所述文件存储列表中进行匹配,确定所述入参参数的各属性的属性说明。
5.根据权利要求1所述的方法,其特征在于,所述基于各参数的解析策略,对所述各参数进行参数解析,得到各参数的属性以及属性说明,包括:
对于函数的出参参数,对所述出参参数进行反射处理,得到所述出参参数的属性以及属性类型;
遍历各属性,若所述属性的属性类型为非基础类型,则基于对所述属性进行递归反射解析,直到解析到的属性为基础类型;
若所述属性的class类在所述文件存储列表内,则基于所述属性的class类所述文件存储列表中进行匹配,确定所述属性的属性说明。
6.根据权利要求1所述的方法,其特征在于,在基于各参数的解析策略,对所述各参数进行参数解析,得到各参数的属性以及属性说明之后,所述方法还包括:将所述各参数、各参数对应的属性以及属性说明进行封装,形成接口封装类;
所述基于所述各参数,以及各参数对应的属性以及属性说明生成接口文档,包括:
调用预设格式的接口文档模板,将所述接口封装类的列表信息添加到所述接口文档模板的上下文中;
基于所述接口文档模板中信息标识从所述上下文中匹配对应信息,生成接口文档。
7.一种接口文档的生成装置,其特征在于,包括:
接口文件获取模块,用于获取任一接口的接口文件;
文件存储列表生成模块,用于识别所述接口文件中的字符串,基于各所述接口文件中的字符串以及各所述接口文件的全路径信息生成文件存储列表,其中,所述接口文件的全路径信息包括所述接口文件的包路径信息和class类名称,各所述接口文件中的字符串和各所述接口文件的全路径信息以键值对的形式存储;
参数确定模块,用于基于所述全路径信息进行反射处理,得到各所述接口文件的字符串中的参数;
参数解析模块,用于基于各参数的解析策略,对所述各参数进行参数解析,得到各参数的属性以及属性说明;
接口文档生成模块,用于基于所述各参数,以及各参数对应的属性以及属性说明生成接口文档;
其中,所述参数确定模块用于:对各所述接口文件的全路径信息进行反射处理,得到各所述接口文件的class类;基于各所述接口文件的class类确定各所述接口文件中的函数以及所述函数的入参参数和出参参数。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6中任一所述的接口文档的生成方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的接口文档的生成方法。
CN202110328306.XA 2021-03-26 2021-03-26 一种接口文档的生成方法、装置、存储介质及电子设备 Active CN113050987B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110328306.XA CN113050987B (zh) 2021-03-26 2021-03-26 一种接口文档的生成方法、装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110328306.XA CN113050987B (zh) 2021-03-26 2021-03-26 一种接口文档的生成方法、装置、存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN113050987A CN113050987A (zh) 2021-06-29
CN113050987B true CN113050987B (zh) 2024-06-14

Family

ID=76515775

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110328306.XA Active CN113050987B (zh) 2021-03-26 2021-03-26 一种接口文档的生成方法、装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN113050987B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113485927A (zh) * 2021-07-06 2021-10-08 西安京迅递供应链科技有限公司 一种测试数据生成方法、装置、设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049271B (zh) * 2012-12-27 2016-01-27 微梦创科网络科技(中国)有限公司 自动生成api接口的描述文档的方法和装置
US11074067B2 (en) * 2017-07-27 2021-07-27 Tibco Software Inc. Auto-generation of application programming interface (API) documentation via implementation-neutral analysis of API traffic
US10839011B2 (en) * 2018-04-18 2020-11-17 International Business Machines Corporation Application programing interface document generator
CN108932122B (zh) * 2018-06-19 2024-05-28 深圳市小雨滴信息技术有限公司 接口文档生成方法、装置、计算机设备和存储介质
US10866803B2 (en) * 2019-02-12 2020-12-15 Red Hat, Inc. Generating interaction libraries
CN111796809A (zh) * 2020-06-29 2020-10-20 平安普惠企业管理有限公司 接口文档生成方法、装置、电子设备及介质
CN111880778B (zh) * 2020-06-30 2023-12-22 百度在线网络技术(北京)有限公司 接口文档的生成方法、装置、电子设备及存储介质
CN112506769B (zh) * 2020-12-04 2024-06-14 数字广东网络建设有限公司 基于接口文档的请求体生成方法、装置和计算机设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
一个基于数据共享的接口开发平台;谢业欣;;软件;20200815(08);160-165 *
一种基于SWIG的接口自动化测试方法;刘存思;;计算机光盘软件与应用;20130115(02);80-81 *

Also Published As

Publication number Publication date
CN113050987A (zh) 2021-06-29

Similar Documents

Publication Publication Date Title
CN108040040A (zh) 一种应用协议报文的自动化解析方法和装置
CN112104709B (zh) 智能合约的处理方法、装置、介质及电子设备
CN107203574B (zh) 数据管理和数据分析的聚合
CN111736840A (zh) 小程序应用的编译方法、运行方法、存储介质及电子设备
CN110020358B (zh) 用于生成动态页面的方法和装置
CN114528044B (zh) 一种接口调用方法、装置、设备及介质
CN113626223A (zh) 一种接口调用方法和装置
CN112398809A (zh) 协议规则转换方法、装置、计算机设备和存储介质
CN115599386A (zh) 代码生成方法、装置、设备及存储介质
CN113050987B (zh) 一种接口文档的生成方法、装置、存储介质及电子设备
CN114691161A (zh) 基于Key-Value的软件***配置方法、装置及电子设备
CN117931473A (zh) 编排方法、编排装置、电子设备、存储介质和程序产品
CN110737678B (zh) 一种数据查找方法、装置、设备和存储介质
CN110633162B (zh) 远程调用实现方法、装置、计算机设备及存储介质
CN116881971A (zh) 一种敏感信息泄露检测方法、设备及存储介质
WO2023151397A1 (zh) 应用程序部署方法、装置、设备及介质
CN111241180A (zh) 一种信息处理的方法、装置、设备及存储介质
CN113807056B (zh) 一种文档名称序号纠错方法、装置和设备
CN111124541A (zh) 一种配置文件的生成方法、装置、设备及介质
CN113138767B (zh) 代码语言转换方法、装置、电子设备及存储介质
CN114219643A (zh) 一种交易调用方法、装置、设备及存储介质
CN111373377A (zh) 错误处理
CN112748930B (zh) 编译检测方法、装置、设备及存储介质
CN115687075A (zh) 页面测试脚本的纠错方法及装置
CN114357967A (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