掌桥专利:专业的专利平台
掌桥专利
首页

生成接口代码和/或接口文档的方法、装置及存储介质

文献发布时间:2023-06-19 10:32:14


生成接口代码和/或接口文档的方法、装置及存储介质

技术领域

本发明涉及开发辅助工具技术领域,尤其涉及一种生成接口代码和/或接口文档的方法、装置及存储介质。

背景技术

目前软件行业主流开发的流程是:先进行需求评审,确定架构后由后端研发工程师根据业务拆解各个功能点,然后对功能点再细化成各个功能接口。由于主流开发流程都是前后端分离的,为了让前后端的开发工作能够并行,缩短整个研发的周期,提高工作的效率,因此后端研发工程师针对每个功能接口通常都是先根据前端设备的接口编写相应的接口文档和接口代码,标明清楚该功能接口所用的协议,协议头和协议体以及编码格式等信息,供前端进行开发。但是因为目前前端设备的种类较多,每个功能接口均需要制作各个前端设备所适用的接口代码和接口文档,这个过程会占用开发人员大量的时间。

发明内容

本发明提供一种生成接口代码和/或接口文档的方法、装置及存储介质,其主要目的在于解决传统的软件开发过程中,不同类型的前端客户端在接入同一个功能接口时,需要分别编写各类前端客户端所适用的接口代码和接口文档的问题。

为实现上述目的,本发明提供一种生成接口代码和/或接口文档的方法,所述方法包括:

在已经与后端服务器建立功能接口的第一前端客户端上输入测试用例进行功能测试;

截取所述第一前端客户端与所述后端服务器之间通信的HTTP协议报文;

获取未与后端服务器建立功能接口的前端客户端的接口代码模板和/或接口文档模板;

将所述HTTP协议报文中的参数字段和参数字段值代入所述接口代码模板和/或所述接口文档模板中。

优选地,所述HTTP协议报文包括:所述第一前端客户端发送至所述后端服务器的请求报文和所述后端服务器发送至所述第一前端客户端的响应报文;所述请求报文和所述响应报文中包含有所述功能接口通信所需的参数字段和参数字段值。

优选地,在截取所述第一前端客户端与所述后端服务器之间通信的HTTP协议报文时,依次截取所述请求报文的请求报文头和请求报文体以及所述响应报文的响应报文头和响应报文体,若所述响应报文头的内容表示所述功能接口异常则停止截取所述响应报文体。

优选地,在已经与后端服务器建立功能接口的第一前端客户端上输入测试用例进行功能测试的次数不少于两次。

优选地,截取每次功能测试的所述第一前端客户端与所述后端服务器之间通信的HTTP协议报文后,对每次功能测试的HTTP协议报文进行格式化保存,然后将格式化保存的所述HTTP协议报文汇总,合并其中重复出现的参数字段及参数字段值,并将每次功能测试中均出现的参数字段及参数字段值标注为必传参数,形成HTTP协议报文库。

优选地,在将所述HTTP协议报文中的参数字段和参数字段值代入所述接口代码模板和/或所述接口文档模板中时,首先在所述HTTP协议报文库中检索所述接口代码模板和/或所述接口文档模板所需的参数字段和参数字段值,若存在未被检索的必传参数,则将所述必传参数补入所述接口代码模板和/或所述接口文档模板内。

优选地,在将所述HTTP协议报文中的参数字段和参数字段值代入所述接口代码模板和/或所述接口文档模板中时,若所述HTTP协议报文库中存在错误码和/或错误提示,则在所述接口代码模板和/或所述接口文档模板中补入补偿措施和/或弹出提示框的代码。

为实现上述目的,本发明还提供一种接口代码和/或接口文档生成装置,所述装置包括:

HTTP协议报文截取单元,用于截取并存储前端客户端与后端服务器间对功能接口进行功能测试时的HTTP协议报文;

