CN112463261A - 接口调用方法及装置 - Google Patents

接口调用方法及装置 Download PDF

Info

Publication number
CN112463261A
CN112463261A CN202011315014.4A CN202011315014A CN112463261A CN 112463261 A CN112463261 A CN 112463261A CN 202011315014 A CN202011315014 A CN 202011315014A CN 112463261 A CN112463261 A CN 112463261A
Authority
CN
China
Prior art keywords
interface
document
calling
interface document
parameter
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
Application number
CN202011315014.4A
Other languages
English (en)
Other versions
CN112463261B (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 Dajia Internet Information Technology Co Ltd
Original Assignee
Beijing Dajia Internet 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 Dajia Internet Information Technology Co Ltd filed Critical Beijing Dajia Internet Information Technology Co Ltd
Priority to CN202011315014.4A priority Critical patent/CN112463261B/zh
Publication of CN112463261A publication Critical patent/CN112463261A/zh
Application granted granted Critical
Publication of CN112463261B publication Critical patent/CN112463261B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)
  • Document Processing Apparatus (AREA)

Abstract

本公开实施例关于一种接口调用方法及装置,属于互联网技术领域。该方法包括:获取第一接口文档;校验第一接口文档中的各项特征参数的内容是否符合各自对应的第一接口规范,并在第一接口文档中的操作标识不符合对应的第一接口规范的情况下,将操作标识校正为预设标识;第一接口文档中的各项特征参数的内容均符合各自对应的第一接口规范的情况下,基于校正后的第一接口文档生成目标类型的接口调用代码;通过接口调用代码调用后端服务器提供的第一接口。本公开实施例能够保证在利用第一接口文档生成接口调用代码时,第一接口文档中的各项特征参数能够符合各自对应的第一接口规范,且通过校正操作标识为预设标识,保证了接口调用代码的稳定性。

Description

