CN112148356A - 文档生成方法、接口开发方法、装置、服务器及存储介质 - Google Patents
文档生成方法、接口开发方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN112148356A CN112148356A CN201910582473.XA CN201910582473A CN112148356A CN 112148356 A CN112148356 A CN 112148356A CN 201910582473 A CN201910582473 A CN 201910582473A CN 112148356 A CN112148356 A CN 112148356A
- Authority
- CN
- China
- Prior art keywords
- interface
- function
- document
- application program
- path
- 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.)
- Granted
Links
- 238000011161 development Methods 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 title claims abstract description 76
- 230000002452 interceptive effect Effects 0.000 claims abstract description 96
- 230000003993 interaction Effects 0.000 claims abstract description 87
- 230000006870 function Effects 0.000 claims description 391
- 238000012545 processing Methods 0.000 claims description 113
- 230000004044 response Effects 0.000 claims description 57
- 238000004891 communication Methods 0.000 claims description 33
- 230000007246 mechanism Effects 0.000 claims description 23
- 238000006243 chemical reaction Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 230000005540 biological transmission Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000006185 dispersion Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004816 latex Substances 0.000 description 2
- 229920000126 latex Polymers 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 239000000872 buffer Substances 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 235000014510 cooky Nutrition 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Library & Information Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种文档生成方法、接口开发方法、装置、服务器及介质,其中文档生成方法包括:获取目标应用程序接口的自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;根据所述自定义函数中的函数名确定所述目标应用程序接口的接口路径;解析所述自定义函数中的交互协议,得到所述目标应用程序接口的交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型;根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档。本发明实施例可以提升接口文档的生成效率及准确性。
Description
技术领域
本发明涉及互联网技术领域,具体涉及计算机技术领域,尤其涉及一种文档生成方法、一种接口开发方法、一种文档生成装置、一种接口开发装置、一种服务器及一种计算机存储介质。
背景技术
随着互联网技术的发展,越来越多的软件开发者会选择将自己所完成的程序代码以服务的形式对外开放,一套服务***对应多个API(Application ProgrammingInterface,应用程序接口)。为了使其他用户可以方便地使用自己所提供的API,软件开发者需要撰写相应的接口文档以供其他用户查阅。发明人在实践中发现,大部分软件开发者往往专注于编程和架构,对文档撰写并不擅长,容易导致文档撰写的效率较低。并且,软件开发者在撰写接口文档的过程中,需要人为地比对函数代码以获取接口文档所需的内容,从而将该内容填写在接口文档中,人工操作容易产生接口文档和函数代码不一致的问题,从而导致接口文档的准确性较低。
发明内容
本发明实施例提供了一种文档生成方法、接口开发方法、装置、服务器及计算机存储介质,可以提升接口文档的生成效率及准确性。
一方面,本发明实施例提供了一种文档生成方法,所述文档生成方法包括:
获取目标应用程序接口的自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
根据所述自定义函数中的函数名确定所述目标应用程序接口的接口路径;
解析所述自定义函数中的交互协议,得到所述目标应用程序接口的交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型;
根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档。
另一方面,本发明实施例提供了一种接口开发方法,该接口开发方法包括:
获取目标应用程序接口的自定义函数,并构造所述目标应用程序接口的接口处理函数;所述接口处理函数包括所述自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
解析所述自定义函数得到所述目标应用程序接口的接口路径和交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型,所述接口路径根据所述函数名确定;
根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档;
基于反射机制将所述接口处理函数及所述接口文档在***服务中进行注册。
再一方面,本发明实施例提供了一种文档生成装置,该文档生成装置包括:
获取单元,用于获取目标应用程序接口的自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
确定单元,用于根据所述自定义函数中的函数名确定所述目标应用程序接口的接口路径;
解析单元,用于解析所述自定义函数中的交互协议,得到所述目标应用程序接口的交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型;
处理单元,用于根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档。
再一方面,本发明实施例提供了一种接口开发装置,该接口开发装置包括:
获取单元,用于获取目标应用程序接口的自定义函数,并构造所述目标应用程序接口的接口处理函数;所述接口处理函数包括所述自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
解析单元,用于解析所述自定义函数得到所述目标应用程序接口的接口路径和交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型,所述接口路径根据所述函数名确定;
处理单元,用于根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档;
所述处理单元,用于基于反射机制将所述接口处理函数及所述接口文档在***服务中进行注册。
再一方面,本发明实施例提供了一种服务器,包括通信接口;该服务器还包括:
处理器,适于实现一条或多条第一指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由所述处理器加载并执行如下步骤:
获取目标应用程序接口的自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
根据所述自定义函数中的函数名确定所述目标应用程序接口的接口路径;
解析所述自定义函数中的交互协议,得到所述目标应用程序接口的交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型;
根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档。
或者,所述计算机存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由所述处理器加载并执行如下步骤:
获取目标应用程序接口的自定义函数,并构造所述目标应用程序接口的接口处理函数;所述接口处理函数包括所述自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
解析所述自定义函数得到所述目标应用程序接口的接口路径和交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型,所述接口路径根据所述函数名确定;
根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档;
基于反射机制将所述接口处理函数及所述接口文档在***服务中进行注册。
再一方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由处理器加载并执行如下步骤:
获取目标应用程序接口的自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
根据所述自定义函数中的函数名确定所述目标应用程序接口的接口路径;
解析所述自定义函数中的交互协议,得到所述目标应用程序接口的交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型;
根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档。
或者,所述计算机存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由所述处理器加载并执行如下步骤:
获取目标应用程序接口的自定义函数,并构造所述目标应用程序接口的接口处理函数;所述接口处理函数包括所述自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
解析所述自定义函数得到所述目标应用程序接口的接口路径和交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型,所述接口路径根据所述函数名确定;
根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档;
基于反射机制将所述接口处理函数及所述接口文档在***服务中进行注册。
本发明实施例在获取到目标应用程序接口的自定义函数之后,可以根据自定义函数中的函数名确定目标应用程序接口的接口路径,并解析自定义函数中的交互协议得到目标应用程序接口的交互信息;从而实现根据路径名称和交互信息自动生成目标应用程序接口的接口文档。由此可见,本发明实施例无需软件开发者人工撰写接口文档,可提高接口文档的生成效率;还可避免人工操作所产生的接口文档和自定义函数不一致的问题,保证自定义函数和接口文档的强一致性,提高接口文档的准确性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种文档生成方法的流程示意图;
图2是本发明另一实施例提供的一种文档生成方法的流程示意图;
图3a是本发明实施例提供的一种接口组结构体的代码示意图;
图3b是本发明实施例提供的一种自定义函数的代码示意图;
图3c是本发明实施例提供的另一种自定义函数的代码示意图;
图4a是本发明实施例提供的一种接口文档的标题目录的示意图;
图4b是本发明实施例提供的一种接口文档的一种接口章节的示意图;
图4c是本发明实施例提供的一种接口文档的另一种接口章节的示意图;
图4d是本发明实施例提供的一种接口文档的附录章节的示意图;
图5是本发明实施例提供的一种接口开发方法的流程示意图;
图6是本发明实施例提供的一种文档生成装置的结构示意图;
图7是本发明实施例提供的一种接口开发装置的结构示意图;
图8是本发明实施例提供的一种服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明实施例的相关技术提及,越来越多的软件开发者(以下简称开发者)会将自己开发的API以服务的形式对外开放,并为其他用户提供相应的接口文档以便于其他用户可根据该接口文档使用开发者提供的API。发明人在实践中发现,现有技术存在以下缺点:①一个API开发通常涉及到协议定义与解析、业务逻辑开发、服务注册以及返回码规范等过程。由于编程语言的特性,每个过程往往分散在代码的不同位置,使得代码审阅变得较为复杂低效;并且,每一次更改代码,都需要对不同位置处的各个过程的相关代码进行调整,影响开发者的体验,其API的开发效率较低。②现有的接口文档都是由开发者人工撰写的,其文档生成效率和准确性较低;并且,由于编程语言往往没有文档功能,开发者需要借助其他平台(如文档分享平台)的功能来撰写并发布接口文档,导致一套API服务的资源分散,不利于开发者对API服务的管理和维护,提升了API的接入难度;此处的API服务可包括API的函数代码和接口文档,所谓API服务的资源分散是指API的函数代码和接口文档存在不同的平台中,即API的函数代码存在API开发平台中,接口文档存在文档分享平台中。③在互联网行业中,软件和服务是经常变动或升级的;若API的函数代码发生变动(比如协议字段的增删,名称或类型的修改),则接口文档也必须同步更新。由前述可知,API函数代码的变动是涉及多个过程的代码调整的,因此开发者在同步更新接口文档时,需要通过比对函数代码对接口文档进行逐项变更,其更新效率极低,且由于人工操作容易导致更新后的接口文档与API的函数代码不一致,从而导致其他用户在使用API时出现错误。
基于上述问题,本发明实施例提出了一种基于编程语言实现的高效接口开发框架;此处的编程语言是指用于定义计算机程序的形式语言,其可以包括但不限于:golang语言(一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言)、python语言(一种面向对象的动态类型语言),等等;此处的开发框架是指一种经过校验并具有特定功能(如API开发功能和文档生成功能等)的半成品软件,所谓的半成品软件是指需要结合其他的程序代码(如开发者编写的自定义函数)才可实现特定功能的软件。开发者可根据业务需求将该开发框架应用到以数据传输协议提供API的产品的开发过程中,以支持数据传输协议+数据格式协议的API开发和接口文档的自动生成;其中,数据传输协议可以包括但不限于HTTP协议(Hyper Text Transfer Protocol,超文本传输协议)、HTTPS协议(HypertextTransfer Protocol Secure,超文本传输安全协议),等等;数据格式协议可以包括但不限于:json协议(一种轻量级的数据交换格式)、xml协议(Extensible Markup Language,可扩展标记语言)、pb协议(Protocol Buffers,一种数据序列化协议),等等。需要说明是,为便于描述,后续均以编程语言为golang语言、数据传输协议为HTTP协议以及数据格式协议为json协议为例进行阐述。
由前述可知,本发明实施例所提出的开发框架具有API开发和文档生成等功能,因此开发者若想要利用该开发框架开发目标应用程序接口(即目标API)和生成目标API的接口文档,则可以通过终端获取该开发框架,此处的终端可包括但不限于:台式计算机、膝上计算机(或称为笔记本电脑)、平板计算机,等等。在一种实施方式中,开发者可以通过终端从代码托管平台(例如github平台)中获取该开发框架;再一种实施方式中,开发者可以通过即时通讯应用(如微信、QQ等)从其他用户处获取该开发框架;再一种实施方式中,开发者还可通过移动硬盘、U盘等设备从其他用户处拷贝该开发框架。开发者在获取到该开发框架之后,可以根据开发框架所定义的接口组结构体和函数模板,在该开发框架中根据业务需求编写自定义函数,该自定义函数可包括目标API的业务逻辑代码、返回码、函数名以及协议等全部信息。开发者在编写完成自定义函数之后,开发框架可利用反射机制根据该自定义函数构造目标API的接口处理函数并将该接口处理函数进行服务注册,以及生成目标API的接口文档;其中,反射机制是指可以动态获取对象的方法和参数的一种开发语言的机制。开发框架生成接口文档之后,还可输出文档访问路径,以使得开发者可基于该文档访问路径进行文档访问。
由此可见,本发明实施例所提出的开发框架具有如下优点:①该开发框架可以供开发者在一个自定义函数中完成服务注册、协议编写、业务逻辑开发等开发工作,通过一个自定义函数将目标API的全部信息收集到一起;一个API只需要一个自定义函数,无需进行其他模块的关联操作,可以一体化解决API开发,提升开发效率和代码审阅效率。②在开发者完成自定义函数的编写后,可以自动生成目标API的接口文档,提升文档生成效率;并且,无需开发者借助文档分享平台来撰写并发布接口文档,避免目标API服务的资源分散,有利于开发者对目标API服务的管理和维护,降低了目标API的接入难度。③由于接口文档是开发框架利用反射机制根据该自定义函数自动生成的,接口文档和自定义函数是强一致性的;那么随着自定义函数发生变动,接口文档可以随着自定义函数的变动而进行更新,无需开发者人为进行比对更新,节省了开发者的工作,提高了接口文档的准确性,从而可避免其他用户在使用API时出现错误的问题。
基于上述开发框架的描述,本发明实施例提出一种文档生成方法,该文档生成方法可以由服务器执行;具体的,服务器可运行上述所提及的开发框架以实现该文档生成方法。请参见图1,该文档生成方法可包括以下步骤S101-S104:
S101,获取目标应用程序接口的自定义函数。
通常,一个业务通常是由一个接口组(即一套API)构成的,而一个接口组中包括多个应用程序接口;此处的目标应用程序接口可以是目标接口组中的任一应用程序接口,该目标接口组可以是开发者根据待开发的业务在开发框架中进行自定义的接口组;例如,待开发的业务为用户业务,则开发者可以在开发框架中自定义user(用户)接口组,该user接口组中可包括user/list(即用户/列表)接口、user/insert(即用户/添加)接口等应用程序接口,那么目标应用程序接口可以为user/list接口,也可以为user/insert接口。
目标应用程序接口的自定义函数可至少包括函数名和交互协议,该交互协议可包括至少一个字段。在一种实施方式中,交互协议可以包括请求协议和响应协议;应理解的是,在实际的业务中,请求协议和响应协议可以根据实际的业务需求进行省略。再一种实施方式中,自定义函数还可包括业务逻辑代码以及返回码等信息。
S102,根据自定义函数中的函数名确定目标应用程序接口的接口路径。
在具体实施过程中,可以按照接口路径的注册规则对自定义函数中的函数名进行风格转换,得到目标应用程序接口的接口路径。其中,接口路径的注册规则包括以下至少一项:将函数名中的大写字母转换为小写字母、单词间采用下划线连接、以及将函数名中的下划线转换为斜杠线。例如,设自定义函数中的函数名为User_Insert,那么可以将函数名中的大写字母“U”转换为小写字母“u”以及将大写字母“I”转换为小写字母“i”,并函数名的下划线“_”转换为斜杠线“/”以表示路径层级关系,从而可以得到目标应用程序接口的接口路径为/user/insert。又如,设自定义函数中的函数名为User_GetHighScore,那么可以将函数名中的所有大写字母转换为小写字母、函数名的下划线转换为斜杠线,单词间(如“Get”和“High”之间)采用下划线连接,从而可以得到目标应用程序接口的接口路径为/user/get_high_score,等等。
S103,解析自定义函数中的交互协议,得到目标应用程序接口的交互信息。
由前述可知,交互协议中包括至少一个字段,那么可以解析自定义函数中的交互协议的各个字段,得到目标应用程序接口的交互信息,该交互信息包括各字段的字段标识及各字段的数据类型;字段的数据类型是指该字段所存储的数据的数据类型,例如字段1所存储的数据的数据类型为float型(浮点型数据类型),则字段1的数据类型为float型;又如,字段2所存储的数据的数据类型为string型(字符串数据类型),则字段2的数据类型为string型,等等。
在一种实施方式中,交互协议包括请求协议,则交互信息包括对请求协议进行解析得到的请求信息;再一种实施方式中,交互协议包括响应协议,则交互信息包括对响应协议进行解析得到的响应信息;再一种实施方式中,交互协议包括请求协议和响应协议,则交互信息包括请求信息和响应信息。其中,请求协议包括至少一个请求字段,请求信息包括至少一个请求字段的字段标识以及各请求字段的数据类型;响应协议包括至少一个响应字段,响应信息包括至少一个响应字段的字段标识以及各响应字段的数据类型。
S104,根据路径名称和交互信息生成目标应用程序接口的接口文档。
在开发框架中,可采用轻量级标记语言根据路径名称和交互信息进行文档编写,从而生成目标应用程序接口的接口文档。此处的轻量级标记语言可以包括但不限于:markdown(一种以易读易写的方式编写文档的标记语言)、latex(一种排版***),等等。
本发明实施例在获取到目标应用程序接口的自定义函数之后,可以根据自定义函数中的函数名确定目标应用程序接口的接口路径,并解析自定义函数中的交互协议得到目标应用程序接口的交互信息;从而实现根据路径名称和交互信息自动生成目标应用程序接口的接口文档。由此可见,本发明实施例无需软件开发者人工撰写接口文档,可提高接口文档的生成效率;还可避免人工操作所产生的接口文档和自定义函数不一致的问题,保证自定义函数和接口文档的强一致性,提高接口文档的准确性。
请参见图2,是本发明实施例提供的另一种文档生成方法的流程示意图。该文档生成方法可以由服务器执行;具体的,服务器可运行上述所提及的开发框架以实现该文档生成方法。请参见图2,该文档生成方法可包括以下步骤S201-S206:
S201,获取目标应用程序接口的自定义函数,该自定义函数至少包括函数名和交互协议,交互协议包括至少一个字段。
自定义函数是由开发者在开发框架中根据自身的业务需求来编写的;该开发框架包括接口组结构体以及函数模板。其中,接口组结构体是指一个接口组所对应的结构体,接口组结构体用于规定返回码。以图3a所示的X结构体为例,该X结构体为接口组结构体;在该接口组结构体中,字段CodeDescription的数据类型为map[int]string类型,其用于表达返回码描述;其中,字段CodeDescription的key(键)标识返回值,value(值)表示返回值的含义描述;字段R的数据类型为*http.Request类型,其用于支持cookie等扩展能力,所谓的cookie是一种由web服务器保存在用户浏览器上的小文本文件,该小文本文件中包含用户信息。由此可见,本发明实施例通过接口组结构体集中管理和应用返回码,可以进一步提升开发效率。
函数模板可用于引导开发者编写自定义函数;例如,函数模板如下所示:
func(对象变量对象类型)[函数名(接口路径)]([请求协议])([返回码],[响应协议],[扩展错误信息]){
[接口逻辑代码]
}
在上述函数模板中,入参的请求协议可根据实际需求省略,此情况下可表示目标应用程序接口无入参;同理,出参的扩展错误信息和响应协议可以按照从后向前的顺序进行省略。其中,请求协议和响应协议均可使用匿名结构体的方式进行定义,也可使用命名结构体的方式进行定义;所谓匿名结构体是指声明结构体时未指定结构体类型名的结构体,命名结构体是指声明结构体时指定了结构体类型名的结构体。在请求协议中可使用tag(标签)来描述请求字段的字段性质(如是否为必填字段)和描述信息;同理,在响应协议中,也可使用tag来描述响应字段的字段性质和字段描述。需要说明的是,请求协议和响应协议除了上述所提及的两种定义方式(即匿名结构体的方式和命名结构体的方式)之外,还可支持数据格式协议(如json协议)可以描述的任意类型、任意嵌套方式的结构体进行定义;并且还可解析采用任意类型、任意嵌套方式的结构体进行定义的请求协议和响应协议,从而生成接口文档,功能较为强大。
开发者可结合业务需求并基于上述的函数模板和接口组结构体编写得到如图3b或者图3c所示的自定义函数。
S202,根据自定义函数中的函数名确定目标应用程序接口的接口路径。
S203,解析自定义函数中的交互协议,得到目标应用程序接口的交互信息,交互信息包括各字段的字段标识及各字段的数据类型。
S204,按照网络通信模块的格式要求构造目标应用程序接口的接口处理函数;接口处理函数包括自定义函数。
由于目标应用程序接口的自定义函数是开发者自己编写的,该自定义函数可能不满足网络通信模块的格式要求;因此,为了使得目标应用程序接口可以通过该网络通信模块进行正常通信,则需要按照网络通信模块的格式要求构造目标应用程序接口的接口处理函数。此处的网络通信模块为net/http模块,网络通信模块的格式要求为handler(句柄)格式;即构造得到的接口处理函数为网络通信模块可接受的handler格式的函数。
S205,将接口处理函数在***服务中进行注册。
在具体实施过程中,步骤S205可具体包括以下步骤s11-s13:
s11,在接口处理函数中采用反射机制动态创建请求参数。
在具体实施过程中,可以在接口处理函数中,采用反射机制动态解析HTTP请求中的body(包体)或query(URL(全球资源***)后面的参数),从而得到请求参数。本发明实施例并不区分body和query的参数位置,通过反射机制自动地动态解析并处理HTTP请求,可避免开发者重复执行各种解析操作,进一步提升效率。
s12,将请求参数传入接口处理函数中的自定义函数。
步骤s11所创建的请求参数可包括至少一个入参值和各入参值的数据类型,交互协议包括请求协议;相应的,步骤s12的具体实施方式可以为:从请求参数中选取任一入参值作为目标入参值,根据目标入参值的数据类型在请求协议中确定目标请求字段,目标请求字段的数据类型与目标入参值的数据类型相匹配;将目标入参值传入自定义函数的请求协议中的目标请求字段;迭代上述步骤,将请求参数中的各入参值传入自定义函数中。将请求参数中的各入参值传入自定义函数之后,即可得到函数返回值。
需要说明的是,目标请求字段的数据类型与目标入参值的数据类型相匹配是指目标请求字段的数据类型与目标入参值的数据类型相同。在一种实施方式中,对请求协议进行解析所得到的请求信息中还可包括各请求字段的描述信息,请求参数还可包括各入参值的描述信息;那么若存在多个请求字段的数据类型和目标入参值的数据类型相匹配,则还可根据目标入参值的描述信息从这多个请求字段中确定目标请求字段,目标请求字段的描述信息与目标入参值的描述信息相同。
s13,获取函数返回值,并将该函数返回值输出至网络通信模块以完成接口处理函数在***服务中的注册。
其中,函数返回值可包括各响应字段的出参值;由于数据传输协议对于传输的数据通常具有格式要求,因此在将函数返回值输出至网络通信模块以完成接口处理函数在***服务中的注册时,可以先用预设格式对各响应字段的出参值进行组装处理,得到回包;然后将回包输出至网络通信模块以完成接口处理函数在***服务中的注册。其中,预设格式可根据数据传输协议确定,该预设格式是指数据传输协议针对数据传输所规定的通用格式。
S206,根据路径名称和交互信息生成目标应用程序接口的接口文档。
在具体实施过程中,可以先采用轻量级标记语言基于路径名称和交互信息进行文档编写,得到基于轻量级标记语言格式的原始文档;然后将基于轻量级标记语言格式的原始文档转换成目标应用程序接口的超文本标记语言(Hyper Text Markup Language,HTML)格式的接口文档。其中,轻量级标记语言可包括markdown、latex等等。在生成目标应用程序接口的接口文档之后,还可将该目标应用程序接口的接口文档注册到***服务中。需要说明的是,步骤S206和步骤S204-S205并无先后顺序;即可以先执行步骤S204-S205再执行步骤S206,也可先执行步骤S206再执行步骤S204-S205,还可同时执行步骤S204-S205和步骤S206,本发明实施例对此不作限定。
在一种实施方式中,在生成接口文档之后,还可创建文档访问路径,该文档访问路径包括第一路径或第二路径,或者第一路径和第二路径;其中,第一路径用于访问接口文档,例如第一路径可以为/__doc路径;第二路径用于访问原始文档,例如第二路径可以为/__md路径。在创建了文档访问路径之后,还可输出文档访问路径,以使得开发者基于文档访问路径进行文档访问。相应的,开发者可以通过第一路径访问HTML格式的接口文档,也可以通过第二路径访问轻量级标记语言(如markdown)格式的原始文档。开发者还可对该原始文档的文档风格进行自定义,以及将该原始文档发布至其他平台(如社交平台、文档分享平台)中。
需要说明的是,由前述可知,目标应用程序接口是目标接口组中的任一应用程序接口。若目标接口组只包括一个应用程序接口,则可以在生成目标应用程序接口的接口文档之后,直接创建并输出文档访问路径。若目标接口组包括多个应用程序接口,则可以遍历该目标接口组中的各个应用程序接口的自定义函数,并采用上述步骤S201-S206生成每个应用程序接口的接口文档。然后,可以对各个应用程序接口的接口文档进行组合,得到目标接口组的接口文档,将该目标接口组的接口文档注册到***服务中。相应的,还可创建并输出用于访问目标接口组的接口文档和/或目标接口组的原始文档的文档访问路径。
其中,对各个应用程序接口的接口文档进行组合,得到目标接口组的接口文档的具体实施方式可以为:采用轻量级标记语言构造目标接口组的接口文档的标题目录、接口以及附录等章节,并将各个应用程序接口的接口文档的内容对各个章节进行内容填充,从而得到目标接口组的接口文档。例如,目标接口组包括user/insert接口、user/list接口等应用程序接口;其中,user/insert接口的自定义函数可以参见图3b所示,user/list接口的自定义函数可以参见图3c所示。那么采用上述方法可以得到目标接口组的接口文档;其中,该目标接口组的接口文档的标题目录章节可以参见图4a所示,关于user/insert接口的接口章节可以参见图4b所示,关于user/list接口的接口章节可以参见图4c所示,附录章节可以参见图4d所示。
本发明实施例在获取到目标应用程序接口的自定义函数之后,可以根据自定义函数中的函数名确定目标应用程序接口的接口路径,并解析自定义函数中的交互协议得到目标应用程序接口的交互信息;从而实现根据路径名称和交互信息自动生成目标应用程序接口的接口文档。由此可见,本发明实施例无需软件开发者人工撰写接口文档,可提高接口文档的生成效率;还可避免人工操作所产生的接口文档和自定义函数不一致的问题,保证自定义函数和接口文档的强一致性,提高接口文档的准确性。
基于上述开发框架的描述,本发明实施例还提出了一种接口开发方法,该接口开发方法可以由服务器执行;具体的,服务器可运行上述所提及的开发框架以实现该接口开发方法。请参见图5,该文档生成方法可包括以下步骤S501-S504:
S501,获取目标应用程序接口的自定义函数,并构造目标应用程序接口的接口处理函数。
此处的目标应用程序接口可以是目标接口组中的任一应用程序接口,该目标接口组可以是开发者根据待开发的业务在开发框架中进行自定义的接口组。目标应用程序接口的自定义函数是由开发者在开发框架中根据自身的业务需求来编写的;该自定义函数可至少包括函数名和交互协议,交互协议包括至少一个字段。在一种实施方式中,该自定义函数还可包括业务逻辑代码以及返回码等信息。
由于目标应用程序接口的自定义函数是开发者自己编写的,该自定义函数可能不满足网络通信模块的格式要求;因此,为了使得目标应用程序接口可以通过该网络通信模块进行正常通信,则在获取到自定义函数之后,可以按照网络通信模块的格式要求构造目标应用程序接口的接口处理函数,该接口处理函数包括自定义函数,构造得到的接口处理函数为网络通信模块可接受的handler格式的函数。
S502,解析自定义函数得到目标应用程序接口的接口路径和交互信息。
其中,接口路径可根据函数名确定;在根据函数名确定接口路径时,可以按照接口路径的注册规则对该函数名进行风格转换,从而得到的接口路径。交互信息可通过解析交互协议得到;由前述可知,交互协议包括至少一个字段,因此可解析交互协议中的各个字段,从而得到交互信息,该交互信息可包括各字段的字段标识及各字段的数据类型。
S503,根据路径名称和交互信息生成目标应用程序接口的接口文档。
在具体实施过程中,可以先采用轻量级标记语言基于路径名称和交互信息进行文档编写,得到基于轻量级标记语言格式的原始文档;然后将基于轻量级标记语言格式的原始文档转换成目标应用程序接口的超文本标记语言格式的接口文档。
S504,基于反射机制将接口处理函数及接口文档在***服务中进行注册。
在得到接口处理函数和接口文档之后,可以基于反射机制将接口处理函数在***服务中进行注册,并将接口文档一并注册到***服务中。其具体注册方式可以参见上述实施例中的步骤S205的相关描述,本发明实施例不再赘述。
在一种实施方式中,还可输出已注册的接口处理函数以及文档访问路径,该文档访问路径用于访问该接口文档。该文档访问路径可包括第一路径或第二路径,或者第一路径和第二路径;其中,第一路径用于访问接口文档,第二路径用于访问原始文档。相应的,开发者可通过第一路径查看/下载接口文档,也可通过第二路径查看/下载原始文档。开发者还可对该原始文档的文档风格进行自定义,以及将该原始文档发布至其他平台(如社交平台、文档分享平台)中。
本发明实施例在获取到目标应用程序接口的自定义函数之后,可构造包括自定义函数的接口处理函数;并通过解析自定义函数以实现根据解析得到的路径名称和交互信息自动生成接口文档;然后,可基于反射机制将接口处理函数及接口文档在***服务中进行注册。由此可见,本发明实施例无需软件开发者人工撰写接口文档,可提高接口文档的生成效率;还可避免人工操作所产生的接口文档和自定义函数不一致的问题,保证自定义函数和接口文档的强一致性,提高接口文档的准确性;并且,还可自动根据自定义函数构造并注册接口处理函数,从而提升开发效率。
基于上述文档生成方法实施例的描述,本发明实施例还公开了一种文档生成装置,所述文档生成装置可以是运行于服务器中的一个计算机程序(包括程序代码)。该文档生成装置可以执行图1至图2所示的文档生成方法。请参见图6,所述文档生成装置可以运行如下单元:
获取单元101,用于获取目标应用程序接口的自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
确定单元102,用于根据所述自定义函数中的函数名确定所述目标应用程序接口的接口路径;
解析单元103,用于解析所述自定义函数中的交互协议,得到所述目标应用程序接口的交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型;
处理单元104,用于根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档。
在一种实施方式中,确定单元102在用于据所述自定义函数中的函数名确定所述目标应用程序接口的接口路径时,可具体用于:按照接口路径的注册规则对所述自定义函数中的函数名进行风格转换,得到所述目标应用程序接口的接口路径;
其中,所述接口路径的注册规则包括以下至少一项:将函数名中的大写字母转换为小写字母、单词间采用下划线连接、以及将函数名中的下划线转换为斜杠线。
再一种实施方式中,所述交互协议包括请求协议,则所述交互信息包括对所述请求协议进行解析得到的请求信息;或者,
所述交互协议包括响应协议,则所述交互信息包括对所述响应协议进行解析得到的响应信息;或者,
所述交互协议包括所述请求协议和所述响应协议,则所述交互信息包括所述请求信息和所述响应信息;
其中,所述请求协议包括至少一个请求字段,所述请求信息包括至少一个请求字段的字段标识以及各请求字段的数据类型;所述响应协议包括至少一个响应字段,所述响应信息包括至少一个响应字段的字段标识以及各响应字段的数据类型。
再一种实施方式中,处理单元104还可用于:
按照网络通信模块的格式要求构造所述目标应用程序接口的接口处理函数;所述接口处理函数包括所述自定义函数;
将所述接口处理函数在***服务中进行注册。
再一种实施方式中,处理单元104在用于将所述接口处理函数在***服务中进行注册时,可具体用于:
在所述接口处理函数中采用反射机制动态创建请求参数;
将所述请求参数传入所述接口处理函数中的自定义函数;
获取函数返回值,并将所述函数返回值输出至所述网络通信模块以完成所述接口处理函数在所述***服务中的注册。
再一种实施方式中,所述请求参数包括至少一个入参值和各入参值的数据类型,所述交互协议包括请求协议;相应的,处理单元104在用于将所述请求参数传入所述接口处理函数中的自定义函数时,可具体用于:
从所述请求参数中选取任一入参值作为目标入参值,根据所述目标入参值的数据类型在所述请求协议中确定目标请求字段,所述目标请求字段的数据类型与所述目标入参值的数据类型相匹配;
将所述目标入参值传入所述自定义函数的所述请求协议中的目标请求字段;
迭代上述步骤,将所述请求参数中的各入参值传入所述自定义函数中。
再一种实施方式中,所述函数返回值包括各响应字段的出参值;相应的,处理单元104在用于将所述函数返回值输出至所述网络通信模块以完成所述接口处理函数在所述***服务中的注册时,可具体用于:
采用预设格式对所述各响应字段的出参值进行组装处理,得到回包;
将所述回包输出至所述网络通信模块以完成所述接口处理函数在所述***服务中的注册。
再一种实施方式中,处理单元104在用于根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档时,可具体用于:
采用轻量级标记语言基于所述路径名称和所述交互信息进行文档编写,得到基于轻量级标记语言格式的原始文档;
将所述基于轻量级标记语言格式的原始文档转换成所述目标应用程序接口的超文本标记语言格式的接口文档。
再一种实施方式中,处理单元104还可用于:
创建文档访问路径,所述文档访问路径包括第一路径或第二路径,或者第一路径和第二路径;其中,所述第一路径用于访问所述接口文档,所述第二路径用于访问所述原始文档;
输出文档访问路径,以使得开发者基于所述文档访问路径进行文档访问。
根据本发明的一个实施例,图1至图2所示的方法所涉及的各个步骤均可以是由图6所示的文档生成装置中的各个单元来执行的。例如,图1中所示的步骤S101-S104可以分别由图6中所示的获取单元101、确定单元102、解析单元103以及处理单元104来执行;又如,图2中所示的步骤S201-S203可以分别由图6中所示的获取单元101、确定单元102以及解析单元103来执行,步骤S204-S206可由图6中所示的处理单元104来执行。
根据本发明的另一个实施例,图6所示的文档生成装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于文档生成装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图1至图2中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图6中所示的文档生成装置设备,以及来实现本发明实施例的文档生成方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本发明实施例在获取到目标应用程序接口的自定义函数之后,可以根据自定义函数中的函数名确定目标应用程序接口的接口路径,并解析自定义函数中的交互协议得到目标应用程序接口的交互信息;从而实现根据路径名称和交互信息自动生成目标应用程序接口的接口文档。由此可见,本发明实施例无需软件开发者人工撰写接口文档,可提高接口文档的生成效率;还可避免人工操作所产生的接口文档和自定义函数不一致的问题,保证自定义函数和接口文档的强一致性,提高接口文档的准确性。
基于上述接口开发方法实施例的描述,本发明实施例还公开了一种接口开发装置,所述接口开发装置可以是运行于服务器中的一个计算机程序(包括程序代码)。该接口开发装置可以执行图5所示的接口开发方法。请参见图7,所述接口开发装置可以运行如下单元:
获取单元201,用于获取目标应用程序接口的自定义函数,并构造所述目标应用程序接口的接口处理函数;所述接口处理函数包括所述自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
解析单元202,用于解析所述自定义函数得到所述目标应用程序接口的接口路径和交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型,所述接口路径根据所述函数名确定;
处理单元203,用于根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档;
所述处理单元203,用于基于反射机制将所述接口处理函数及所述接口文档在***服务中进行注册。
在一种实施方式中,处理单元203还可用于:
输出已注册的所述接口处理函数以及文档访问路径,所述文档访问路径用于访问所述接口文档。
根据本发明的一个实施例,图5所示的方法所涉及的各个步骤均可以是由图7所示的接口开发装置中的各个单元来执行的。例如,图5中所示的步骤S501-S502可以分别由图7中所示的获取单元201以及解析单元202来执行,步骤S503-S504可由图7中所示的处理单元203来执行。根据本发明的另一个实施例,图7所示的接口开发装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本发明的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本发明的其它实施例中,基于接口开发装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本发明的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图5中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图7中所示的接口开发装置设备,以及来实现本发明实施例的接口开发方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本发明实施例在获取到目标应用程序接口的自定义函数之后,可构造包括自定义函数的接口处理函数;并通过解析自定义函数以实现根据解析得到的路径名称和交互信息自动生成接口文档;然后,可基于反射机制将接口处理函数及接口文档在***服务中进行注册。由此可见,本发明实施例无需软件开发者人工撰写接口文档,可提高接口文档的生成效率;还可避免人工操作所产生的接口文档和自定义函数不一致的问题,保证自定义函数和接口文档的强一致性,提高接口文档的准确性;并且,还可自动根据自定义函数构造并注册接口处理函数,从而提升开发效率。
基于上述方法实施例以及装置实施例的描述,本发明实施例还提供一种服务器,该服务器可运行上述所提及的开发框架。请参见图8,该服务器至少包括处理器301、通信接口302以及计算机存储介质303。其中,所述通信接口302可以包括射频收发器。处理器301、通信接口302以及计算机存储介质303可通过总线或其他方式连接。
计算机存储介质303可以存储在服务器的存储器中,所述计算机存储介质303用于存储计算机程序,所述计算机程序包括程序指令,所述处理器301用于执行所述计算机存储介质303存储的程序指令。处理器301(或称CPU(Central Processing Unit,中央处理器))是服务器的计算核心以及控制核心,其适于实现一条或多条指令,具体适于加载并执行一条或多条指令从而实现相应方法流程或相应功能;在一个实施例中,本发明实施例所述的处理器301可以用于进行一系列的文档生成处理,包括:获取目标应用程序接口的自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;根据所述自定义函数中的函数名确定所述目标应用程序接口的接口路径;解析所述自定义函数中的交互协议,得到所述目标应用程序接口的交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型;根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档,等等。再一个实施例中,本发明实施例所述的处理器301还可用于进行一系列的接口开发处理,包括:获取目标应用程序接口的自定义函数,并构造所述目标应用程序接口的接口处理函数;所述接口处理函数包括所述自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;解析所述自定义函数得到所述目标应用程序接口的接口路径和交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型,所述接口路径根据所述函数名确定;根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档;基于反射机制将所述接口处理函数及所述接口文档在***服务中进行注册,等等。
本发明实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是服务器中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机存储介质既可以包括服务器中的内置存储介质,当然也可以包括服务器所支持的扩展存储介质。计算机存储介质提供存储空间,在该存储空间中还存放了适于被处理器301加载并执行的一条或多条的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器;可选的还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,可由处理器301加载并执行计算机存储介质中存放的一条或多条第一指令,以实现上述有关文档生成实施例中的方法的相应步骤;具体实现中,计算机存储介质中的一条或多条第一指令由处理器301加载并执行如下步骤:
获取目标应用程序接口的自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
根据所述自定义函数中的函数名确定所述目标应用程序接口的接口路径;
解析所述自定义函数中的交互协议,得到所述目标应用程序接口的交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型;
根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档。
在一种实施方式中,在根据所述自定义函数中的函数名确定所述目标应用程序接口的接口路径时,所述一条或多条第一指令由处理器301加载并具体执行:
按照接口路径的注册规则对所述自定义函数中的函数名进行风格转换,得到所述目标应用程序接口的接口路径;
其中,所述接口路径的注册规则包括以下至少一项:将函数名中的大写字母转换为小写字母、单词间采用下划线连接、以及将函数名中的下划线转换为斜杠线。
再一种实施方式中,所述交互协议包括请求协议,则所述交互信息包括对所述请求协议进行解析得到的请求信息;或者,
所述交互协议包括响应协议,则所述交互信息包括对所述响应协议进行解析得到的响应信息;或者,
所述交互协议包括所述请求协议和所述响应协议,则所述交互信息包括所述请求信息和所述响应信息;
其中,所述请求协议包括至少一个请求字段,所述请求信息包括至少一个请求字段的字段标识以及各请求字段的数据类型;所述响应协议包括至少一个响应字段,所述响应信息包括至少一个响应字段的字段标识以及各响应字段的数据类型。
再一种实施方式中,所述一条或多条第一指令还可由处理器301加载并执行:
按照网络通信模块的格式要求构造所述目标应用程序接口的接口处理函数;所述接口处理函数包括所述自定义函数;
将所述接口处理函数在***服务中进行注册。
再一种实施方式中,在将所述接口处理函数在***服务中进行注册时,所述一条或多条第一指令由处理器301加载并具体执行:
在所述接口处理函数中采用反射机制动态创建请求参数;
将所述请求参数传入所述接口处理函数中的自定义函数;
获取函数返回值,并将所述函数返回值输出至所述网络通信模块以完成所述接口处理函数在所述***服务中的注册。
再一种实施方式中,所述请求参数包括至少一个入参值和各入参值的数据类型,所述交互协议包括请求协议;相应的,在将所述请求参数传入所述接口处理函数中的自定义函数时,所述一条或多条第一指令由处理器301加载并具体执行:
从所述请求参数中选取任一入参值作为目标入参值,根据所述目标入参值的数据类型在所述请求协议中确定目标请求字段,所述目标请求字段的数据类型与所述目标入参值的数据类型相匹配;
将所述目标入参值传入所述自定义函数的所述请求协议中的目标请求字段;
迭代上述步骤,将所述请求参数中的各入参值传入所述自定义函数中。
再一种实施方式中,所述函数返回值包括各响应字段的出参值;相应的,在将所述函数返回值输出至所述网络通信模块以完成所述接口处理函数在所述***服务中的注册时,所述一条或多条第一指令由处理器301加载并具体执行:
采用预设格式对所述各响应字段的出参值进行组装处理,得到回包;
将所述回包输出至所述网络通信模块以完成所述接口处理函数在所述***服务中的注册。
再一种实施方式中,在根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档时,所述一条或多条第一指令由处理器301加载并具体执行:
采用轻量级标记语言基于所述路径名称和所述交互信息进行文档编写,得到基于轻量级标记语言格式的原始文档;
将所述基于轻量级标记语言格式的原始文档转换成所述目标应用程序接口的超文本标记语言格式的接口文档。
再一种实施方式中,所述一条或多条第一指令还可由处理器301加载并执行:
创建文档访问路径,所述文档访问路径包括第一路径或第二路径,或者第一路径和第二路径;其中,所述第一路径用于访问所述接口文档,所述第二路径用于访问所述原始文档;
输出文档访问路径,以使得开发者基于所述文档访问路径进行文档访问。
再一个实施例中,可由处理器301加载并执行计算机存储介质中存放的一条或多条第二指令,以实现上述有关接口开发实施例中的方法的相应步骤;具体实现中,计算机存储介质中的一条或多条第二指令由处理器301加载并执行如下步骤:
获取目标应用程序接口的自定义函数,并构造所述目标应用程序接口的接口处理函数;所述接口处理函数包括所述自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
解析所述自定义函数得到所述目标应用程序接口的接口路径和交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型,所述接口路径根据所述函数名确定;
根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档;
基于反射机制将所述接口处理函数及所述接口文档在***服务中进行注册。
在一种实施方式中,所述一条或多条第一指令还可由处理器301加载并执行:
输出已注册的所述接口处理函数以及文档访问路径,所述文档访问路径用于访问所述接口文档。
本发明实施例在获取到目标应用程序接口的自定义函数之后,可以根据自定义函数中的函数名确定目标应用程序接口的接口路径,并解析自定义函数中的交互协议得到目标应用程序接口的交互信息;从而实现根据路径名称和交互信息自动生成目标应用程序接口的接口文档。由此可见,本发明实施例无需软件开发者人工撰写接口文档,可提高接口文档的生成效率;还可避免人工操作所产生的接口文档和自定义函数不一致的问题,保证自定义函数和接口文档的强一致性,提高接口文档的准确性。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (15)
1.一种文档生成方法,其特征在于,包括:
获取目标应用程序接口的自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
根据所述自定义函数中的函数名确定所述目标应用程序接口的接口路径;
解析所述自定义函数中的交互协议,得到所述目标应用程序接口的交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型;
根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档。
2.如权利要求1所述的方法,其特征在于,所述根据所述自定义函数中的函数名确定所述目标应用程序接口的接口路径,包括:
按照接口路径的注册规则对所述自定义函数中的函数名进行风格转换,得到所述目标应用程序接口的接口路径;
其中,所述接口路径的注册规则包括以下至少一项:将函数名中的大写字母转换为小写字母、单词间采用下划线连接、以及将函数名中的下划线转换为斜杠线。
3.如权利要求1所述的方法,其特征在于,所述交互协议包括请求协议,则所述交互信息包括对所述请求协议进行解析得到的请求信息;或者,
所述交互协议包括响应协议,则所述交互信息包括对所述响应协议进行解析得到的响应信息;或者,
所述交互协议包括所述请求协议和所述响应协议,则所述交互信息包括所述请求信息和所述响应信息;
其中,所述请求协议包括至少一个请求字段,所述请求信息包括至少一个请求字段的字段标识以及各请求字段的数据类型;所述响应协议包括至少一个响应字段,所述响应信息包括至少一个响应字段的字段标识以及各响应字段的数据类型。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
按照网络通信模块的格式要求构造所述目标应用程序接口的接口处理函数;所述接口处理函数包括所述自定义函数;
将所述接口处理函数在***服务中进行注册。
5.如权利要求4所述的方法,其特征在于,所述将所述接口处理函数在***服务中进行注册,包括:
在所述接口处理函数中采用反射机制动态创建请求参数;
将所述请求参数传入所述接口处理函数中的自定义函数;
获取函数返回值,并将所述函数返回值输出至所述网络通信模块以完成所述接口处理函数在所述***服务中的注册。
6.如权利要求5所述的方法,其特征在于,所述请求参数包括至少一个入参值和各入参值的数据类型,所述交互协议包括请求协议;所述将所述请求参数传入所述接口处理函数中的自定义函数,包括:
从所述请求参数中选取任一入参值作为目标入参值,根据所述目标入参值的数据类型在所述请求协议中确定目标请求字段,所述目标请求字段的数据类型与所述目标入参值的数据类型相匹配;
将所述目标入参值传入所述自定义函数的所述请求协议中的目标请求字段;
迭代上述步骤,将所述请求参数中的各入参值传入所述自定义函数中。
7.如权利要求5所述的方法,其特征在于,所述函数返回值包括各响应字段的出参值;所述将所述函数返回值输出至所述网络通信模块以完成所述接口处理函数在所述***服务中的注册,包括:
采用预设格式对所述各响应字段的出参值进行组装处理,得到回包;
将所述回包输出至所述网络通信模块以完成所述接口处理函数在所述***服务中的注册。
8.如权利要求1-7任一项所述的方法,其特征在于,所述根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档,包括:
采用轻量级标记语言基于所述路径名称和所述交互信息进行文档编写,得到基于轻量级标记语言格式的原始文档;
将所述基于轻量级标记语言格式的原始文档转换成所述目标应用程序接口的超文本标记语言格式的接口文档。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
创建文档访问路径,所述文档访问路径包括第一路径或第二路径,或者第一路径和第二路径;其中,所述第一路径用于访问所述接口文档,所述第二路径用于访问所述原始文档;
输出文档访问路径,以使得开发者基于所述文档访问路径进行文档访问。
10.一种接口开发方法,其特征在于,包括:
获取目标应用程序接口的自定义函数,并构造所述目标应用程序接口的接口处理函数;所述接口处理函数包括所述自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
解析所述自定义函数得到所述目标应用程序接口的接口路径和交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型,所述接口路径根据所述函数名确定;
根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档;
基于反射机制将所述接口处理函数及所述接口文档在***服务中进行注册。
11.如权利要求10所述的方法,其特征在于,所述方法还包括:
输出已注册的所述接口处理函数以及文档访问路径,所述文档访问路径用于访问所述接口文档。
12.一种文档生成装置,其特征在于,包括:
获取单元,用于获取目标应用程序接口的自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
确定单元,用于根据所述自定义函数中的函数名确定所述目标应用程序接口的接口路径;
解析单元,用于解析所述自定义函数中的交互协议,得到所述目标应用程序接口的交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型;
处理单元,用于根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档。
13.一种接口开发装置,其特征在于,包括:
获取单元,用于获取目标应用程序接口的自定义函数,并构造所述目标应用程序接口的接口处理函数;所述接口处理函数包括所述自定义函数,所述自定义函数至少包括函数名和交互协议,所述交互协议包括至少一个字段;
解析单元,用于解析所述自定义函数得到所述目标应用程序接口的接口路径和交互信息,所述交互信息包括各字段的字段标识及所述各字段的数据类型,所述接口路径根据所述函数名确定;
处理单元,用于根据所述路径名称和所述交互信息生成所述目标应用程序接口的接口文档;
所述处理单元,用于基于反射机制将所述接口处理函数及所述接口文档在***服务中进行注册。
14.一种服务器,包括通信接口,其特征在于,还包括:
处理器,适于实现一条或一条以上指令;以及,
计算机存储介质,所述计算机存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由所述处理器加载并执行如权利要求1-9任一项所述的文档生成方法;或者,所述计算机存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由所述处理器加载并执行如权利要求10-11任一项所述的接口开发方法。
15.一种计算机存储介质,其特征在于,所述计算机存储介质存储有一条或多条第一指令,所述一条或多条第一指令适于由处理器加载并执行如权利要求1-9任一项所述的文档生成方法;或者,所述计算机存储介质存储有一条或多条第二指令,所述一条或多条第二指令适于由所述处理器加载并执行如权利要求10-11任一项所述的接口开发方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910582473.XA CN112148356B (zh) | 2019-06-28 | 2019-06-28 | 文档生成方法、接口开发方法、装置、服务器及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910582473.XA CN112148356B (zh) | 2019-06-28 | 2019-06-28 | 文档生成方法、接口开发方法、装置、服务器及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112148356A true CN112148356A (zh) | 2020-12-29 |
CN112148356B CN112148356B (zh) | 2024-03-22 |
Family
ID=73891312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910582473.XA Active CN112148356B (zh) | 2019-06-28 | 2019-06-28 | 文档生成方法、接口开发方法、装置、服务器及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112148356B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112615779A (zh) * | 2021-02-18 | 2021-04-06 | 北京融禾昌信息技术有限公司 | 一种接口路由生成方法及装置 |
CN112748915A (zh) * | 2020-12-30 | 2021-05-04 | 山东浪潮通软信息科技有限公司 | 一种基于StimulSoft的动态扩展业务函数的方法及设备 |
CN113626074A (zh) * | 2021-06-30 | 2021-11-09 | 北京三快在线科技有限公司 | 接口文档生成方法及装置、电子设备及可读存储介质 |
CN113778423A (zh) * | 2021-09-10 | 2021-12-10 | 上海幻电信息科技有限公司 | 接口文档生成方法及*** |
CN114968332A (zh) * | 2022-05-09 | 2022-08-30 | 阿里巴巴(中国)有限公司 | Api的生成方法、电子设备和存储介质 |
CN115964028A (zh) * | 2021-10-12 | 2023-04-14 | 讯联数据(无锡)有限公司 | 第三方支付接口的快速接入方法及*** |
CN116028028A (zh) * | 2022-11-10 | 2023-04-28 | 北京百度网讯科技有限公司 | 请求函数生成方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049271A (zh) * | 2012-12-27 | 2013-04-17 | 微梦创科网络科技(中国)有限公司 | 自动生成api接口的描述文档的方法和装置 |
CN103336760A (zh) * | 2013-07-11 | 2013-10-02 | 北京信息科技大学 | 一种基于逆向工程自动生成软件文档的方法及装置 |
US20150317156A1 (en) * | 2014-05-01 | 2015-11-05 | Ca, Inc. | Systems and Methods for Automated Generation of Interactive Documentation Based on Web Application Description Language Files |
CN107766040A (zh) * | 2017-09-19 | 2018-03-06 | 深圳市买买提乐购金融服务有限公司 | 一种生成接口文档的方法、装置及计算机可读存储介质 |
CN107885499A (zh) * | 2017-10-19 | 2018-04-06 | 平安壹钱包电子商务有限公司 | 一种接口文档生成方法及终端设备 |
-
2019
- 2019-06-28 CN CN201910582473.XA patent/CN112148356B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049271A (zh) * | 2012-12-27 | 2013-04-17 | 微梦创科网络科技(中国)有限公司 | 自动生成api接口的描述文档的方法和装置 |
CN103336760A (zh) * | 2013-07-11 | 2013-10-02 | 北京信息科技大学 | 一种基于逆向工程自动生成软件文档的方法及装置 |
US20150317156A1 (en) * | 2014-05-01 | 2015-11-05 | Ca, Inc. | Systems and Methods for Automated Generation of Interactive Documentation Based on Web Application Description Language Files |
CN107766040A (zh) * | 2017-09-19 | 2018-03-06 | 深圳市买买提乐购金融服务有限公司 | 一种生成接口文档的方法、装置及计算机可读存储介质 |
CN107885499A (zh) * | 2017-10-19 | 2018-04-06 | 平安壹钱包电子商务有限公司 | 一种接口文档生成方法及终端设备 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112748915A (zh) * | 2020-12-30 | 2021-05-04 | 山东浪潮通软信息科技有限公司 | 一种基于StimulSoft的动态扩展业务函数的方法及设备 |
CN112748915B (zh) * | 2020-12-30 | 2022-10-25 | 浪潮通用软件有限公司 | 一种基于StimulSoft的动态扩展业务函数的方法及设备 |
CN112615779A (zh) * | 2021-02-18 | 2021-04-06 | 北京融禾昌信息技术有限公司 | 一种接口路由生成方法及装置 |
CN113626074A (zh) * | 2021-06-30 | 2021-11-09 | 北京三快在线科技有限公司 | 接口文档生成方法及装置、电子设备及可读存储介质 |
CN113778423A (zh) * | 2021-09-10 | 2021-12-10 | 上海幻电信息科技有限公司 | 接口文档生成方法及*** |
CN113778423B (zh) * | 2021-09-10 | 2024-03-01 | 上海幻电信息科技有限公司 | 接口文档生成方法及*** |
CN115964028A (zh) * | 2021-10-12 | 2023-04-14 | 讯联数据(无锡)有限公司 | 第三方支付接口的快速接入方法及*** |
CN115964028B (zh) * | 2021-10-12 | 2023-11-03 | 讯联数据(无锡)有限公司 | 第三方支付接口的快速接入方法及*** |
CN114968332A (zh) * | 2022-05-09 | 2022-08-30 | 阿里巴巴(中国)有限公司 | Api的生成方法、电子设备和存储介质 |
CN116028028A (zh) * | 2022-11-10 | 2023-04-28 | 北京百度网讯科技有限公司 | 请求函数生成方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112148356B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112148356B (zh) | 文档生成方法、接口开发方法、装置、服务器及存储介质 | |
US8543913B2 (en) | Identifying and using textual widgets | |
US9886268B1 (en) | Dual programming interface | |
RU2395837C2 (ru) | Механизм для обеспечения расширенных функциональных возможностей для инструкций командной строки | |
JP5047621B2 (ja) | 対話環境における構文への制約を入手し適用する機構 | |
KR20140038989A (ko) | 자동화된 사용자 인터페이스 객체 변환 및 코드 생성 | |
US10572278B2 (en) | Smart controls for user interface design and implementation | |
US9141344B2 (en) | Hover help support for application source code | |
JP2007509411A (ja) | データ駆動型コマンドライン出力を提供する機構 | |
US11443109B2 (en) | Interactive data entry validation and problem correction in a table component in a spreadsheet driven by a web service | |
US20130124969A1 (en) | Xml editor within a wysiwyg application | |
CN111753140A (zh) | Xml文件解析方法及相关设备 | |
US11704480B2 (en) | User interface for managing extended schemas | |
US7788246B2 (en) | Linguistic structure for data flow diagrams | |
US9244706B2 (en) | Command line shell command generation based on schema | |
CN116755669A (zh) | 一种基于dsl语言操作模型的低代码开发方法和工具 | |
US11782747B2 (en) | System and method for notebook processing to handle job execution in cross-cloud environment | |
Johansson et al. | Introduction to computing with python | |
US9304983B2 (en) | Method and system for Xform generation and processing application integration framework | |
CN113138767A (zh) | 代码语言转换方法、装置、电子设备及存储介质 | |
Chmielewski et al. | Declarative GUI descriptions for device-independent applications | |
CN112860259B (zh) | 界面处理方法、装置、电子设备、存储介质 | |
Sarkar | Other Useful Skills to Master | |
CN111279350B (zh) | 用于在服务管理应用接口中提供全球化特征的***和方法 | |
Mironov et al. | Building of virtual multidocuments mapping to real sources of data in situation-oriented databases |
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 |