HTTP协议报文分析单元,用于分析所述HTTP协议报文,对多个HTTP协议报文的参数字段和参数字段值进行合并、分类处理;

代码及文档生成单元,用于将HTTP协议报文中的参数字段和参数字段值代入接口代码模板和/或接口文档模板中,从而生成接口代码模板和/或接口文档模板。

为实现上述目的,本发明还提供一种电子设备,该电子设备包括:

存储器及处理器,所述存储器中存储有接口代码和/或接口文档生成程序,所述接口代码和/或接口文档生成程序被所述处理器执行时实现如上所述的生成接口代码和/或接口文档的方法的步骤。

为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有接口代码和/或接口文档生成程序,所述接口代码和/或接口文档生成程序被处理器执行时,实现如上所述的生成接口代码和/或接口文档的方法的步骤。

本发明提出的生成接口代码和/或接口文档的方法、装置及计算机可读存储介质,通过对已经与后端服务器建立功能接口的第一前端客户端上输入测试用例进行功能测试,然后收集后端服务器与第一前端客户端之间通信的HTTP协议报文,之后对该HTTP协议报文进行分析,获取功能接口的请求方式、请求接口、接口地址等接口相关的参数信息,然后将所述参数信息分别代入各类前端客户端的接口文档模板和接口代码模板中,即可生成未与后端服务器建立功能接口的前端客户端所需的接口代码和接口文档。通过上述方法,后端研发工程师对于一个功能接口只需编写一个类型的前端客户端所需接口代码和接口文档,再根据该前端客户端对功能接口测试时的HTTP协议报文即可生成其他类型的前端客户端所需的接口代码和接口文档,大大缩短了整个研发的周期,提高工作的效率。

附图说明

图1为根据本发明生成接口代码和/或接口文档的方法具体实施例的应用环境示意图;

图2为图1中接口代码和/或接口文档生成程序具体实施例的模块示意图;

图3为本发明生成接口代码和/或接口文档的方法具体实施例的流程图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本发明提供了一种生成接口代码和/或接口文档的方法,应用于一种电子设备1。参照图1所示,为本发明生成接口代码和/或接口文档的方法较佳实施例的应用环境示意图。

在本实施例中,电子设备1可以是服务器、智能手机、平板电脑、便携计算机、桌上型计算机等具有运算功能的终端设备。

该电子设备1包括:处理器12、存储器11、网络接口14及通信总线13。

存储器11包括至少一种类型的可读存储介质。所述至少一种类型的可读存储介质可为如闪存、硬盘、多媒体卡、卡型存储器等的非易失性存储介质。在一些实施例中,所述可读存储介质可以是所述电子设备1的内部存储单元,例如该电子设备1的硬盘。在另一些实施例中,所述可读存储介质也可以是所述电子设备1的外部存储器11,例如所述电子设备1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。

在本实施例中,所述存储器11的可读存储介质通常用于存储安装于所述电子设备1的接口代码和/或接口文档生成程序10等。所述存储器11还可以用于暂时地存储已经输出或者将要输出的数据。

处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU),微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行接口代码和/或接口文档生成程序10等。

网络接口14可选地可以包括标准的有线接口、无线接口(如WI~FI接口),通常用于在该电子设备1与其它电子设备之间建立通信连接。

通信总线13用于实现这些组件之间的连接通信。

图1仅示出了具有组件11~14的电子设备1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

可选地,该电子设备1还可以包括用户接口,用户接口可以包括输入单元比如键盘(Keyboard)、语音输入装置比如麦克风(microphone)等具有语音识别功能的设备、语音输出装置比如音响、耳机等,可选地用户接口还可以包括标准的有线接口、无线接口。

可选地,该电子设备1还可以包括显示器,显示器也可以称为显示屏或显示单元。在一些实施例中可以是LED显示器、液晶显示器、触控式液晶显示器以及有机发光二极管(Organic Light~Emitting Diode,OLED)触摸器等。显示器用于显示在电子设备1中处理的信息以及用于显示可视化的用户界面。