接口调用方法及装置
技术领域
本公开实施例涉及互联网技术领域,尤其涉及接口调用方法及装置。
背景技术
在互联网设计和运作的过程中,经常需要前端设备和后端服务器之间进行数据协作,前端设备可能需要对后端接口进行调用,接口调用需要依赖于用于调用后端接口的接口调用代码。接口调用代码是基于后端提供的接口文档生成的,接口文档是用来描述后端所提供的接口的相关信息以及接口传输的参数和数据的相关信息等。
相关技术中,在接口调用的方法中,包括基于Java注释提取接口文档、基于swagger文档生成接口调用代码的技术体系,但是,该体系虽然能够基于接口文档生成接口调用代码,但是所生成的接口调用代码中的内容容易随着接口文档的变更出现变动,接口调用代码的稳定性差,进而导致前端设备与后端服务器利用接口调用代码进行数据交互时,容易出现逻辑混乱的情况。
发明内容
本公开实施例提供一种接口调用方法及装置,以至少解决相关技术中用于接口调用的接口调用代码不稳定的问题。本公开实施例的技术方案如下:
根据本公开实施例的第一方面,提供一种接口调用方法,包括:
获取第一接口文档;
校验所述第一接口文档中的各项特征参数的内容是否符合各自对应的第一接口规范,并在所述第一接口文档中的操作标识不符合对应的所述第一接口规范的情况下,将所述操作标识校正为预设标识;所述各项特征参数包括所述操作标识;
在所述第一接口文档中的各项特征参数的内容均符合各自对应的所述第一接口规范的情况下,基于校正后的所述第一接口文档生成目标类型的接口调用代码;其中,在所述操作标识不符合所述第一接口规范的情况下,所述接口调用代码中包括所述预设标识;
通过所述接口调用代码调用后端服务器提供的第一接口。
一种可选的实施例中,所述获取第一接口文档,包括:
获取前端设备中保存的原始接口文档;
接收所述后端服务器传输的第二接口文档;
根据所述第二接口文档对所述原始接口文档进行增量更新,得到所述第一接口文档。
一种可选的实施例中,所述接收所述后端服务器传输的第二接口文档,包括:
接收所述后端服务器传输的第一类型的所述第二接口文档;
或者,
接收所述后端服务器传输的第二类型的所述第二接口文档;
按照预设转换规则,将所述第二接口文档的类型转换为所述第一类型。
一种可选的实施例中,所述按照预设转换规则,将所述第二接口文档的类型转换为所述第一类型,包括以下至少一项:
将所述第二类型的所述第二接口文档中的接口分类信息,转换为所注解标签信息;
将所述第二类型的所述第二接口文档中的接口统一资源定位符和方法,转换为操作标识;
将所述第二类型的所述第二接口文档中的请求主体和/或响应主体,转换为数据传输对象;
将所述第二类型的所述第二接口文档中的第一数据类型,转换为第二数据类型。
一种可选的实施例中,所述根据所述第二接口文档对所述原始接口文档进行增量更新,包括:
将所述第二接口文档与所述第一接口文档进行比对,得到所述第二接口文档与所述第一接口文档的第一差异信息;
根据所述第一差异信息对所述第一接口文档进行更新。
一种可选的实施例中,所述得到所述第二接口文档与所述第一接口文档的第一差异信息之后,所述根据所述第一差异信息对所述第一接口文档进行更新之前,还包括:
响应于针对第三控件的第一操作,按照所述第三控件对应的显示方式显示所述第一差异信息;其中,所述显示方式包括以下任意一种:显示全部所述第一差异信息、显示所述第一差异信息中的新增信息、显示所述第一差异信息中的删除信息、显示所述第一差异信息中的变更信息、不显示。
一种可选的实施例中,所述根据所述第一差异信息对所述第一接口文档进行更新,包括:
响应于针对第四控件的第二操作,利用所述第四控件对应的第二差异信息更新所述第一接口文档;其中,所述第二差异信息包括以下任意一项:全部所述第一差异信息、所述第一差异信息中的新增信息、所述第一差异信息中的删除信息、所述第一差异信息中的变更信息、无信息。
一种可选的实施例中,所述第二接口文档按照第二接口规范进行设置;其中,所述第二接口规范包括以下至少一项:
注解标签的取值符合第一预设取值范围,所述注解标签的取值不能为空且不可变更;
数据传输对象的名称取值符合第二预设取值范围且不可变更;
接口统一资源定位符满足预设数据格式且不可变更;
方法不可变更;
参数命名格式为驼峰格式且不可变更。
一种可选的实施例中,所述校验所述第一接口文档中的各项特征参数的内容是否符合对应的第一接口规范,包括以下至少一项:
校验所述第一接口文档中的所述接口统一资源定位符是否符合所述预设数据格式;
校验所述第一接口文档中的注解标签的取值是否符合所述第一预设取值范围;
校验所述第一接口文档中的参数命名格式是否为驼峰格式。
一种可选的实施例中,所述接口调用代码中的各项特征参数设置于同一个对象内。
一种可选的实施例中,所述通过所述接口调用代码调用后端服务器提供的第一接口,包括:
获取前端代码输入至所述接口调用代码中的调用参数;
校验所述调用参数是否满足所述第一接口对应的预设参数规范;
在所述调用参数满足所述第一接口对应的预设参数规范的情况下,调用所述第一接口。
一种可选的实施例中,所述校验所述调用参数是否满足所述第一接口对应的预设参数规范,包括以下至少一项:
校验所述调用参数中是否存在所述第一接口对应的目标参数;
校验所述调用参数的格式是否符合所述第一接口对应的目标格式;
校验所述调用参数的数据类型是否符合所述第一接口对应的目标数据类型。
一种可选的实施例中,在所述调用参数满足所述第一接口对应的预设参数规范的情况下,调用所述第一接口之后,所述方法还包括:
获取所述后端服务器通过所述第一接口返回的目标数据;
校验所述目标数据的格式是否满足所述第一接口文档的内容;
在所述目标数据的格式满足所述第一接口文档的内容的情况下,输出所述目标数据。
一种可选的实施例中,所述目标类型为TypeScript类型或JavaScript类型。
根据本公开实施例的第二方面,提供一种接口调用装置,其特征在于包括:
文档获取模块,被配置为执行获取第一接口文档;
第一校验模块,被配置为执行校验所述第一接口文档中的各项特征参数的内容是否符合各自对应的第一接口规范,并在所述第一接口文档中的操作标识不符合对应的所述第一接口规范的情况下,将所述操作标识校正为预设标识;所述各项特征参数包括所述操作标识;
代码生成模块,被配置为执行在所述第一接口文档中的各项特征参数的内容均符合各自对应的所述第一接口规范的情况下,基于校正后的所述第一接口文档生成目标类型的接口调用代码;其中,在所述操作标识不符合所述第一接口规范的情况下,所述接口调用代码中包括所述预设标识;
接口调用模块,用于通过所述接口调用代码调用后端服务器提供的第一接口。
一种可选的实施例中,所述文档获取模块包括:
第一获取单元,被配置为执行获取前端设备中保存的原始接口文档;
第二获取单元,被配置为执行接收所述后端服务器传输的第二接口文档;
更新单元,被配置为执行根据所述第二接口文档对所述原始接口文档进行增量更新,得到所述第一接口文档。
一种可选的实施例中,所述第二获取单元,包括:
第一接收单元,被配置为执行接收所述后端服务器传输的第一类型的所述第二接口文档;
或者,
第二接收单元,被配置为执行接收所述后端服务器传输的第二类型的所述第二接口文档;
转换单元,被配置为执行按照预设转换规则,将所述第二接口文档的类型转换为所述第一类型。
一种可选的实施例中,所述转换单元包括以下至少一项:
第一转换子单元,被配置为执行将所述第二类型的所述第二接口文档中的接口分类信息,转换为所注解标签信息;
第二转换子单元,被配置为执行将所述第二类型的所述第二接口文档中的接口统一资源定位符和方法,转换为操作标识;
第三转换子单元,被配置为执行将所述第二类型的所述第二接口文档中的请求主体和/或响应主体,转换为数据传输对象;
第四转换子单元,被配置为执行将所述第二类型的所述第二接口文档中的第一数据类型,转换为第二数据类型。
一种可选的实施例中,所述更新单元包括:
差异比对子单元,被配置为执行将所述第二接口文档与所述第一接口文档进行比对,得到所述第二接口文档与所述第一接口文档的第一差异信息;
差异更新子单元,被配置为执行根据所述第一差异信息对所述第一接口文档进行更新。
一种可选的实施例中,所述更新单元还包括:
显示单元,被配置为执行响应于针对第三控件的第一操作,按照所述第三控件对应的显示方式对所述第一差异信息进行显示;其中,所述显示方式包括以下任意一种:显示全部所述第一差异信息、显示所述第一差异信息中的新增信息、显示所述第一差异信息中的删除信息、显示所述第一差异信息中的变更信息、不显示。
一种可选的实施例中,所述差异更新子单元,具体被配置为执行:
响应于针对第四控件的第二操作,利用所述第四控件对应的第二差异信息更新所述第一接口文档;其中,所述第二差异信息包括以下任意一项:全部所述第一差异信息、所述第一差异信息中的新增信息、所述第一差异信息中的删除信息、所述第一差异信息中的变更信息、无信息。
一种可选的实施例中,所述第一校验模块,包括以下至少一项:
第一校验单元,被配置为执行校验所述第一接口文档中的所述接口统一资源定位符是否符合所述预设数据格式;
第二校验单元,被配置为执行校验所述第一接口文档中的注解标签的取值是否符合所述第一预设取值范围;
第三校验单元,被配置为执行校验所述第一接口文档中的参数命名格式是否为驼峰格式。
一种可选的实施例中,所述接口调用模块包括:
参数获取单元,被配置为执行获取前端代码输入至所述接口调用代码中的调用参数;
第二校验单元,被配置为执行校验所述调用参数是否满足所述第一接口对应的预设参数规范;
调用单元,被配置为执行在所述调用参数满足所述第一接口对应的预设参数规范的情况下,调用所述第一接口。
一种可选的实施例中,所述第二校验模块包括以下至少一项:
第四校验单元,被配置为执行校验所述调用参数中是否存在所述第一接口对应的目标参数;
第五校验单元,被配置为执行校验所述调用参数的格式是否符合所述第一接口对应的目标格式;
第六校验单元,被配置为执行校验所述调用参数的数据类型是否符合所述第一接口对应的目标数据类型。
一种可选的实施例中,所述装置还包括:
数据获取模块,被配置为执行获取所述后端服务器通过所述第一接口返回的目标数据;
第三校验模块,被配置为执行校验所述目标数据的格式是否满足所述第一接口文档的内容;
输出模块,被配置为执行在所述目标数据的格式满足所述第一接口文档的内容的情况下,输出所述目标数据。
根据本公开实施例的第三方面,提供一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如第一方面所述的接口调用方法。
根据本公开实施例的第四方面,提供一种存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行第一方面所述的接口调用方法。
根据本公开实施例的第五方面,提供一种计算机程序产品,包括程序或指令,以使程序或指令被执行时,实现如第一方面所述的接口调用方法。
本公开实施例的实施例提供的技术方案至少带来以下有益效果:
本公开实施例中,在获取到第一接口文档后,能够对第一接口文档中各项特征参数的内容进行校验,确认这些参数的内容是否满足各自对应的第一接口规范。在各项特征参数的内容符合各自对应的第一接口规范的情况下,再基于第一接口文档生成接口调用代码,进而完成接口调用。可见,本公开实施例通过设置预设接口规范,使得用于生成接口调用代码的第一接口文档符合一定的规范,从而能够规避由于接口文档中的参数内容出现不必要的变更而导致的接口调用代码不稳定的情况。此外,本公开实施例还能够将第一接口文档中的操作标识校正为预设标识,从而避免操作标识会随着自身所注解的方法名的出现顺序而发生变更,从而进一步提高了接口调用代码的稳定性,进而提高了后续利用接口调用代码完成接口调用的成功率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开实施例。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开实施例的实施例,并与说明书一起用于解释本公开实施例的原理,并不构成对本公开实施例的不当限定。
图1是相关技术中的接口调用代码生成过程的流程图。
图2是根据一示例性实施例示出的一种接口调用方法的流程图。
图3是根据一示例性实施例示出的另一种接口调用方法的流程图。
图4是根据一示例性实施例示出的再一种接口调用方法的流程图。
图5是根据一示例性实施例示出的前端设备的显示界面示意图。
图6是根据一示例性实施例示出的又一种接口调用方法的流程图。
图7是根据一示例性实施例示出的其他一种接口调用方法的流程图。
图8是根据一示例性实施例示出的一种接口调用装置框图。
图9是根据一示例性实施例示出的电子设备的框图。
具体实施方式
为了使本领域普通人员更好地理解本公开实施例的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开实施例的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开实施例的一些方面相一致的装置和方法的例子。
在互联网设计和运作的过程中,经常需要前端设备和后端服务器之间进行数据协作,前后端进行协作时需要依赖于后端提供的接口文档。接口文档包括多种类型,比如需要进行人工维护的wiki表格、基于Java代码注解自动生成的swagger文档、前端主导的具备文档制定和数据模拟功能的yapi文档等。其中,swagger是一种生成接口文档的框架,swagger文档时基于该框架生成的接口文档。
由于相关技术中并未提供一个将接口文档自动转换为前端代码的工具,所以在实际前后端协作过程中,需要基于接口文档编写接口调用代码,后续前端设备通过接口调用代码调用后端服务器提供的接口,通过该接口获取后端提供的数据。
在相关技术中,基于Java代码注解提取文档的swagger体系里,提供了一种包括Java注解、注解解析、文档用户界面(User Interface,UI)以及生成各种语言的调用接口代码的生成代码工具(swagger-Codegen)。该方案支持生成TypeScript类型、接口调用代码,其流程参见图1所示,图1是相关技术中的接口调用代码生成过程的流程图。具体流程为:对于swagger文档110(接口文档的一种类型),生成代码工具120首先将swagger文档110转换为TypeScript序列化数组,即图1中的类型转换1201;之后将TypeScript序列化数组转换为TypeScript接口调用代码130,即图1中的语言模板1103用于描述如何将基于swagger文档110转换的TypeScript序列化数组转换成TypeScript接口调用代码130。其中,图1中的类型转换1201和语言模板1203为生成代码工具120的子进程或者子模块。
在生成代码工具120中,使用的数据转换、生成的规则至少如表1所示。
表1生成代码工具的转换规则
Figure BDA0002791084190000071
其中,上述注解指的是一种类似注释的机制,用来将信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联,对程序的元素(类、方法、成员变量)进行更直观更明了的说明。
基于以上规则可以发现,上述方案存在以下隐患:
1)在已经编写注解标签的情况下修改注解,或者未编写注解标签的情况下修改Controller Name,都会造成tags值变动,进而造成生成的文件名变动,导致接口调用代码不稳定。
2)由于operationId的后缀受方法(method)出现的顺序影响,因此在已经编写API注解的情况下注解出现重复,或者未编写注解的情况下方法名(Method Name)出现重复,且重复的方法名出现的顺序发生变动的时候,会造成operationId值变动,operationId值不具备稳定性,进而导致接口调用代码不稳定。并且,同名method转换成的operationId的前缀一样,导致operationId也不具有唯一性。
以上这些隐患容易导致生成的接口调用代码会发生不可控的变动,进而导致前端设备在利用接口调用代码时出现逻辑错乱,影响前后端之间的正常交互。
基于此,本公开实施例提供了一种接口调用方法。以下首先对该方法所应用的系统环境进行介绍。该方法可以应用于互联网系统。该互联网系统包括保存有执行上述接口调用方法的相关程序的前端设备和后端服务器。
其中,后端服务器,用于向电子设备提供工作人员编写的第一接口文档;
前端设备,用于获取第一接口文档;校验第一接口文档中的各项特征参数的内容是否符合各自对应的第一接口规范,并在第一接口文档中的操作标识不符合对应的第一接口规范的情况下,将操作标识校正为预设标识;在第一接口文档中的各项特征参数的内容均符合各自对应的第一接口规范的情况下,基于校正后的第一接口文档生成目标类型的接口调用代码;其中,接口调用代码中包括预设标识,各项特征参数包括操作标识;通过接口调用代码调用后端服务器提供的第一接口,获取后端服务器通过第一接口提供的数据。
本公开实施例中,在获取到第一接口文档后,能够对第一接口文档中各项特征参数的内容进行校验,确认这些参数的内容是否满足各自对应的第一接口规范。在各项特征参数的内容符合各自对应的第一接口规范的情况下,再基于第一接口文档生成接口调用代码,进而完成接口调用。可见,本公开实施例通过设置预设接口规范,使得用于生成接口调用代码的第一接口文档符合一定的规范,从而能够规避由于接口文档中的参数内容出现不必要的变更而导致的接口调用代码不稳定的情况。此外,本公开实施例还能够将第一接口文档中的操作标识校正为预设标识,避免操作标识会随着自身所注解的方法名的出现顺序而发生变更,从而进一步提高了接口调用代码的稳定性。
以下以接口文档为swagger文档,接口调用代码为TypeScript接口调用代码进行介绍。
后端服务器发送swagger文档至前端设备,前端设备对swagger文档中的各项特征参数的内容进行校验,确认其是否符合各自对应的第一接口规范,并将swagger文档中的操作标识operationID校正为统一资源定位符(Uniform Resource Locator,URL)+Using+Hyper超文件传输协定(Text Transfer Protocol,http)method。之后,在swagger文档中的各项特征参数的内容均符合各自对应的第一接口规范时,基于该swagger文档生成TypeScript接口调用代码。举例来看,前端设备中的前端代码向TypeScript接口调用代码中输入第一接口对应的调用参数,TypeScript接口调用代码将该调用参数发送至后端服务器提供的第一接口,完成对第一接口的调用,从而使前端设备得到第一接口传输的后端数据。
基于上述互联网系统,以下介绍本公开实施例一个或多个实施例中提供的接口调用方法,该接口调用方法应用于前端设备。图2是根据一示例性实施例示出的一种接口调用方法的流程图,如图2所示,该方法包括以下步骤。
在步骤S210中,获取第一接口文档。
其中,这里的第一接口文档可以是各种类型的接口文档,第一接口文档中所包含的内容与互联网研发过程中的实际研发内容有关,本公开实施例对此不作限定。
在步骤S220中,校验第一接口文档中的各项特征参数的内容是否符合各自对应的第一接口规范,并在第一接口文档中的操作标识不符合对应的第一接口规范的情况下,将操作标识校正为预设标识;各项特征参数包括操作标识;
通过对第一接口文档中的各项特征参数的内容进行校验,能够保证后续生成接口调用代码时所基于的各项特征参数的内容均未发生不符合规范的变更,从而保证接口调用代码的稳定性和准确性。
此外,上述步骤中,会在操作标识不符合预设标识的情况下,将操作标识校正为预设标识。预设标识会作为后续生成的接口调用代码的一部分。这里的预设标识采用下述格式:URL+Using+http method,其中,这里的URL和http method的内容取决于操作标识,不同的操作标识对应的URL和http method可能不同。。
在步骤S230中,在第一接口文档中的各项特征参数的内容均符合各自对应的第一接口规范的情况下,基于校正后的第一接口文档生成目标类型的接口调用代码;其中,在操作标识不符合第一接口规范的情况下,接口调用代码中包括预设标识;
其中,该步骤是在将第一接口文档中的操作标识校正为预设标识之后,若第一接口文档中的各项特征参数的内容均符合各自对应的第一接口规范,则基于第一接口文档生成接口调用代码;若第一接口文档中仍旧存在其他参数不符合对应的第一接口规范,则会输出错误,并停止后续操作。
这里的目标类型可以为TypeScript类型或JavaScript类型,TypeScript类型的接口调用代码为JavaScript类型的接口调用代码的超集。具体生成哪种类型的接口调用代码取决于前端设备所使用的技术类型,本公开实施例对此不作限定。
上述基于校正后的第一接口文档生成接口调用代码的过程,可以采用与图1类似的方式,将校正后的第一接口文档中的各项特征参数转换为接口调用代码中的对应参数语句。该过程本公开实施例不作特别限定。
以上各个步骤的具体实现方式将在后续进行描述。
在步骤S240中,通过接口调用代码调用后端服务器提供的第一接口。
具体的调用过程可以为,前端设备中的前端代码会向接口调用代码中输入与第一接口对应的调用参数,该调用参数应该符合第一接口对应的预设参数规范。之后,接口调用代码会将前端代码所输入的调用参数发送给对应的URL或第一接口,进而完成第一接口的调用,获取后端服务器通过第一接口传输的数据。
本公开实施例中,在获取到第一接口文档后,能够对第一接口文档中各项特征参数的内容进行校验,确认这些参数的内容是否满足各自对应的第一接口规范。在各项特征参数的内容符合各自对应的第一接口规范的情况下,再基于第一接口文档生成接口调用代码,进而完成接口调用。可见,本公开实施例通过设置预设接口规范,使得用于生成接口调用代码的第一接口文档符合一定的规范,从而能够规避由于接口文档中的参数内容出现不必要的变更而导致的接口调用代码不稳定的情况。此外,本公开实施例还能够将第一接口文档中的操作标识校正为预设标识,从而避免操作标识会随着自身所注解的方法名的出现顺序而发生变更,从而进一步提高了接口调用代码的稳定性,进而提高了后续利用接口调用代码完成接口调用的成功率。
由于在互联网的研发过程中,随着研发过程的发展,后端会不断生成新的接口,进而编写新的接口文档来对新的接口进行描述。这种情况下,相关技术中采用全量更新的方式,即会完全采用后端发送的新版本的接口文档,这种方式下,导致电子设备需要保存的数据量大。基于此,在一些实施例中,参见图3所示,图3是根据一示例性实施例示出的另一种接口调用方法的流程图。上述S210可以包括:
S211,获取前端设备中保存的原始接口文档。
S213,接收后端服务器传输的第二接口文档。
其中,步骤S211和S213之间不限定先后顺序关系,两者可以顺序执行也可以并行执行,图3仅是一种具体实现方式。
S215,根据第二接口文档对原始接口文档进行增量更新,得到第一接口文档。
本实施例中,前端设备会在本地保存之前接收到的第一接口文档,后续再次接收到后端服务器发送的第二接口文档后,会利用第二接口文档对第一接口文档进行增量更新,即仅更新两个接口文档的差异部分,这种方式下,电子设备仅需要对自身保存的数据进行少量修改即可,减少了电子设备需要修改的数据量以及需要存储的数据量。
由于前述相关技术提供的方案中,仅支持第一类型的接口文档(如swagger文档),而不支持第二类型的接口文档(例如yapi文档)。因此,为了扩大本公开实施例的适用范围,在本公开实施例的一些实现方式中,上述S213可以包括以下两种中的任意一种。
第一种情况:接收后端服务器传输的第一类型的第二接口文档。-
第二种情况:接收后端服务器传输的第二类型的第二接口文档;按照预设转换规则,将第二接口文档的类型转换为第一类型。
可见,本实施例中,可以支持第一类型的第二接口文档,也可以支持第二类型的第二接口文档,由于后续生成接口调用代码时需要依赖于swagger-Codege,因此需要将第二类型的第二接口文档转换为第一类型,例如将yapi文档转换为swagger文档。由于两种类型的接口文档均是用于对接口和数据进行描述的,且两者均具有固定的格式,因此可以将第二类型的接口文档中的参数按照第一类型的接口文档的格式规范进行转换,从而实现两种类型的接口文档之间的转换,如yapi文档和swagger文档之间的转换,从而提高本公开实施例的适用范围。
在具体实施例中,上述按照预设转换规则,将第二接口文档的类型转换为第一类型,可以包括以下至少一项:
一、将第二类型的第二接口文档中的接口分类信息,转换为所注解标签信息。
例如,将yapi文档中的接口分类信息转换为swagger文档中的注解tags信息。
接口分类信息能够表征后端服务器提供的是哪种类型的接口,在swagger文档中,这部分内容可以通过注解标签进行描述。
二、将第二类型的第二接口文档中的接口统一资源定位符和方法,转换为操作标识。
例如,将yapi文档中的URL和方法,转换为第二swagger文档中的操作标识。
接口地址是用于供前端代码对接口进行调用的,由于swagger文档中的操作标识operationID可以包括URL+http method,因此yapi文档中的接口地址和方法对应于swagger文档中的operationID。
三、将第二类型的第二接口文档中的请求主体和/或响应主体,转换为数据传输对象。
例如,将yapi文档中的请求主体和/或响应主体,转换为第二swagger文档中的数据传输对象(Data Transfer Object,DTO)。
请求主体和响应主体,是数据传输过程中处于两端的对象主体,因此yapi文档中的请求主体和响应主体即能够作为swagger文档中的数据传输对象。
四、将第二类型的第二接口文档中的第一数据类型,转换为第二数据类型。
例如,将yapi文档中的第一数据类型转换为swagger文档中的第二数据类型。
其中,第一数据类型与第二数据类型可以相同,例如,第一数据类型和第二数据类型均为String,此时可以直接将第一数据类型作为第二数据类型,来生成swagger文档的内容。第二数据类型与第二数据类型也可以不同,即yapi文档与swagger文档对于相同的数据类型可能具有不同的描述,此时需要对数据类型进行转换,例如,第一数据类型为number,对应的第二数据类型为Int。
本实施例中的接口分类信息、接口地址、方法、请求和响应主体以及数据类型等,属于接口文档包含的主要内容,因此,通过将这些信息进行转换,即能够保证生成的第二接口文档能够满足生成接口调用代码的需求。当然,在其他实施例中,上述预设转换规则还可以包括其他转换内容,本实施例对此不作限定。
以上预设转换规则具体可以参见表2所示,表2示出了一种实施例中的预设转换规则的示意表。
表2一种预设转换规则的示意表
Yapi语法 转换为swagger语法
category:接口分类 tags
URL、http method:接口地址、方法 operationId
response、request body:请求、响应主体 DTO
数据类型:number,string等 Int,String等
在另一些实施例中,如图4所示,图4是根据一示例性实施例示出的再一种接口调用方法的流程图。前述S215可以包括以下步骤。
S2151,将第二接口文档与第一接口文档进行比对,得到第二接口文档与第一接口文档的第一差异信息。
这里的比对,指的是比较第二接口文档中的哪些信息与第一接口文档中不同,具体的比较方式可以利用Diff命令实现,Diff命令是用于对不同版本的数据进行差异比对的命令。这里的第一差异信息可以包括新增信息、删除信息以及变更信息等。
新增信息,指的是第二接口文档中有、但是第一接口文档中没有的信息,例如第二接口文档包括接口A、B,但是第一接口文档中仅包含接口A,则接口B属于新增信息。
删除信息,指的是第一接口文档中有、但是第二接口文档中没有的信息,例如第一接口文档包括接口A、B,但是第二接口文档中仅包含接口B,则接口A属于删除信息。
变更信息,指的是第一接口文档和第二接口文档中均包含、但是在第一接口文档和第二接口文档中内容不同的信息,例如,第一接口文档中的URL为A,但是第二接口文档中的URL为B,即虽然第一接口文档和第二接口文档均包含URL,但是所包含的URL内容不同。
S2153,根据第一差异信息对第一接口文档进行更新,得到第一接口文档。
其中,这里的更新可以包括以下至少一种:将新增信息添加至第一接口文档;删除第一接口文档中的删除信息;按照变更信息对第一接口文档中的对应信息进行变更。该步骤中的更新可以利用Patch命令实现,Patch命令用于同步差异信息。
本实施例中,利用第二接口文档与第一接口文档之间的第一差异信息,对第一接口文档进行增量更新,从而减少了本地需要更新的信息量,提高接口文档的更新效率。
在另一些实现方式中,上述S2151之后,S2153之前,还可以包括S2152。
在步骤S2152中,响应于针对第三控件的第一操作,按照第三控件对应的显示方式显示第一差异信息。
其中,显示方式包括以下任意一种:显示全部第一差异信息、显示第一差异信息中的新增信息、显示第一差异信息中的删除信息、显示第一差异信息中的变更信息、不显示。
在上述实现方式中,如图5所示,图5是根据一示例性实施例示出的前端设备的显示界面示意图。前端设备的显示界面内可以包括多个第一选择框,每个第一选择框对应一个第一控件,用户可以自行对第一选择框进行勾选,用户所勾选的第一选择框对应的第一控件作为第三控件,后续按照第三控件对应的显示方式对第一差异信息进行显示,此外,用户还可以选择不显示第一差异信息。举例来看,这些第一选择框可以分别对应于:显示所有(即显示全部第一差异信息)、仅显示添加(仅显示第一差异信息中的新增信息)、仅显示删除(仅显示第一差异信息中的删除信息),仅显示变更(仅显示第一差异信息中的变更信息)等。
这种方式不仅使用户能够查看第一差异信息的内容,还能够使用户自行选择需要显示的部分内容,实现更加有针对性的信息显示,例如用户仅想要查看新增信息,则可以勾选新增信息对应的选择框,之后显示界面内仅显示新增信息。
在又一些实现方式中,上述S2153具体可以包括步骤S21531。
S21531,响应于针对第四控件的第二操作,利用第四控件对应的第二差异信息更新第一接口文档。
其中,第二差异信息包括以下任意一项:全部第一差异信息、第一差异信息中的新增信息、第一差异信息中的删除信息、第一差异信息中的变更信息、无信息。
在上述实现方式中,如图5所示,前端设备的显示界面内可以包括多个第二选择框,每个第二选择框对应一个第二控件,用户可以自行对第二选择框进行勾选,用户所勾选的第二选择框对应的第二控件作为第四控件,后续则按照第四控件对应的部分差异信息更新第一接口文档。举例来看,这些第二选择框可以分别对应于:全选(即第二差异信息为全部第一差异信息)、全不选(即第二差异信息为无信息)、排除删除(即第二差异信息为第一差异信息中排除删除信息之外的其他信息,例如第二差异信息为新增信息和变更信息)、仅含新增(即第二差异信息为第一差异信息中的新增信息)等。这种方式使得用户能够根据自身需求,自主选择第一接口文档中需要进行更新的部分,从而提高了用户的自主性和增量更新时的针对性,且在部分场景下,能够减少需要更新的数据量。
为了消除接口文档中由人为造成的不确定性,在再一些实施例中,前述第二接口文档需要按照第二接口规范进行设置。这里的第二接口规范可以包括以下至少一项:
一、注解标签的取值符合第一预设取值范围,注解标签的取值不能为空且不可变更。
这里限定注解标签的取值范围,是为了保证注解标签的统一性,避免出现对于注解标签的不必要的变更,并且方便后续验证注解标签是否正确有效。例如,第一取值范围可以为[a-zA-Z0-9],即注解标签的取值需要为a-z、A-Z、0-9的范围内的字符或者字符组合。
二、数据传输对象的名称取值符合第二预设取值范围且不可变更。
这里限定数据传输对象的名称取值范围,是为了保证数据传输对象的名称之间的统一性,并且方便后续验证数据传输对象的名称是否正确有效。例如,第二取值范围可以为[a-zA-Z0-9],即数据传输对象的名称需要为该范围内的字符和字符组合。
三、接口URL满足预设数据格式且不可变更。
这里的预设数据格式是用于对接口URL进行限定,从而保证各个接口URL能够按照统一的格式进行设置,从而方便后续的读取和校验操作。例如,预设数据格式可以包括:全小写,不同单词之间通过中横线连接以及接口URL以api作为前缀开头等。具体的预设数据格式可由工作人员自行设定。
四、方法不可变更。
具体可以为http方法不可更改,即所包含的方法类型不可更改。
五、参数命名格式为驼峰格式且不可变更。
骆峰格式指的是当变量名或函式名是由一个或多个单字连结在一起而构成唯一识别字时,第一个单词以小写字母开始,第二个单词的首字母大写或每一个单词的首字母都采用大写字母的格式。参数命名格式也可以采用其他格式,本实施例对此不作限定。
其中,上述第二接口规范中限定的“不可变更”,指的是后端工作人员在编写接口文档时,各项特征参数的内容应该按照预先设定的第二接口规范编写,而不能随意改变参数对应的规范。例如,第二接口规范中规定注解标签的取值需要符合[a-zA-Z0-9],若工作人员编写的接口文档中注解标签的取值为#,则表明注解标签的取值范围发生了变更。这种不可变更的限定条件,是为了保证后端所生成的接口文档的统一性和规范性,进而保证根据接口文档生成的接口调用代码的稳定性以及前后端的正常交互。若后端工作人员需要对接口文档中的参数规范进行变更时,需要人为告知前端,并统一修改第二接口规范的内容。
本实施例保证了后端服务器所提供的第二接口文档均按照固定的接口规范生成,从而消除了由于后端工作人员编写第二接口文档时的人为因素导致的接口文档的不确定性,提高了最终得到的第一接口文档的准确性,且尽可能从源头上避免了第一接口文档中存在人为导致的不必要的变更,从而提高第一接口文档的稳定性。
为了方便理解,可参见表3所示,表3示出了一种实施例中第二接口规范中核心规范的示意表。
表3为一种第二接口规范中核心规范的示意表
Figure BDA0002791084190000141
虽然第一接口文档是基于第二接口文档对第一接口文档进行增量更新后得到的,因此,通常第一接口文档满足第二接口规范,但是为了保证第一接口文档的准确性,前述S220中需要通过第一接口规范对第一接口文档进行校验。在另一实施例中,S220可以包括以下至少一项:
校验第一接口文档中的接口统一资源定位符是否符合预设数据格式。
校验第一接口文档中的注解tags标签的取值是否符合第一预设取值范围。
校验第一接口文档中的参数命名格式是否为驼峰格式。
其中,由于第一接口规范和第二接口规范均是为了限定接口文档,使其能够满足固定的格式,因此,这里的第一接口规范和第二接口规范可以相同,或者第一接口规范可以是基于第二接口规范生成的,例如,第一接口规范为第二接口规范的一部分等。本公开实施例不限定第一接口规范和第二接口规范的具体内容,但是需要保证,第一接口规范中所设定的参数规范,需要与第二接口规范中相同参数对应的规范相同,即上述预设数据格式、第一预设取值范围等,均与前述第二接口规范中限定预设数据格式和第一预设取值范围相同,这种情况下,才能够保证第一接口文档的规范性。
本实施例中,通过对第一接口文档中的接口统一资源定位符、注解标签以及参数命名格式等参数是否满足规范进行了校验,从而能够保证第一接口文档的准确性,避免部分参数出现不必要的格式变更等情况,使得后续在利用第一接口文档生成接口调用代码时,能够保证接口调用代码不会受到参数变更的影响,从而提高了接口调用代码的稳定性。
为了方便理解,基于上述实施例提供的第一接口规范,表4示出了一种实施例中第一接口规范中核心规范的示意表。
表4一种第一接口规范中核心规范的示意表
Figure BDA0002791084190000151
在另一些实施例中,在S220之后,该方法还可以包括:
在第一接口文档中存在参数的内容不符合自身对应的第一接口规范的情况下,会抛出错误,如上述表4所示。
这里的抛出错误可以为输出提示信息。例如显示错误信息,错误信息包括不符合第一接口规范的参数类型以及当前时间等信息。从而提示工作人员,当前的第一接口文档出现错误,不能继续进行后续操作,并告知工作人员及时进行处理。从而提高前后端合作时的故障处理效率和可靠性。此外,在抛出错误时,也会停止进行后续的操作,即不会再利用第一接口文档生成接口调用代码。
由于在前述相关技术中,接口调用代码中的输出参数会按照接口文档中的参数顺序进行设置,若修改ApiParam的参数顺序,就会造成生成的接口调用代码中的参数顺序发生变动。基于此,在其他一些实施例中,在S230中生成接口调用代码时,接口调用代码中的各项特征参数可以设置于同一个对象内。
例如,相关技术中接口调用代码内的参数为:id:number,name:string;本实施例中,接口调用代码中的参数为params:ParamshomeListGet。即本实施例中将id和name两个参数封装于params中,因此,即使id和name两个参数的顺序或数量发生变化,接口调用代码中仍旧只显示封装后的params,因此,消除了参数顺序对接口调用代码的影响,即使在后续增加或减少了接口文档中的参数,也不会影响接口调用代码的稳定性,从而提升了接口调用代码中的参数的扩展性。
在接口调用代码生成之后,为了保证前端利用接口调用代码进行接口调用时的准确性,在另一些实施例中,参见图6,图6是根据一示例性实施例示出的又一种接口调用方法的流程图。S240可以包括以下步骤:
S241,获取前端代码输入至接口调用代码中的调用参数。
调用参数具体为前端代码输入至接口调用代码中的方法的参数。这些调用参数用于供方法生成URL,进而将调用参数输入至URL或第一接口,来完成对第一接口的调用。
S243,校验调用参数是否满足第一接口对应的预设参数规范。
在生成的接口调用代码时,可以在接口调用代码中添加格式校验代码ajax.check,该ajax.check会根据预设参数规范对调用参数进行校验。这里的校验即接口调用入参校验机制。
S245,在调用参数满足第一接口对应的预设参数规范的情况下,调用第一接口。
在调用参数不满足第一接口对应的预设参数规范的情况下,可以输出错误提示,告知工作人员这里出现了错误。例如可以显示并打印错误信息。参见表5所示,表5示出了一种实施例中的接口调用入参校验的结果示意表。
表5一种实施例中的接口调用入参校验的结果示意表
Figure BDA0002791084190000161
本实施例中,对前端输入接口调用代码参数进行了校验,保证了在接口调用过程中,前端输入的调用参数的准确性,使得在前端输入的调用参数出现错误的情况下,工作人员能够及时了解并处理,提高接口调用的可靠性。
在一些具体实施例中,上述S243可以包括以下至少一项:
S2431,校验调用参数中是否存在第一接口对应的目标参数。
即可以预先设置有调用第一接口需要输入的参数类型,例如需要输入参数A和B,这种情况下,若调用参数中仅包含参数A,则表明调用参数中缺少第一接口需要对应的目标参数。
S2433,校验调用参数的格式是否符合第一接口对应的目标格式。
即可以预先设置有第一接口对应的目标格式,例如第一接口A对应的调用参数为全小写。
S2435,校验调用参数的数据类型是否符合第一接口对应的目标数据类型。
即预先设置有第一接口对应的调用参数的数据类型,例如number。
本实施例中,预先设置了第一接口被调用时,调用参数应该符合的一些规范,这种规范包括参数的类型、格式、取值范围等。这种方式能够使前端设备快速准确的确定调用参数所对应的第一接口,并且验证是否存在误输入的情况,从而避免错误输入导致的错误调用接口的情况,提高接口调用时的准确性。当然,以上仅为部分实现方式,预设参数规范还可以包括其他内容,本公开实施例对此不作限定。
在接口调用代码生成之后,在前端通过接口调用代码调用接口后,为了保证后端返回数据的准确性,在又一些实施例中,参见图7所示,图7是根据一示例性实施例示出的其他一种接口调用方法的流程图。在S245之后,该方法还可以包括以下:
S251,获取后端服务器通过第一接口返回的目标数据。
这里的目标数据可以包括各项特征参数的内容,例如code参数的内容“1”等。
S253,校验目标数据的格式是否满足第一接口文档的内容。
第一接口文档中包含对于各个接口返回的数据的格式限定,例如code参数的类型限定为“number”,因此目标数据中code参数的内容应该是数字。此外,第一接口文档中对哪些数据的格式进行了限定,取决于互联网的研发需求,本公开实施例对此不作限定。
其中,上述两个步骤可以通过webpack插件实现。
S255,在目标数据的格式满足第一接口文档的内容的情况下,输出目标数据。
由于前端调用第一接口的目的,是为了获取后端返回的目标数据,因此在目标数据格式正确的情况下,即可以将目标数据在显示界面内或者打印机内进行输出,从而方便前端工作人员获取目标数据。当然,这里如何输出目标数据本公开实施例不作限定。
在其他实施例中,在目标数据的格式满足第一接口文档的内容的情况下,也可以不输出目标数据,而是对目标数据进行保存。
此外,在目标数据的格式不满足第一接口文档的内容的情况下,表明目标数据格式出现错误,这种情况下,不能够输入目标数据,而是输出错误信息,告知前端工作人员出现数据错误,方便前端工作人员及时进行处理。
参见表6所示,表6示出了一种实施例中的目标数据校验的结果示意表。
表6一种实施例中的目标数据校验的结果示意表
Figure BDA0002791084190000171
本实施例中,对后端返回的目标数据进行了校验,由于接口文档包括对后端返回的数据的格式规范,因此,正常情况下,后端返回的数据的格式应该满足第一接口文档内的限定。因此,依据第一接口文档的内容可以对后端返回的目标数据进行校验,在目标数据符合第一接口文档所限定的格式的情况下,表明目标数据正确,这种校验方式,进一步提高了接口调用可靠性,尽可能保证了前端能够获取到准确的后端数据。
在一个或多个实施例中,上述接口调用方法可以集成为一个命令行工具保存至前端设备内,这种方式使得后续前端设备可以直接通过调用命令行工具来实现前述接口调用方法的步骤。在具体实现方式中,如表7所示,表7示出了一种该命令行工具的实现语句。
表7一种命令行工具的实现语句表
Figure BDA0002791084190000181
基于上述方法实施例,出于相同的发明构思,本公开实施例还提供了一种接口调用装置,应用于前端设备。图8是根据一示例性实施例示出的一种接口调用装置框图。参照图8,该装置包括。
文档获取模块310,被配置为执行获取第一接口文档;
第一校验模块320,被配置为执行校验第一接口文档中的各项特征参数的内容是否符合各自对应的第一接口规范,并在第一接口文档中的操作标识不符合对应的第一接口规范的情况下,将操作标识校正为预设标识;各项特征参数包括操作标识;
代码生成模块330,被配置为执行在第一接口文档中的各项特征参数的内容均符合各自对应的第一接口规范的情况下,基于校正后的第一接口文档生成目标类型的接口调用代码;其中,在操作标识不符合第一接口规范的情况下,接口调用代码中包括预设标识;
接口调用模块340,用于通过接口调用代码调用后端服务器提供的第一接口。
本公开实施例中,在获取到第一接口文档后,能够对第一接口文档中各项特征参数的内容进行校验,确认这些参数的内容是否满足各自对应的第一接口规范。在各项特征参数的内容符合各自对应的第一接口规范的情况下,再基于第一接口文档生成接口调用代码,进而完成接口调用。可见,本公开实施例通过设置预设接口规范,使得用于生成接口调用代码的第一接口文档符合一定的规范,从而能够规避由于接口文档中的参数内容出现不必要的变更而导致的接口调用代码不稳定的情况。此外,本公开实施例还能够将第一接口文档中的操作标识校正为预设标识,从而避免操作标识会随着自身所注解的方法名的出现顺序而发生变更,从而进一步提高了接口调用代码的稳定性,进而提高了后续利用接口调用代码完成接口调用的成功率。
在一些实施例中,文档获取模块310包括:
第一获取单元,被配置为执行获取前端设备中保存的原始接口文档;
第二获取单元,被配置为执行接收后端服务器传输的第二接口文档;
更新单元,被配置为执行根据第二接口文档对原始接口文档进行增量更新,得到第一接口文档。
本实施例中,前端设备会在本地保存之前接收到的第一接口文档,后续再次接收到后端服务器发送的第二接口文档后,会利用第二接口文档对第一接口文档进行增量更新,即仅更新两个接口文档的差异部分,这种方式下,电子设备仅需要对自身保存的数据进行少量修改即可,减少了电子设备需要修改的数据量以及需要存储的数据量。
在另一些实施例中,上述第二获取单元可以包括:
第一接收单元,被配置为执行接收后端服务器传输的第一类型的第二接口文档;
或者,
第二接收单元,被配置为执行接收后端服务器传输的第二类型的第二接口文档;
转换单元,被配置为执行按照预设转换规则,将第二接口文档的类型转换为第一类型。
本实施例中,可以支持第一类型的第二接口文档,也可以支持第二类型的第二接口文档,由于后续生成接口调用代码时需要依赖于swagger-Codege,因此需要将第二类型的第二接口文档转换为第一类型,例如将yapi文档转换为swagger文档。由于两种类型的接口文档均是用于对接口和数据进行描述的,且两者均具有固定的格式,因此可以将第二类型的接口文档中的参数按照第一类型的接口文档的格式规范进行转换,从而实现两种类型的接口文档之间的转换,如yapi文档和swagger文档之间的转换,从而提高本公开实施例的适用范围。
在一些具体实现方式中,上述转换单元包括以下至少一项:
第一转换子单元,被配置为执行将第二类型的第二接口文档中的接口分类信息,转换为所注解标签信息;
第二转换子单元,被配置为执行将第二类型的第二接口文档中的接口统一资源定位符和方法,转换为操作标识;
第三转换子单元,被配置为执行将第二类型的第二接口文档中的请求主体和/或响应主体,转换为数据传输对象;
第四转换子单元,被配置为执行将第二类型的第二接口文档中的第一数据类型,转换为第二数据类型。
本实施例中的接口分类信息、接口地址、方法、请求和响应主体以及数据类型等,属于接口文档包含的主要内容,因此,通过将这些信息进行转换,即能够保证生成的第二接口文档能够满足生成接口调用代码的需求。
在再一些实施例中,上述更新单元可以包括:
差异比对子单元,被配置为执行将第二接口文档与第一接口文档进行比对,得到第二接口文档与第一接口文档的第一差异信息;
差异更新子单元,被配置为执行根据第一差异信息对第一接口文档进行更新。
本实施例中,利用第二接口文档与第一接口文档之间的第一差异信息,对第一接口文档进行增量更新,从而减少了本地需要更新的信息量,提高接口文档的更新效率。
在再一些实施例中,上述更新单元还可以包括:
显示单元,被配置为执行响应于针对第三控件的第一操作,按照第三控件对应的显示方式对第一差异信息进行显示;其中,显示方式包括以下任意一种:显示全部第一差异信息、显示第一差异信息中的新增信息、显示第一差异信息中的删除信息、显示第一差异信息中的变更信息、不显示。
这种方式不仅使用户能够查看第一差异信息的内容,还能够使用户自行选择需要显示的部分内容,实现更加有针对性的信息显示,例如用户仅想要查看新增信息,则可以勾选新增信息对应的选择框,之后显示界面内仅显示新增信息。
在又一些实现方式中,差异更新子单元,具体可以被配置为执行:
响应于针对第四控件的第二操作,利用第四控件对应的第二差异信息更新第一接口文档;其中,第二差异信息包括以下任意一项:全部第一差异信息、第一差异信息中的新增信息、第一差异信息中的删除信息、第一差异信息中的变更信息、无信息。
在上述实现方式中,前端设备的显示界面内可以包括多个第二选择框,每个第二选择框对应一个第二控件,用户可以自行对第二选择框进行勾选,用户所勾选的第二选择框对应的第二控件作为第四控件,后续则按照第四控件对应的部分差异信息更新第一接口文档。这种方式使得用户能够根据自身需求,自主选择第一接口文档中需要进行更新的部分,从而提高了用户的自主性和增量更新时的针对性,且在部分场景下,能够减少需要更新的数据量。
在一个或多个实施例中,第一校验模块320,可以包括以下至少一项:
第一校验单元,被配置为执行校验第一接口文档中的接口统一资源定位符是否符合预设数据格式;
第二校验单元,被配置为执行校验第一接口文档中的注解标签的取值是否符合第一预设取值范围;
第三校验单元,被配置为执行校验第一接口文档中的参数命名格式是否为驼峰格式。
本实施例中,通过对第一接口文档中的接口统一资源定位符、注解标签以及参数命名格式等参数是否满足规范进行了校验,从而能够保证第一接口文档的准确性,避免部分参数出现不必要的格式变更等情况,使得后续在利用第一接口文档生成接口调用代码时,能够保证接口调用代码不会受到参数变更的影响,从而提高了接口调用代码的稳定性。
在另一些实施例中,接口调用模块340可以包括:
参数获取单元,被配置为执行获取前端代码输入至接口调用代码中的调用参数;
第二校验单元,被配置为执行校验调用参数是否满足第一接口对应的预设参数规范;
调用单元,被配置为执行在调用参数满足第一接口对应的预设参数规范的情况下,调用第一接口。
本实施例中,对前端输入接口调用代码参数进行了校验,保证了在接口调用过程中,前端输入的调用参数的准确性,使得在前端输入的调用参数出现错误的情况下,工作人员能够及时了解并处理,提高接口调用的可靠性。
在一些具体实施例中,上述第二校验模块可以包括以下至少一项:
第四校验单元,被配置为执行校验调用参数中是否存在第一接口对应的目标参数;
第五校验单元,被配置为执行校验调用参数的格式是否符合第一接口对应的目标格式;
第六校验单元,被配置为执行校验调用参数的数据类型是否符合第一接口对应的目标数据类型。
本实施例中,预先设置了第一接口在调用时,调用参数应该符合的一些规范,这种规范包括参数的类型、格式、取值范围等。这种方式能够使前端设备快速准确的确定调用参数所对应的第一接口,并且验证是否存在误输入的情况,从而避免错误输入导致的错误调用接口的情况,提高接口调用时的准确性。
在又一些实施例中,上述装置还可以包括:
数据获取模块,被配置为执行获取后端服务器通过第一接口返回的目标数据;
第三校验模块,被配置为执行校验目标数据的格式是否满足第一接口文档的内容;
输出模块,被配置为执行在目标数据的格式满足第一接口文档的内容的情况下,输出目标数据。
本实施例中,对后端返回的目标数据进行了校验,由于接口文档包括对后端返回的数据的格式规范,因此,正常情况下,后端返回的数据的格式应该满足第一接口文档内的限定。因此,依据第一接口文档的内容可以对后端返回的目标数据进行校验,在目标数据符合第一接口文档所限定的格式的情况下,表明目标数据正确,这种校验方式,进一步提高了接口调用可靠性,尽可能保证了前端能够获取到准确的后端数据。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
图9是根据一示例性实施例示出的电子设备的框图。参照图9,该电子设备401包括处理组件4011,其进一步包括一个或多个处理器,以及由存储器4013所代表的存储器4013资源,用于存储可由处理组件4011的执行的指令,例如应用程序。存储器4013中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件4011被配置为执行指令,以执行上述任一实施例所述的接口调用方法。
该电子设备401还可以包括一个电源组件4015被配置为执行电子设备401的电源管理,一个有线或无线网络接口4017被配置为将电子设备401连接到网络,和一个输入输出(I/O)接口4019。电子设备401可以操作基于存储在存储器4013的操作系统,例如WindowsServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
在本公开实施例一些实施例中,还提供了一种存储介质,当该存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一实施例所述的接口调用方法。
可选地,该存储介质可以是非临时性计算机可读存储介质,示例性的,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
在本公开实施例一些实施例中,还提供了一种计算机程序产品,当计算机程序产品中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一实施例所述的接口调用方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开实施例的其它实施方案。本公开实施例旨在涵盖本公开实施例的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开实施例的一般性原理并包括本公开实施例未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开实施例的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开实施例并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开实施例的范围仅由所附的权利要求来限制。

