CN112130830A - 接口生成方法、装置及电子设备 - Google Patents

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

Info

Publication number
CN112130830A
CN112130830A CN202010864947.2A CN202010864947A CN112130830A CN 112130830 A CN112130830 A CN 112130830A CN 202010864947 A CN202010864947 A CN 202010864947A CN 112130830 A CN112130830 A CN 112130830A
Authority
CN
China
Prior art keywords
interface
information
format information
generating
document
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
CN202010864947.2A
Other languages
English (en)
Other versions
CN112130830B (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.)
Hanhai Information Technology Shanghai Co Ltd
Original Assignee
Hanhai Information Technology Shanghai 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 Hanhai Information Technology Shanghai Co Ltd filed Critical Hanhai Information Technology Shanghai Co Ltd
Priority to CN202010864947.2A priority Critical patent/CN112130830B/zh
Publication of CN112130830A publication Critical patent/CN112130830A/zh
Application granted granted Critical
Publication of CN112130830B publication Critical patent/CN112130830B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种接口生成方法,包括:解析前端页面编码中的接口信息,生成与所述前端页面对应的目标接口格式信息;根据所述目标接口格式信息,通过预设的文档描述语言生成用于描述所述目标接口格式信息的接口文档;通过解析所述接口文档,生成与所述目标接口格式信息对应的后端接口编码。该方法可以方便、高效的生成符合标准接口格式的接口编码。

Description