可选地,该电子设备1还包括触摸传感器。所述触摸传感器所提供的供用户进行触摸操作的区域称为触控区域。此外,这里所述的触摸传感器可以为电阻式触摸传感器、电容式触摸传感器等。而且,所述触摸传感器不仅包括接触式的触摸传感器,也可包括接近式的触摸传感器等。此外,所述触摸传感器可以为单个传感器,也可以为例如阵列布置的多个传感器。

此外,该电子设备1的显示器的面积可以与所述触摸传感器的面积相同,也可以不同。可选地,将显示器与所述触摸传感器层叠设置,以形成触摸显示屏。该装置基于触摸显示屏侦测用户触发的触控操作。

可选地,该电子设备1还可以包括射频(Radio Frequency,RF)电路,传感器、音频电路等等,在此不再赘述。

在图1所示的装置实施例中,作为一种计算机存储介质的存储器11中可以包括操作系统、以及接口代码和/或接口文档生成程序10;处理器12执行存储器11中存储的接口代码和/或接口文档生成程序10时实现如下步骤:

在已经与后端服务器建立功能接口的第一前端客户端上输入测试用例进行功能测试;

截取所述第一前端客户端与所述后端服务器之间通信的HTTP协议报文;

获取未与后端服务器建立功能接口的前端客户端的接口代码模板和/或接口文档模板;

将所述HTTP协议报文中的参数字段和参数字段值代入所述接口代码模板和/或所述接口文档模板中。

优选地,所述HTTP协议报文包括:所述第一前端客户端发送至所述后端服务器的请求报文和所述后端服务器发送至所述第一前端客户端的响应报文;所述请求报文和所述响应报文中包含有所述功能接口通信所需的参数字段和参数字段值。

优选地,在截取所述第一前端客户端与所述后端服务器之间通信的HTTP协议报文时,依次截取所述请求报文的请求报文头和请求报文体以及所述响应报文的响应报文头和响应报文体,若所述响应报文头的内容表示所述功能接口异常则停止截取所述响应报文体。

优选地,在已经与后端服务器建立功能接口的第一前端客户端上输入测试用例进行功能测试的次数不少于两次,且每次的测试用例均不相同。

优选地,截取每次功能测试的所述第一前端客户端与所述后端服务器之间通信的HTTP协议报文后,对每次功能测试的HTTP协议报文进行格式化保存,然后将格式化保存的所述HTTP协议报文汇总,合并其中重复出现的参数字段及参数字段值,并将每次功能测试中均出现的参数字段及参数字段值标注为必传参数,形成HTTP协议报文库。

优选地,在将所述HTTP协议报文中的参数字段和参数字段值代入所述接口代码模板和/或所述接口文档模板中时,首先在所述HTTP协议报文库中检索所述接口代码模板和/或所述接口文档模板所需的参数字段和参数字段值,若存在未被检索的必传参数,则将所述必传参数补入所述接口代码模板和/或所述接口文档模板内。

优选地,在将所述HTTP协议报文中的参数字段和参数字段值代入所述接口代码模板和/或所述接口文档模板中时,若所述HTTP协议报文库中存在错误码和/或错误提示,则在所述接口代码模板和/或所述接口文档模板中补入补偿措施和/或弹出提示框的代码。

在其他实施例中,接口代码和/或接口文档生成程序10还可以被分割为一个或者多个模块,一个或者多个模块被存储于存储器11中,并由处理器12执行,以完成本发明。本发明所称的模块是指能够完成特定功能的一系列计算机程序指令段。参照图2所示,为图1中接口代码和/或接口文档生成程序10较佳实施例的程序模块图。所述数字签名生成程序10可以被分割为:HTTP协议报文截取单元101、HTTP协议报文分析单元102和代码及文档生成单元103。所述模块101~103所实现的功能或操作步骤均与上文类似,此处不再详述,示例性地,例如其中:

HTTP协议报文截取单元,用于截取并存储前端客户端与后端服务器间对功能接口进行功能测试时的HTTP协议报文;

HTTP协议报文分析单元,用于分析所述HTTP协议报文,对多个HTTP协议报文的参数字段和参数字段值进行合并、分类处理;

代码及文档生成单元,用于将HTTP协议报文中的参数字段和参数字段值代入接口代码模板和/或接口文档模板中,从而生成接口代码模板和/或接口文档模板。

换言之,本发明还提供过一种接口代码和/或接口文档生成装置,所述装置包括:

HTTP协议报文截取单元,用于截取并存储前端客户端与后端服务器间对功能接口进行功能测试时的HTTP协议报文;

HTTP协议报文分析单元,用于分析所述HTTP协议报文,对多个HTTP协议报文的参数字段和参数字段值进行合并、分类处理;

代码及文档生成单元,用于将HTTP协议报文中的参数字段和参数字段值代入接口代码模板和/或接口文档模板中,从而生成接口代码模板和/或接口文档模板。

此外,本发明还提供一种生成接口代码和/或接口文档的方法。参照图3所示,为本发明生成接口代码和/或接口文档的方法较佳实施例的流程图。该方法可以由一个装置执行,该装置可以由软件和/或硬件实现。

在本实施例中,生成接口代码和/或接口文档的方法包括:步骤S110~步骤S140。

步骤S110:在已经与后端服务器建立功能接口的第一前端客户端上输入测试用例进行功能测试。

具体地,该功能测试即将测试用例的参数输入第一前端客户端中,对该功能接口进行测试工作。由于前端客户端与后端服务器采用HTTP协议通讯,测试时首先第一前端客户端会向后端服务器发送请求报文,该请求报文包含有请求报文头和请求报文体,其中包含有该功能接口相关的参数字段和参数字段值;后端服务器在收到该请求报文后,会核实其中的相关参数是否与该功能接口相符,符合之后会向第一前端客户端发送响应报文,该响应报文包括响应报文头和响应报文体。上述请求报文头、请求报文体、响应报文头和响应报文体共同组成了前端客户端与后端服务器间通信的HTTP协议报文。

以一登录功能的接口为例,若一个与后端服务器建立该登录功能接口连接的第一前端客户端为网页端,即网页浏览器,在进行功能测试时,需要在浏览器上输入测试用例,即用户名username和密码password,向后端服务器发送登录请求。此时,第一前端客户端会向后端服务器发送请求报文,包括请求报文头和请求报文体;后端服务器在收到该请求后,根据请求报文中的内容,核实处理后会向第一前端客户端发送响应报文,告知其是否登录成功。

其中,这个过程中的请求报文头的部分格式如下:

POST/signin HTTP/1.1;

Host:xx.com.cn:8070;

Content-Type:application/json;

Accept-Type:application/json;

请求报文头中分别给出了该请求的:请求方式为"POST",在其他请求中该请求方式也可能是GET、PUT、DELETE、OPTION等中的一种;请求接口地址为"/signin";该请求接口的服务器Host的地址为"xx.com.cn:8070";该请求的数据编码格式Content-Type为"application/json";该请求可接受的数据编码格式Accept-Type为"application/json"。在一些请求中还会给出是否需要Cookie,即请求报文头中是否有Cookie:xxx,存在的话即该请求需要Cookie。

这个过程中的请求报文体的部分格式如下:

{"username":"zhangsan","password":"密文…"};

请求报文体中给出了两个参数字段:"username"和"password";字段值的类型为字符串。

这个过程中的响应报文头的部分格式如下:

HTTP/1.1 200OK;

Set-Cookie:a=b;

Content-Type:application/json;