Claims (10)

1.一种接口调用方法,其特征在于,包括:
获取第一接口文档;
校验所述第一接口文档中的各项特征参数的内容是否符合各自对应的第一接口规范,并在所述第一接口文档中的操作标识不符合对应的所述第一接口规范的情况下,将所述操作标识校正为预设标识;所述各项特征参数包括所述操作标识;
在所述第一接口文档中的各项特征参数的内容均符合各自对应的所述第一接口规范的情况下,基于校正后的所述第一接口文档生成目标类型的接口调用代码;其中,在所述操作标识不符合所述第一接口规范的情况下,所述接口调用代码中包括所述预设标识;
通过所述接口调用代码调用后端服务器提供的第一接口。
2.根据权利要求1所述的接口调用方法,其特征在于,所述获取第一接口文档,包括:
获取前端设备中保存的原始接口文档;
接收所述后端服务器传输的第二接口文档;
根据所述第二接口文档对所述原始接口文档进行增量更新,得到所述第一接口文档。
3.根据权利要求2所述的接口调用方法,其特征在于,所述接收所述后端服务器传输的第二接口文档,包括:
接收所述后端服务器传输的第一类型的所述第二接口文档;
或者,
接收所述后端服务器传输的第二类型的所述第二接口文档;
按照预设转换规则,将所述第二接口文档的类型转换为所述第一类型。
4.根据权利要求2-3任一项所述的接口调用方法,其特征在于,所述根据所述第二接口文档对所述原始接口文档进行增量更新,包括:
将所述第二接口文档与所述第一接口文档进行比对,得到所述第二接口文档与所述第一接口文档的第一差异信息;
根据所述第一差异信息对所述第一接口文档进行更新。
5.根据权利要求1所述的接口调用方法,其特征在于,所述通过所述接口调用代码调用后端服务器提供的第一接口,包括:
获取前端代码输入至所述接口调用代码中的调用参数;
校验所述调用参数是否满足所述第一接口对应的预设参数规范;
在所述调用参数满足所述第一接口对应的预设参数规范的情况下,调用所述第一接口。
6.根据权利要求5所述的接口调用方法,其特征在于,所述校验所述调用参数是否满足所述第一接口对应的预设参数规范,包括以下至少一项:
校验所述调用参数中是否存在所述第一接口对应的目标参数;
校验所述调用参数的格式是否符合所述第一接口对应的目标格式;
校验所述调用参数的数据类型是否符合所述第一接口对应的目标数据类型。
7.根据权利要求5所述的接口调用方法,其特征在于,在所述调用参数满足所述第一接口对应的预设参数规范的情况下,调用所述第一接口之后,所述方法还包括:
获取所述后端服务器通过所述第一接口返回的目标数据;
校验所述目标数据的格式是否满足所述第一接口文档的内容;
在所述目标数据的格式满足所述第一接口文档的内容的情况下,输出所述目标数据。
8.一种接口调用装置,其特征在于,包括:
文档获取模块,被配置为执行获取第一接口文档;
第一校验模块,被配置为执行校验所述第一接口文档中的各项特征参数的内容是否符合各自对应的第一接口规范,并在所述第一接口文档中的操作标识不符合对应的所述第一接口规范的情况下,将所述操作标识校正为预设标识;所述各项特征参数包括所述操作标识;
代码生成模块,被配置为执行在所述第一接口文档中的各项特征参数的内容均符合各自对应的所述第一接口规范的情况下,基于校正后的所述第一接口文档生成目标类型的接口调用代码;其中,在所述操作标识不符合所述第一接口规范的情况下,所述接口调用代码中包括所述预设标识;
接口调用模块,用于通过所述接口调用代码调用后端服务器提供的第一接口。
9.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1至7中任一项所述的接口调用方法。
10.一种存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1至7中任一项所述的接口调用方法。
CN202011315014.4A 2020-11-20 2020-11-20 接口调用方法、装置、电子设备、介质及产品 Active CN112463261B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011315014.4A CN112463261B (zh) 2020-11-20 2020-11-20 接口调用方法、装置、电子设备、介质及产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011315014.4A CN112463261B (zh) 2020-11-20 2020-11-20 接口调用方法、装置、电子设备、介质及产品