接口生成方法、装置及电子设备
技术领域
本公开涉及计算机技术领域,更具体地,涉及一种接口生成方法、装置及电子设备。
背景技术
API(ApplicationProgrammingInterface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。
请参看图1,其是现有的接口生成方法的示意图。如图1所示,目前在基于浏览器和服务器架构(B/S架构,Browser/ServerArchitecture)模式进行产品开发时,前后端之间的API接口一般是通过协商的方式生成。具体来讲,一般是根据产品需求,由前端开发人员与后端开发人员协商接口格式,并由后端开发人员编写对应的接口文档,之后,前后端开发人员分别参照接口文档进行开发,以实现前端及后端编码;当接口存在变动时,一般是先更新文档,再通知前端调整对应接口编码;最后,前后端之间需要进行前端页面和后端接口之间的联调。
由此可知,现有的接口生成方法对人工依赖性强,沟通成本高,比较费时费力;同时,由于前后端之间是参照后端编写的接口文档进行编码实现,因此,当接口文档编写存在错误,例如,拼写错误、类型错误等错误时,还需要在前后端联调过程中反复试错,存在效率低下、容错率低的问题。因此,有必要提供一种接口生成方法,以使得在接口生成过程中,减少人工参与,使得电子设备可以方便、高效的生成符合标准接口格式的接口编码。
发明内容
本公开实施例的一个目的是提供一种用于接口生成的新技术方案。
根据本公开的第一方面,提供了一种接口生成方法,包括:
解析前端页面编码中的接口信息,生成与所述前端页面对应的目标接口格式信息;
根据所述目标接口格式信息,通过预设的文档描述语言生成用于描述所述目标接口格式信息的接口文档;
通过解析所述接口文档,生成与所述目标接口格式信息对应的后端接口编码。
可选地,所述解析前端页面编码中的接口信息,生成与所述前端页面对应的目标接口格式信息,包括:
获取所述前端页面中包含接口信息的组件集合;
通过对所述组件集合中组件对应的接口信息进行解析,生成所述目标接口格式信息。
可选地,所述通过对所述组件集合中组件对应的接口信息进行解析,生成所述目标接口格式信息,包括:
从所述组件集合中,获取第一组件的接口信息作为第一接口信息,其中,所述第一组件为所述组件集合中的任意组件;
通过获取与所述第一接口信息对应的第一接口格式信息,生成所述目标接口格式信息。
可选地,所述获取与所述第一接口信息对应的第一接口格式信息,包括:
获取所述第一接口信息的输入参数信息以及响应值信息;
根据所述输入参数信息,生成与所述第一组件对应的第一输入参数格式信息;以及
根据所述第一组件的组件类型以及所述响应值信息,生成与所述第一组件对应的第一响应格式信息;
根据所述第一输入参数格式信息和所述第一响应格式信息,生成所述第一接口格式信息。
可选地,所述根据所述输入参数信息,生成与所述第一组件对应的第一输入参数格式信息,包括:
根据所述输入参数信息中输入参数的数据类型,生成与所述输入参数信息对应的数据模型集合,其中,所述数据模型集合中的数据模型用于描述对应输入参数;
根据所述数据模型集合,生成所述第一输入参数格式信息。
可选地,所述根据所述目标接口格式信息,使用预设的文档描述语言生成用于描述所述目标接口格式信息的接口文档,包括:
从所述目标接口格式信息中,获取第一待描述接口格式信息,其中,所述第一待描述接口格式信息为所述目标接口格式信息中的任意接口格式信息;
根据所述第一待描述接口格式信息包含的字段的数据类型,使用所述预设的文档描述语言中的对应类型描述所述字段,生成与所述第一待描述接口格式信息对应的第一接口描述信息;
根据所述第一接口描述信息,生成所述接口文档。
可选地,所述通过解析所述接口文档,生成与所述目标接口格式信息对应的后端接口编码,包括:
建立所述接口文档中的字段描述类型与所述后端编码中的数据类型之间的对应关系;
根据所述对应关系,对所述接口文档中的接口描述信息进行解析,生成所述后端接口编码。
可选地,所述根据所述对应关系,对所述接口文档中的接口描述信息进行解析,生成所述后端接口编码,包括:
从所述接口描述信息中,获取任意一个接口描述信息作为第一待解析接口描述信息;
根据所述对应关系,构建与所述第一待解析接口描述信息对应的第一数据处理接口,其中,所述第一数据处理接口中包括后端编码数据类型的编码实现,以及与所述后端编码数据类型对应的数据处理方法的编码实现;
根据所述第一数据处理接口,生成所述后端接口编码。
可选地,在构建所述第一数据处理接口的过程中,所述方法还包括:
通过解析所述第一待解析接口描述信息,生成第一待确定数据处理接口;
针对与所述第一待确定数据处理接口同名的第一既存数据处理接口,分别生成与所述第一待确定数据处理接口对应的第一抽象文法树,以及,生成与所述第一既存数据处理接口对应的第一既存抽象文法树;
对所述第一抽象文法树和所述第一既存抽象文法树进行合并处理,获得合并后的抽象文法树;
根据所述合并后的抽象文法树,构建所述第一数据处理接口。
可选地,所述预设的接口描述语言包括graphql语言。
根据本公开的第二方面,本公开还提供了一种接口生成装置,包括:
前端页面编码解析模块,用于解析前端页面编码中的接口信息,生成与所述前端页面对应的目标接口格式信息;
接口文档生成模块,用于根据所述目标接口格式信息,通过预设的文档描述语言生成用于描述所述目标接口格式信息的接口文档;
后端接口编码生成模块,用于通过解析所述接口文档,生成与所述目标接口格式信息对应的后端接口编码。
根据本公开的第三方面,本公开还提供了一种电子设备,包括根据本公开的第二方面所述的装置;或者,包括:存储器,用于存储可执行的指令;处理器,用于根据所述指令的控制运行所述电子设备执行根据本公开的第一方面所述的方法。
根据本公开的实施例,在生成接口的过程中,由电子设备解析前端页面编码中的接口信息,生成对应的目标接口格式信息;之后,通过使用预设的文档描述语言生成用于描述该目标接口格式信息的接口文档,再通过解析该接口文档,即可方便、高效的生成对应的后端接口编码。该方法在生成接口的过程中,通过减少人工参与,由电子设备自动解析前端页面编码,以及使用预设的文档描述语言来生成对应的接口文档,可以方便、高效的生成后端接口编码。
通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其他特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本公开的实施例,并且连同其说明一起用于解释本公开的原理。
图1是现有的接口生成方法的协作示意图。
图2是显示可用于实现一个实施例的接口生成方法的接口生成系统的硬件配置的原理框图。
图3是根据一个实施例的接口生成方法的流程示意图。
图4是用于示意目标接口格式信息的生成处理示意图。
图5是用于示意接口文档的生成处理示意图。
图6是用于示意后端接口编码的生成处理示意图。
图7是根据一个实施例的接口生成装置的原理框图。
图8是根据一个实施例的电子设备的硬件结构示意图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其他例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图2是可用于实施根据一个实施例的接口生成方法的接口生成系统100的硬件配置的框图。
如图2所示,接口生成系统100可以为包括服务器1000的系统,在该系统中,服务器1000用于提供接口生成的全部功能。
在具体实施时,终端设备或者其他服务器可以向服务器1000发送用于生成接口编码的数据访问请求,服务器1000在接收到该数据访问请求后,响应于该数据访问请求,解析前端页面编码中的接口信息,生成与所述前端页面对应的目标接口格式信息;根据所述目标接口格式信息,通过预设的文档描述语言生成用于描述所述目标接口格式信息的接口文档;通过解析所述接口文档,生成与所述目标接口格式信息对应的后端接口编码。
服务器1000提供处理、数据库、通讯设施的业务点。服务器1000可以是整体式服务器或是跨多计算机或计算机数据中心的分散式服务器。服务器可以是各种类型的,例如但不限于,网络服务器,新闻服务器,邮件服务器,消息服务器,广告服务器,文件服务器,应用服务器,交互服务器,数据库服务器,或代理服务器。在一些实施例中,每个服务器可以包括硬件,软件,或用于执行服务器所支持或实现的合适功能的内嵌逻辑组件或两个或多个此类组件的组合。例如,服务器例如刀片服务器、云端服务器等,或者可以是由多台服务器组成的服务器群组,可以包括上述类型的服务器中的一种或多种等等。
在一个实施例中,如图1所示,服务器1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600。
处理器1100用于执行计算机程序。该计算机程序可以采用比如x86、Arm、RISC、MIPS、SSE等架构的指令集编写。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括各种总线接口,例如串行总线接口(包括USB接口)、并行总线接口等。通信装置1400例如能够进行有线或无线通信。显示装置1500例如是液晶显示屏、LED显示屏触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘等。
本实施例中,服务器1000的存储器1200用于存储指令,该指令用于控制处理器1100进行操作以执行根据任意实施例的接口生成方法。技术人员可以根据本公开所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
尽管在图1中示出了服务器1000的多个装置,但是,本公开可以仅涉及其中的部分装置,例如,服务器1000只涉及存储器1200、处理器1100和通信装置1400等。
应当理解的是,尽管图1仅示出一个服务器1000,但不意味着限制各自的数量,接口生成系统100中也可以包含多个服务器1000,即,接口生成系统100也可以是以服务器集群的形式向外提供服务。
<方法实施例>
本公开提供一种接口生成方法,请参看图3,其是根据本公开实施例的接口生成方法的流程示意图。该方法可以由电子设备实施,该电子设备可以是终端设备,例如,普通计算机设备、手机以及平板电脑等;或者,也可以为服务器,例如可以为图1中的服务器1000。
如图3所示,本实施例的方法可以包括步骤S3100-S3300,以下予以详细说明。
步骤S3100,解析前端页面编码中的接口信息,生成与所述前端页面对应的目标接口格式信息。
针对现有技术中在基于浏览器和服务器架构模式进行产品开发,在生成前后端之间的API接口时存在的人工依赖性强、容错率低及效率低下的问题,本公开实施例提供的方法在生成前后端之间的接口编码时,采取预先对前端,即B端业务场景进行梳理,以将前端页面拆分为一系列细粒度的通用组件,并定义各组件对应的标准接口规范之后,可以由用户对页面中各组件的接口信息进行自定义配置,即进行二次补充;之后,可以将该前端页面编码输入到用于生成接口的电子设备中,并由该电子设备自动解析该前端页面编码中的接口信息,对应的生成目标接口格式信息,以及生成后端接口编码。
通用组件,可以为表单、表格、按钮、文本框等页面组件中的一种或多种,或者也可以是多种组件组合后的自定义组件,其中,每一组件可以与其标准接口规范对应,有关每一组件对应的标准接口规范请参照现有技术中相关说明,此处不再赘述。具体来讲,在具体实施时,针对页面中相同或相近的业务场景,可以使用同一组件来实现其功能,以尽可能的复用前后端之间的接口。
接口信息,可以为接口名称、接口地址以及接口的输入参数和响应值等信息中的一种或多种,其中,在本实施例中,响应值,也可称为返回值;在具体实施时,页面中组件的接口信息可以由用户预先设置,例如,可以在页面编码工具中,由用户为每一组件预先设置接口信息,当然,接口信息也可以通过其他方法获得,此处不做特殊限定。
在预先对前端业务进行梳理,获得包含各组件的默认接口信息以及自定义配置信息的前端页面之后,可以将该前端页面发送到用于进行接口生成的电子设备,例如,服务器中,由该服务器遍历解析该前端页面中的编码,以获得各组件的接口信息,并根据该接口信息,生成与该前端页面对应的目标接口格式信息。在具体实施时,所述解析前端页面编码中的接口信息,生成与所述前端页面对应的目标接口格式信息,包括:获取所述前端页面中包含接口信息的组件集合;通过对所述组件集合中组件对应的接口信息进行解析,生成所述目标接口格式信息。
目标接口格式信息,是符合标准接口规范的信息,该接口格式信息中的数据类型以及数据格式可以被本公开所使用的预设的文档描述语言识别,以根据目标接口格式信息,生成对应的接口文档。
在本实施例中,所述通过对所述组件集合中组件对应的接口信息进行解析,生成所述目标接口格式信息,包括:从所述组件集合中,获取第一组件的接口信息作为第一接口信息,其中,所述第一组件为所述组件集合中的任意组件;通过获取与所述第一接口信息对应的第一接口格式信息,生成所述目标接口格式信息。
具体来讲,所述获取与所述第一接口信息对应的第一接口格式信息,包括:获取所述第一接口信息的输入参数信息以及响应值信息;根据所述输入参数信息,生成与所述第一组件对应的第一输入参数格式信息;以及根据所述第一组件的组件类型以及所述响应值信息,生成与所述第一组件对应的第一响应格式信息;根据所述第一输入参数格式信息和所述第一响应格式信息,生成所述第一接口格式信息。
请参看图4,其是用于示意目标接口格式信息的生成处理示意图。如图4所示,针对第一接口信息,即,包含接口信息的组件集合中的任意组件的接口信息,可以通过分别对其输入参数以及响应值进行解析,以生成与该第一接口信息对应的第一接口格式信息;之后,通过获取每一组件的接口信息对应的接口格式信息,即可生成目标接口格式信息。
如图4所示,所述根据所述输入参数信息,生成与所述第一组件对应的第一输入参数格式信息,包括:根据所述输入参数信息中输入参数的数据类型,生成与所述输入参数信息对应的数据模型集合,其中,所述数据模型集合中的数据模型用于描述对应输入参数;根据所述数据模型集合,生成所述第一输入参数格式信息。
输入参数信息,是接口的输入参数的信息,例如,输入参数信息可以为接口的输入参数的数量、数据类型以及默认值等信息。
在本实施例中,在前端页面编码中,组件接口信息中的输入参数的数据类型可以分为:关联输入参数、常量输入参数以及默认输入参数。
关联输入参数,是指该输入参数的值是从页面的其他组件中获得,例如,表格的请求输入参数通常是页面中某个表单组件中的某些表单项,例如,文本框、下拉框等的值组成。
常量输入参数,是指该输入参数的值为一常量,其中,有关常量的定义因为是现有技术,此处不再赘述。
默认输入参数,是指该请求包含一些功能相关的固定参数,无需用户进行配置。例如,表格的请求输入参数中默认携带分页相关参数,getTable Data(pageSize=10,pageNum=1),其中pageSize和pageNum是默认输入参数。
数据模型,是针对输入参数信息中每一输入参数的数据类型,生成的用于描述该输入参数的模型。
如图4所示,在本实施例中,可以针对输入参数的数据类型,分别生成其对应的数据模型,例如,在输入参数的数据类型为关联输入参数时,可以根据该输入参数对应的动态表达式,即,用于表征如何根据关联组件的响应值获得输入参数的表达式生成该输入参数对应的数据模型。又例如,在输入参数的数据类型为常量输入参数时,可以根据该输入参数的常量数值,生成其对应的数据模型。再例如,在输入参数的数据类型为默认输入参数时,可以获取其默认值,并生成其对应的数据模型。
在根据组件的接口信息中的输入参数信息,分别生成各输入参数对应的数据模型,即,获得与该接口信息对应的数据模型集合之后,可以合并该集合中所有的数据模型,以生成该接口信息对应的输入参数格式信息。
以上,对如何对组件接口信息中的输入参数信息进行解析,以生成与其对应的输入参数格式信息进行了说明,以下结合图4对如何对接口信息的响应值进行解析进行详细说明。
如图4所示,在具体实施时,与输入参数格式信息的生成方法相对应,可以根据接口信息的响应值信息,生成与该接口信息对应的响应格式信息。
通常来讲,接口的响应值信息首先可以分为常量类型和变量类型,其中,常量类型是指接口的响应值默认为常量;而变量类型,是指响应值的数值根据组件类型确定,例如,在组件为容器类组件,例如,表单容器、表格容器等容器组件时,由于容器组件中一般包括至少一个字段,该字段具体可以为表单容器中的表单项,或者可以为表格容器中的列字段等,因此,在响应值的类型为变量类型时,可以如图4所示,根据其所对应的组件的类型,将容器中的字段根据其数据类型转换为对应的数据类型,进而生成与该接口信息对应的响应格式信息。
经过上述处理,在分别对组件集合中组件的接口信息进行解析,生成与该前端页面对应的目标接口格式信息之后,即可使用预设的接口描述语言生成与该目标接口格式信息对应的接口文档。
在步骤S3100之后,执行步骤S3200,根据所述目标接口格式信息,通过预设的文档描述语言生成用于描述所述目标接口格式信息的接口文档。
在本实施例中,所述预设的文档描述语言包括支持强类型校验的graphql语言,其中,graphql语言,是一种用于对API进行描述以及查询的语言。需要说明的是,在本实施例中,是使用graphql语言来自动生成接口文档,在具体实施时,当然也可以根据需要使用其他语言来自动生成该接口文档。
在本实施例中,根据目标接口格式信息,生成的接口文档为基于graphql语言的graphqlschema文档,在该文档中,分别使用graphql语言中的对象类型来对目标接口格式信息中的接口格式信息进行描述。
在本实施例中,所述根据所述目标接口格式信息,使用预设的文档描述语言生成用于描述所述目标接口格式信息的接口文档,包括:从所述目标接口格式信息中,获取第一待描述接口格式信息,其中,所述第一待描述接口格式信息为所述目标接口格式信息中的任意接口格式信息;根据所述第一待描述接口格式信息包含的字段的数据类型,使用所述预设的文档描述语言中的对应类型描述所述字段,生成与所述第一待描述接口格式信息对应的第一接口描述信息;根据所述第一接口描述信息,生成所述接口文档。
请参看图5,其是用于示意接口文档的生成处理示意图。如图5所示,在具体实施时,针对解析前端页面编码生成的目标接口格式信息,可以先根据接口的请求类型,将接口拆分为Query请求类型和Mutation请求类型,其中,Query请求类型是用于定义一个查询请求的入口,而Mutation请求类型是用于定义修改请求的入口;在拆分接口的请求类型之后,即可遍历目标接口格式信息中的各类型接口,并使用graphql语言中的对象类型(ObjectTypesandFields)来描述各接口格式,以生成基于graphql语言的schematype。
具体来讲,针对接口格式信息中输入参数格式信息以及响应格式信息,可以分别提取其中的字段,并根据字段的数据类型,首先判断该数据类型其是否是基础类型,即,是否是graphql语言中的标量类型(ScalarTypes);如果该字段的数据类型是基础类型,则直接用其对应的基础类型描述该字段;否则,判断该字段的数据类型是否为文件类型,即,是否是用户自定义类型;如果该字段的数据类型为文件类型,则通过graphql语言中的标量类型构建与该文件类型对应的自定义Scalar类型,并使用该自定义Scalar类型描述该文件类型;如果该字段的数据类型也不是文件类型,则判定该字段的数据类型是否为对象或者数组类型;如果是,则判断该字段是否是输入参数,如果是,则获取该输入参数中的子字段类型并以InputObjectType类型描述该输入参数;否则,判断该字段的数据类型是否是用户自定义的用于表征需要合并编码的通用类型,如果是,则使用自定义的与该通用类型对应的schematype描述该通用类型;否则,则获取该字段的子字段的数据类型并以ObjectType或者List类型描述该字段。
经过上述处理,在获得与每一待描述的接口格式信息对应的接口描述信息之后,即可方便的生成与目标接口格式信息对应的接口文档。根据上述描述可知,在本实施例中,接口文档的生成不需要用户的过多参与,而是在电子设备获取到与前端页面对应的目标接口格式信息之后,即可自动的生成可供后端编码识别的接口文档,可以大大节省开发人员的文档编写工作,减少人员编写时的编写错误,进而减少接口联调时的试错工作,提升用户体验。
在步骤S3200之后,执行步骤S3300,通过解析所述接口文档,生成与所述目标接口格式信息对应的后端接口编码。
在经过步骤S3200,生成用于描述目标接口格式信息的接口文档之后,即可根据该接口文档,生成对应的后端接口编码。在本实施例中,以后端编码语言为java语言进行举例说明;当然,在具体实施时,后端编码语言也可以为其他编程语言,此处不做特殊限定。
在具体实施时,所述通过解析所述接口文档,生成与所述目标接口格式信息对应的后端接口编码,包括:建立所述接口文档中的字段描述类型与所述后端编码中的数据类型之间的对应关系;根据所述对应关系,对所述接口文档中的接口描述信息进行解析,生成所述后端接口编码。
请参看图6,其是用于示意后端接口编码的生成处理示意图。如图6所示,在生成后端接口编码时,可以先获取用户配置,例如,可以获取步骤S3200生成的接口文档的存储地址、以及待生成的后端接口编码文件的名称及其存储地址以及是否合并既存数据处理接口等配置项;之后,电子设备可以读取步骤S3200生成的接口文档,即,基于graphql语言生成的schema文件;之后,遍历该接口文档中的字段描述类型,即,schematype,并建立其与后端编码中的数据类型之间的对应关系;再之后,可以基于该对应关系,分别对接口文档中的每一接口描述信息进行解析,以生成对应的后端接口编码。
在具体实施时,所述根据所述对应关系,对所述接口文档中的接口描述信息进行解析,生成所述后端接口编码,包括:从所述接口描述信息中,获取任意一个接口描述信息作为第一待解析接口描述信息;根据所述对应关系,构建与所述第一待解析接口描述信息对应的第一数据处理接口,其中,所述第一数据处理接口中包括后端编码数据类型的编码实现,以及与所述后端编码数据类型对应的数据处理方法的编码实现;根据所述第一数据处理接口,生成所述后端接口编码。
具体来讲,针对接口文档中的任意一个待解析接口描述信息,即,对应前端页面中的一个接口信息,可以使用后端编码构建与该待解析接口描述信息对应的数据处理接口,例如,可以针对每一待解析接口描述信息,构建DataFetcherContainer对象,并根据上述对应关系,将该待解析接口描述信息中的字段,转换为后端编码数据类型的实际编码,以及对应的数据处理方法,例如,可以生成用于获取各字段的具体值的DataFetcher()方法。
如图6所示,在后端编码为java语言的情况下,后端生成的接口编码可以为与前端页面中的接口信息对应的java类文件。另外,在具体实施时,在生成java类时,也可以根据需要将该java类生成为接口类,此处不做特殊限定。
如图6所示,在构建所述第一数据处理接口的过程中,所述方法还包括:通过解析所述第一待解析接口描述信息,生成第一待确定数据处理接口;针对与所述第一待确定数据处理接口同名的第一既存数据处理接口,分别生成与所述第一待确定数据处理接口对应的第一抽象文法树,以及,生成与所述第一既存数据处理接口对应的第一既存抽象文法树;对所述第一抽象文法树和所述第一既存抽象文法树进行合并处理,获得合并后的抽象文法树;根据所述合并后的抽象文法树,构建所述第一数据处理接口。
在计算机科学中,抽象文法树(AST,Abstract Syntax Tree),或简称文法树(Syntax tree),是编码文法结构的一种抽象表示。它以树状的形式表现编程语言的文法结构,树上的每个节点都表示编码中的一种结构。之所以说语法是“抽象”的,是因为这里的文法并不会表示出真实文法中出现的每个细节。比如,嵌套括号被隐含在树的结构中,并没有以节点的形式呈现;而类似于if-condition-then这样的条件跳转语句,可以使用带有两个分支的节点来表示。
根据以上步骤S3100-S3300可知,本实施例的方法,在生成接口的过程中,由电子设备解析前端页面编码中的接口信息,生成对应的目标接口格式信息;之后,通过使用预设的文档描述语言生成用于描述该目标接口格式信息的接口文档,再通过解析该接口文档,即可方便、高效的生成对应的后端接口编码。该方法在生成接口的过程中,通过减少人工参与,由电子设备自动解析前端页面编码,以及使用预设的文档描述语言来生成对应的接口文档,可以方便、高效的生成后端接口编码。
<装置实施例>
与上述方法实施例相对应,在本实施例中,还提供一种接口生成装置,如图7所示,该装置7000可以包括前端页面编码解析模块7100、接口文档生成模块7200和后端接口编码生成模块7300。
该前端页面编码解析模块7100,用于解析前端页面编码中的接口信息,生成与所述前端页面对应的目标接口格式信息。
在一个例子中,该前端页面编码解析模块7100在解析前端页面编码中的接口信息,生成与所述前端页面对应的目标接口格式信息时,可以用于:获取所述前端页面中包含接口信息的组件集合;通过对所述组件集合中组件对应的接口信息进行解析,生成所述目标接口格式信息。
在一个例子中,该前端页面编码解析模块7100在通过对所述组件集合中组件对应的接口信息进行解析,生成所述目标接口格式信息时,可以用于:从所述组件集合中,获取第一组件的接口信息作为第一接口信息,其中,所述第一组件为所述组件集合中的任意组件;通过获取与所述第一接口信息对应的第一接口格式信息,生成所述目标接口格式信息。
在一个例子中,该前端页面编码解析模块7100在获取与所述第一接口信息对应的第一接口格式信息时,可以用于:获取所述第一接口信息的输入参数信息以及响应值信息;根据所述输入参数信息,生成与所述第一组件对应的第一输入参数格式信息;以及根据所述第一组件的组件类型以及所述响应值信息,生成与所述第一组件对应的第一响应格式信息;根据所述第一输入参数格式信息和所述第一响应格式信息,生成所述第一接口格式信息。
在一个例子中,该前端页面编码解析模块7100在根据所述输入参数信息,生成与所述第一组件对应的第一输入参数格式信息时,可以用于:根据所述输入参数信息中输入参数的数据类型,生成与所述输入参数信息对应的数据模型集合,其中,所述数据模型集合中的数据模型用于描述对应输入参数;根据所述数据模型集合,生成所述第一输入参数格式信息。
该接口文档生成模块7200,用于根据所述目标接口格式信息,通过预设的文档描述语言生成用于描述所述目标接口格式信息的接口文档。
在一个例子中,该接口文档生成模块7200在根据所述目标接口格式信息,使用预设的文档描述语言生成用于描述所述目标接口格式信息的接口文档时,可以用于:从所述目标接口格式信息中,获取第一待描述接口格式信息,其中,所述第一待描述接口格式信息为所述目标接口格式信息中的任意接口格式信息;根据所述第一待描述接口格式信息包含的字段的数据类型,使用所述预设的文档描述语言中的对应类型描述所述字段,生成与所述第一待描述接口格式信息对应的第一接口描述信息;根据所述第一接口描述信息,生成所述接口文档。
该后端接口编码生成模块7300,用于通过解析所述接口文档,生成与所述目标接口格式信息对应的后端接口编码。
在一个例子中,该后端接口编码生成模块7300在通过解析所述接口文档,生成与所述目标接口格式信息对应的后端接口编码时,可以用于:建立所述接口文档中的字段描述类型与所述后端编码中的数据类型之间的对应关系;根据所述对应关系,对所述接口文档中的接口描述信息进行解析,生成所述后端接口编码。
在一个例子中,该后端接口编码生成模块7300在根据所述对应关系,对所述接口文档中的接口描述信息进行解析,生成所述后端接口编码时,可以用于:从所述接口描述信息中,获取任意一个接口描述信息作为第一待解析接口描述信息;根据所述对应关系,构建与所述第一待解析接口描述信息对应的第一数据处理接口,其中,所述第一数据处理接口中包括后端编码数据类型的编码实现,以及与所述后端编码数据类型对应的数据处理方法的编码实现;根据所述第一数据处理接口,生成所述后端接口编码。
在一个例子中,在构建所述第一数据处理接口的过程中,该后端接口编码生成模块7300还可以用于:通过解析所述第一待解析接口描述信息,生成第一待确定数据处理接口;针对与所述第一待确定数据处理接口同名的第一既存数据处理接口,分别生成与所述第一待确定数据处理接口对应的第一抽象文法树,以及,生成与所述第一既存数据处理接口对应的第一既存抽象文法树;对所述第一抽象文法树和所述第一既存抽象文法树进行合并处理,获得合并后的抽象文法树;根据所述合并后的抽象文法树,构建所述第一数据处理接口。
<设备实施例>
与上述方法实施例相对应,在本实施例中,还提供一种电子设备,其可以包括根据本公开任意实施例的接口生成装置7000,用于实施本公开任意实施例的接口生成方法。
如图8所示,该电子设备8000还可以包括处理器8200和存储器8100,该存储器8100用于存储可执行的指令;该处理器8200用于根据指令的控制运行服务器以执行根据本公开任意实施例的接口生成方法。
以上装置7000的各个模块可以由处理器8200运行该指令以执行根据本公开任意实施例的接口生成方法来实现。
本公开可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施例。本公开的范围由所附权利要求来限定。

Claims (12)

1.一种接口生成方法,包括:
解析前端页面编码中的接口信息,生成与所述前端页面对应的目标接口格式信息;
根据所述目标接口格式信息,通过预设的文档描述语言生成用于描述所述目标接口格式信息的接口文档;
通过解析所述接口文档,生成与所述目标接口格式信息对应的后端接口编码。
2.根据权利要求1所述的方法,所述解析前端页面编码中的接口信息,生成与所述前端页面对应的目标接口格式信息,包括:
获取所述前端页面中包含接口信息的组件集合;
通过对所述组件集合中组件对应的接口信息进行解析,生成所述目标接口格式信息。
3.根据权利要求2所述的方法,所述通过对所述组件集合中组件对应的接口信息进行解析,生成所述目标接口格式信息,包括:
从所述组件集合中,获取第一组件的接口信息作为第一接口信息,其中,所述第一组件为所述组件集合中的任意组件;
通过获取与所述第一接口信息对应的第一接口格式信息,生成所述目标接口格式信息。
4.根据权利要求3所述的方法,所述获取与所述第一接口信息对应的第一接口格式信息,包括:
获取所述第一接口信息的输入参数信息以及响应值信息;
根据所述输入参数信息,生成与所述第一组件对应的第一输入参数格式信息;以及
根据所述第一组件的组件类型以及所述响应值信息,生成与所述第一组件对应的第一响应格式信息;
根据所述第一输入参数格式信息和所述第一响应格式信息,生成所述第一接口格式信息。
5.根据权利要求4所述的方法,所述根据所述输入参数信息,生成与所述第一组件对应的第一输入参数格式信息,包括:
根据所述输入参数信息中输入参数的数据类型,生成与所述输入参数信息对应的数据模型集合,其中,所述数据模型集合中的数据模型用于描述对应输入参数;
根据所述数据模型集合,生成所述第一输入参数格式信息。
6.根据权利要求1所述的方法,所述根据所述目标接口格式信息,使用预设的文档描述语言生成用于描述所述目标接口格式信息的接口文档,包括:
从所述目标接口格式信息中,获取第一待描述接口格式信息,其中,所述第一待描述接口格式信息为所述目标接口格式信息中的任意接口格式信息;
根据所述第一待描述接口格式信息包含的字段的数据类型,使用所述预设的文档描述语言中的对应类型描述所述字段,生成与所述第一待描述接口格式信息对应的第一接口描述信息;
根据所述第一接口描述信息,生成所述接口文档。
7.根据权利要求1所述的方法,所述通过解析所述接口文档,生成与所述目标接口格式信息对应的后端接口编码,包括:
建立所述接口文档中的字段描述类型与所述后端编码中的数据类型之间的对应关系;
根据所述对应关系,对所述接口文档中的接口描述信息进行解析,生成所述后端接口编码。
8.根据权利要求7所述的方法,所述根据所述对应关系,对所述接口文档中的接口描述信息进行解析,生成所述后端接口编码,包括:
从所述接口描述信息中,获取任意一个接口描述信息作为第一待解析接口描述信息;
根据所述对应关系,构建与所述第一待解析接口描述信息对应的第一数据处理接口,其中,所述第一数据处理接口中包括后端编码数据类型的编码实现,以及与所述后端编码数据类型对应的数据处理方法的编码实现;
根据所述第一数据处理接口,生成所述后端接口编码。
9.根据权利要求8所述的方法,在构建所述第一数据处理接口的过程中,所述方法还包括:
通过解析所述第一待解析接口描述信息,生成第一待确定数据处理接口;
针对与所述第一待确定数据处理接口同名的第一既存数据处理接口,分别生成与所述第一待确定数据处理接口对应的第一抽象文法树,以及,生成与所述第一既存数据处理接口对应的第一既存抽象文法树;
对所述第一抽象文法树和所述第一既存抽象文法树进行合并处理,获得合并后的抽象文法树;
根据所述合并后的抽象文法树,构建所述第一数据处理接口。
10.根据权利要求1所述的方法,所述预设的接口描述语言包括graphql语言。
11.一种接口生成装置,包括:
前端页面编码解析模块,用于解析前端页面编码中的接口信息,生成与所述前端页面对应的目标接口格式信息;
接口文档生成模块,用于根据所述目标接口格式信息,通过预设的文档描述语言生成用于描述所述目标接口格式信息的接口文档;
后端接口编码生成模块,用于通过解析所述接口文档,生成与所述目标接口格式信息对应的后端接口编码。
12.一种电子设备,包括权利要求11所述的接口生成装置;或者,
所述服务器包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述指令的控制运行所述电子设备执行如权利要求1-10任意一项所述的方法。
CN202010864947.2A 2020-08-25 2020-08-25 接口生成方法、装置及电子设备 Active CN112130830B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010864947.2A CN112130830B (zh) 2020-08-25 2020-08-25 接口生成方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010864947.2A CN112130830B (zh) 2020-08-25 2020-08-25 接口生成方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN112130830A true CN112130830A (zh) 2020-12-25
CN112130830B CN112130830B (zh) 2024-03-19

Family

ID=73848557

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010864947.2A Active CN112130830B (zh) 2020-08-25 2020-08-25 接口生成方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN112130830B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113741878A (zh) * 2021-08-30 2021-12-03 上海明略人工智能(集团)有限公司 基于GraphQL的接口构建方法、系统、电子设备及存储介质
CN114356786A (zh) * 2022-03-11 2022-04-15 中电云数智科技有限公司 一种基于接口自动生成的iam接口权限验证方法和装置
CN117172214A (zh) * 2023-11-02 2023-12-05 企查查科技股份有限公司 Api文件转换方法、系统及计算机存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8006225B1 (en) * 2004-06-03 2011-08-23 Synposys, Inc. Method and system for automatic generation of instruction-set documentation from an abstract processor model described using a hierarchical architectural description language
CN110162296A (zh) * 2019-04-15 2019-08-23 平安科技(深圳)有限公司 应用程序编程接口文档的生成方法、装置及终端设备
CN110196733A (zh) * 2019-06-06 2019-09-03 深圳市伊欧乐科技有限公司 一种预设api文档生成方法、装置、设备和存储介质
CN110806863A (zh) * 2019-11-05 2020-02-18 泰康保险集团股份有限公司 接口文档生成方法及装置、电子设备、存储介质
CN110955416A (zh) * 2019-10-12 2020-04-03 平安普惠企业管理有限公司 接口文档生成方法、装置、设备和计算机存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8006225B1 (en) * 2004-06-03 2011-08-23 Synposys, Inc. Method and system for automatic generation of instruction-set documentation from an abstract processor model described using a hierarchical architectural description language
CN110162296A (zh) * 2019-04-15 2019-08-23 平安科技(深圳)有限公司 应用程序编程接口文档的生成方法、装置及终端设备
CN110196733A (zh) * 2019-06-06 2019-09-03 深圳市伊欧乐科技有限公司 一种预设api文档生成方法、装置、设备和存储介质
CN110955416A (zh) * 2019-10-12 2020-04-03 平安普惠企业管理有限公司 接口文档生成方法、装置、设备和计算机存储介质
CN110806863A (zh) * 2019-11-05 2020-02-18 泰康保险集团股份有限公司 接口文档生成方法及装置、电子设备、存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
曹榕榕;郑建立;张璐;侯露杰;: "基于ANTLR的HL7按需解析程序自动生成技术", 信息技术, no. 01 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113741878A (zh) * 2021-08-30 2021-12-03 上海明略人工智能(集团)有限公司 基于GraphQL的接口构建方法、系统、电子设备及存储介质
CN113741878B (zh) * 2021-08-30 2023-08-25 上海明略人工智能(集团)有限公司 基于GraphQL的接口构建方法、系统、电子设备及存储介质
CN114356786A (zh) * 2022-03-11 2022-04-15 中电云数智科技有限公司 一种基于接口自动生成的iam接口权限验证方法和装置
CN114356786B (zh) * 2022-03-11 2022-06-07 中电云数智科技有限公司 一种基于接口自动生成的iam接口权限验证方法和装置
CN117172214A (zh) * 2023-11-02 2023-12-05 企查查科技股份有限公司 Api文件转换方法、系统及计算机存储介质

Also Published As

Publication number Publication date
CN112130830B (zh) 2024-03-19

Similar Documents

Publication Publication Date Title
CN112130830B (zh) 接口生成方法、装置及电子设备
CN111708557B (zh) 更新配置文件的方法、设备及存储介质
CN111736840A (zh) 小程序应用的编译方法、运行方法、存储介质及电子设备
CN110955410B (zh) 一种代码自动生成方法、装置、设备及介质
CN111125064B (zh) 一种生成数据库模式定义语句的方法和装置
CN110543301A (zh) jenkins代码文件的生成方法及装置
CN111767096A (zh) 接口文档的生成方法、装置、设备及计算机可读存储介质
CN113656124A (zh) 登录页面的生成方法及其装置
CN110752968B (zh) 性能基准测试方法、装置、电子设备及存储介质
CN115599386A (zh) 代码生成方法、装置、设备及存储介质
CN113190229A (zh) 政务事项页面生成方法及装置
CN112579093B (zh) 一种信息推送方法、装置及相关设备
CN112860713B (zh) 用于获取图层数据的方法、电子设备和存储介质
CN112270176B (zh) 深度学习框架中模式转换的方法、装置和计算机存储介质
CN114661402A (zh) 一种界面渲染方法、装置、电子设备及计算机可读介质
CN114637531A (zh) 应用程序接口动态生成方法及装置
CN114449063A (zh) 一种报文处理方法、装置及设备
CN113110844A (zh) 一种数据库更新方法及系统
CN112882698A (zh) 开发环境的生成方法及装置、计算机存储介质及电子设备
CN113010471A (zh) 文件转换方法、文件转换装置、存储介质及电子设备
CN111680032B (zh) 一种处理信息发送任务的方法、装置和电子设备
CN111709118B (zh) 核电仿真数据协同方法及装置
CN111983962B (zh) 一种用于生成业务流的映射关系的系统及方法
CN111782248B (zh) 一种终端应用的更新方法、装置和电子设备
CN117111903A (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