响应报文头中分别给出了:该登录功能接口是否正常,即HTTP响应为200,证明是正常的响应,结合响应报文体中的"errcode"值,其值为0表示接口正常,非0则不正常;返回的编码格式Content-Type的值为"application/json";其中包含有Set-Cookie,说明有向前端客户端返回了cookie值。

这个过程中的响应报文体的部分格式如下:

{"errcode":0,"msg":"登录成功","data":{"username":"zhangsan"}}

响应报文体中给出了两层数据共三个参数字段,分别是第一层的"errcode"和"msg",第二层的"data"中包含一个参数字段,即"username"。其中的"errcode"为报错代码,其值为0则表示接口正常,非0则不正常;"msg"为提示信息,该报文中为“登录正常”;"data"为传输给前端客户端的信息,该登录接口的响应报文体中仅有用户名"username"为"zhangsan"。

在上述HTTP协议报文中包含有多种参数字段和参数字段值,该参数字段和参数字段值即用于后续生成接口代码和接口文档的过程中。此外,该步骤中的功能测试可以进行多次,每次采取不同的测试用例,从而生成多个HTTP协议报文。

步骤S120:截取所述第一前端客户端与所述后端服务器之间通信的HTTP协议报文。

具体地,需要依次截取所述请求报文的请求报文头和请求报文体以及所述响应报文的响应报文头和响应报文体,若所述响应报文头的内容表示所述功能接口异常则停止截取所述响应报文体。

此处,截取HTTP协议报文有多种方式,例如:可以通过浏览器进入debugger模式可以查看所有的请求报文头、请求报文体、响应报文头和响应报文体的详细信息,然后可以保存到文件中;另外在Linux系统可使用curl工具来请求上述功能接口,然后通过命令curl将上述请求报文和响应报文保存到文件中;此外还可通过抓包工具,将请求报文和响应报文保存到文件中;另外,后端服务器在运行当前功能接口的服务时可以通过编码的方式直接拿到请求报文和响应报文的所有参数,直接保存即可。

在截取请求报文头后,需要对该请求报文头进行分析,确定该功能请求的请求方式是哪一种,该功能请求的接口地址是什么,该功能请求的数据编码格式哪一种,该功能请求是否需要cookie,以及该功能请求的可以接受的数据编码格式是哪一种等该功能接口的请求报文中包含的各类参数字段和参数字段值,之后将其格式化存储,例如存储为文本文档,保留其中的换行符。

在截取请求报文体后,需要对该请求报文体进行分析,确定当前传的参数字段有哪些,字段值的数据类型是数值类型还是字符串类型还是布尔类型等。例如,步骤S110中的请求报文体中,共包含有两个参数字段:"username"和"password";字段值的类型为字符串。之后将其格式化存储,例如存储为文本文档,保留其中的换行符。

在截取响应报文头后,需要对该响应报文头进行分析,确定该功能接口是否正常,返回的编码格式是json还是html还是text文本,是否返回了cookie等。如果该功能接口正常则可以继续截取响应报文体,如果不正常可以不用截取响应报文体。

例如,步骤S110中的响应报文头中,HTTP响应为200,证明是正常的响应,结合响应报文体中的errcode值,其值为0表示接口正常,非0则不正常。返回的编码格式即为Content-Type的值,此例中为"application/json",可以看到响应的数据类型是application/json,后续便可根据json的编码格式来解析响应报文体;其中包含有Set-Cookie,说明有返回了cookie值。之后将上述响应报文头中的参数字段和参数字段值格式化存储,例如存储为文本文档,保留其中的换行符。

在截取响应报文体后,需要对该响应报文体进行分析,确定当前接口返回的参数字段名称、字段类型。例如,步骤S110中的响应报文体中,可以确定响应报文体中给出了两层数据共三个参数字段,分别是第一层的"errcode"和"msg",第二层的"data"中包含一个参数字段,即"username"。其中,"errcode"的字段类型是整形int,"msg"、和"username"的字段类型是字符串string,"data"的字段类型是json对象类型。这里的判断方法是:有引号包括的就是字符串类型,使用{}包括的是json对象类型。之后将上述响应报文体中的参数字段和参数字段值格式化存储,例如存储为文本文档,保留其中的换行符。