Publications (2)

Publication Number Publication Date
CN112463261A true CN112463261A (zh) 2021-03-09
CN112463261B CN112463261B (zh) 2024-06-11

Family

ID=74799992

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011315014.4A Active CN112463261B (zh) 2020-11-20 2020-11-20 接口调用方法、装置、电子设备、介质及产品

Country Status (1)

Country Link
CN (1) CN112463261B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407233A (zh) * 2021-06-24 2021-09-17 上海中通吉网络技术有限公司 基于yapi的前端api接口自动生成方法及装置
CN113535147A (zh) * 2021-07-20 2021-10-22 挂号网(杭州)科技有限公司 一种调用代码的生成方法、装置、电子终端及存储介质

Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104360920A (zh) * 2014-12-02 2015-02-18 微梦创科网络科技(中国)有限公司 一种接口自动化测试方法及装置
CN105117233A (zh) * 2015-09-14 2015-12-02 百度在线网络技术(北京)有限公司 Api调用方法及装置
CN107168702A (zh) * 2017-05-10 2017-09-15 苏州奇松软件有限公司 一种App、小程序和Web接口定义和代码生成方法
CN108108162A (zh) * 2016-11-24 2018-06-01 腾讯科技(深圳)有限公司 应用程序编程接口生成方法及装置
CN108268253A (zh) * 2017-05-05 2018-07-10 平安科技(深圳)有限公司 接口代码生成方法及终端设备
CN108491199A (zh) * 2018-03-06 2018-09-04 福建天泉教育科技有限公司 一种自动生成接口的方法及终端
CN109086046A (zh) * 2018-08-02 2018-12-25 中国建设银行股份有限公司 一种基于接口规范文档的前端代码自动生成方法及系统
CN109117131A (zh) * 2018-08-16 2019-01-01 杭州云纪网络科技有限公司 代码生成方法及装置、存储介质及电子终端
CN109614102A (zh) * 2018-10-09 2019-04-12 平安科技(深圳)有限公司 代码自动生成方法、装置、电子设备及存储介质
CN110377336A (zh) * 2019-06-17 2019-10-25 平安普惠企业管理有限公司 接口文档生成方法、装置、计算机设备和存储介质
CN110515608A (zh) * 2019-08-30 2019-11-29 网易(杭州)网络有限公司 一种接口代码的生成方法及装置、电子设备、存储介质
CN110806863A (zh) * 2019-11-05 2020-02-18 泰康保险集团股份有限公司 接口文档生成方法及装置、电子设备、存储介质
CN110955416A (zh) * 2019-10-12 2020-04-03 平安普惠企业管理有限公司 接口文档生成方法、装置、设备和计算机存储介质
CN111274120A (zh) * 2018-12-05 2020-06-12 北京奇虎科技有限公司 一种接口文档的验证方法和装置
CN111338637A (zh) * 2020-02-26 2020-06-26 腾讯科技(深圳)有限公司 一种代码生成方法及装置
CN111367685A (zh) * 2020-02-28 2020-07-03 平安医疗健康管理股份有限公司 接口调用的方法及装置、计算机设备、存储介质
CN111581920A (zh) * 2020-05-12 2020-08-25 深圳前海微众银行股份有限公司 文档转换方法、装置、设备及计算机存储介质
CN111666072A (zh) * 2020-06-09 2020-09-15 南京及物智能技术有限公司 一种软件代码及文档机器人方法
CN111782517A (zh) * 2020-06-23 2020-10-16 浙江保融科技有限公司 一种自动化文件校验方法
CN111950252A (zh) * 2020-07-31 2020-11-17 上海中通吉网络技术有限公司 Http响应报文格式校验方法、装置和设备