最后将上述请求报文头、请求报文体、响应报文头和响应报文体的格式化文本汇总为一个文本文档且命名唯一,即为当次功能测试的HTTP协议报文。

若步骤S110中进行了多次功能测试,则将每次生成的HTTP协议报文,进行汇总整理,合并其中的重复项,并且把其中每次均出现的参数字段和参数字段值标记为必传参数,最终形成一个HTTP协议报文库。

步骤S130:获取未与后端服务器建立功能接口的前端客户端的接口代码模板和/或接口文档模板。

具体地,每种类型的前端客户端,例如安卓、ios、java、php、go等,均具有各自所适用的接口代码模板和接口文档模板,在应用于不同的功能接口时,需要分别制作与该功能接口适应的接口代码和接口文档。接口文档模板和接口代码模板中只具有功能接口所需要的各类参数的名称,即上述参数字段,而参数的值则用占位符表示。例如一个接口文档的模板中至少包括:接口名称、请求方式、请求格式等参数,在编写时,需要依据功能接口的种类并结合前端客户端的类型,补充相应的参数的值。

步骤S140:将上述HTTP协议报文库中的参数字段和参数字段值代入上述接口代码模板和/或上述接口文档模板中。

具体地,首先在上述HTTP协议报文库中检索步骤S130中的接口代码模板和/或接口文档模板中所需的参数字段和参数字段值,若具有对应的参数字段和参数字段值则将其写入该接口代码模板和/或接口文档模板中;若存在HTTP协议报文库中不存在的参数字段和参数字段值则根据功能接口及前端客户端的具体信息进行补写即可,此处的补写与现有技术中编写接口代码和接口文档的方式相同,不再赘述;另外,若上述HTTP协议报文库中的必传参数存在未写入该接口文档模板和/或接口代码模板的情况,则将该必传参数主动补入该接口文档模板或接口代码模板中,具体补入时,优先同类型的参数字段位于相同的部分,若无同类型的参数字段则将其单独补入接口文档模板和/或接口代码模板中;同时对于其它未在每次功能测试中均出现的参数字段和参数字段值,同样适用该方法将其补入接口文档模板和接口代码模板中。

此外,若HTTP协议报文库中存在错误码和/或错误提示,则在所述接口代码模板和/或所述接口文档模板中需要补入补偿措施和/或弹出提示框的代码,具体补入方法需要依据功能接口及前端客户端的具体信息进行,且此部分代码在接口文档模板和接口代码模板中是单独列出的,例如,java中以枚举类(enum)来存放,同时,以上述登陆接口为例,若存在错误码或错误信息,且需要再前端客户端进行显示,则在上述中接口文档模板和接口代码模板中单独补入此部分的代码,具体为:Public enum ErrorCodeEnum

{E_3001("登录失败"),

E_3002("用户名或密码错误"),

……}

设置此部分代码后,用户在登录时,若未能成功登陆则会弹出提示信息,告知用户所输入的用户名或密码错误,便于用户知晓相关信息。

至此,本次接口文档和/或接口代码的生成过程结束,最终可以获得其它未与后端服务器建立功能接口连接的前端客户端的接口文档和/或接口代码,有效减少甚至避免了此部分接口代码和/或接口文档编写的工作。

本发明之计算机可读存储介质的具体实施方式与上述生成接口代码和/或接口文档的方法、装置、电子设备的具体实施方式大致相同,在此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

相关技术
  • 生成接口代码和/或接口文档的方法、装置及存储介质
  • 接口文档生成与查询方法、装置及计算机可读存储介质
技术分类

06120112587963