Patent Citations (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104360920A (zh) * 2014-12-02 2015-02-18 微梦创科网络科技(中国)有限公司 一种接口自动化测试方法及装置
CN105117233A (zh) * 2015-09-14 2015-12-02 百度在线网络技术(北京)有限公司 Api调用方法及装置
CN108108162A (zh) * 2016-11-24 2018-06-01 腾讯科技(深圳)有限公司 应用程序编程接口生成方法及装置
CN108268253A (zh) * 2017-05-05 2018-07-10 平安科技(深圳)有限公司 接口代码生成方法及终端设备
CN107168702A (zh) * 2017-05-10 2017-09-15 苏州奇松软件有限公司 一种App、小程序和Web接口定义和代码生成方法
CN108491199A (zh) * 2018-03-06 2018-09-04 福建天泉教育科技有限公司 一种自动生成接口的方法及终端
CN109086046A (zh) * 2018-08-02 2018-12-25 中国建设银行股份有限公司 一种基于接口规范文档的前端代码自动生成方法及系统
CN109117131A (zh) * 2018-08-16 2019-01-01 杭州云纪网络科技有限公司 代码生成方法及装置、存储介质及电子终端
CN109614102A (zh) * 2018-10-09 2019-04-12 平安科技(深圳)有限公司 代码自动生成方法、装置、电子设备及存储介质
CN111274120A (zh) * 2018-12-05 2020-06-12 北京奇虎科技有限公司 一种接口文档的验证方法和装置
CN110377336A (zh) * 2019-06-17 2019-10-25 平安普惠企业管理有限公司 接口文档生成方法、装置、计算机设备和存储介质
CN110515608A (zh) * 2019-08-30 2019-11-29 网易(杭州)网络有限公司 一种接口代码的生成方法及装置、电子设备、存储介质
CN110955416A (zh) * 2019-10-12 2020-04-03 平安普惠企业管理有限公司 接口文档生成方法、装置、设备和计算机存储介质
CN110806863A (zh) * 2019-11-05 2020-02-18 泰康保险集团股份有限公司 接口文档生成方法及装置、电子设备、存储介质
CN111338637A (zh) * 2020-02-26 2020-06-26 腾讯科技(深圳)有限公司 一种代码生成方法及装置
CN111367685A (zh) * 2020-02-28 2020-07-03 平安医疗健康管理股份有限公司 接口调用的方法及装置、计算机设备、存储介质
CN111581920A (zh) * 2020-05-12 2020-08-25 深圳前海微众银行股份有限公司 文档转换方法、装置、设备及计算机存储介质
CN111666072A (zh) * 2020-06-09 2020-09-15 南京及物智能技术有限公司 一种软件代码及文档机器人方法
CN111782517A (zh) * 2020-06-23 2020-10-16 浙江保融科技有限公司 一种自动化文件校验方法
CN111950252A (zh) * 2020-07-31 2020-11-17 上海中通吉网络技术有限公司 Http响应报文格式校验方法、装置和设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407233A (zh) * 2021-06-24 2021-09-17 上海中通吉网络技术有限公司 基于yapi的前端api接口自动生成方法及装置
CN113535147A (zh) * 2021-07-20 2021-10-22 挂号网(杭州)科技有限公司 一种调用代码的生成方法、装置、电子终端及存储介质

Also Published As

Publication number Publication date
CN112463261B (zh) 2024-06-11

Similar Documents

Publication Publication Date Title
CN108170809B (zh) 建表脚本生成方法、装置、设备及计算机可读存储介质
US20190197068A1 (en) Page rendering method, device, and data storage medium
CN107704479B (zh) 文件生成方法和装置
CN110955416A (zh) 接口文档生成方法、装置、设备和计算机存储介质
CN109408043B (zh) 一种程序生成方法及装置
CN107679054A (zh) 数据比对方法、装置及可读存储介质
CN112463261A (zh) 接口调用方法及装置
CN113821565B (zh) 一种多数据源同步数据的方法
CN111581920A (zh) 文档转换方法、装置、设备及计算机存储介质
KR20190095099A (ko) 거래 시스템 에러 검출 방법, 장치, 저장 매체 및 컴퓨터 장치
CN107330014B (zh) 一种数据表的创建方法与设备
CN115455135B (zh) 可视化自动建模方法、装置、电子设备和存储介质
CN113626223A (zh) 一种接口调用方法和装置
CN114296737A (zh) 业务代码生成方法、装置、设备及存储介质
CN113094287A (zh) 页面兼容性检测方法、装置、设备及存储介质
CN108694172B (zh) 信息输出方法和装置
CN111506594A (zh) 一种大数据查询平台及其管理方法和数据查询方法
CN113268232A (zh) 一种页面皮肤生成方法、装置和计算机可读存储介质
CN115544973A (zh) 文档生成方法、装置、电子设备及存储介质
CN116362216A (zh) 表单数据处理的方法、装置、电子设备和存储介质
US10699329B2 (en) Systems and methods for document to order conversion
CN115509637A (zh) 一种基于Form表单的智能填报方法、系统、设备及介质
US11327994B2 (en) Arranging converted operation history information
CN114547060A (zh) 一种政务事项数据交换方法及系统
CN110674119A (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