CN113138757A - 前端代码自动生成方法、装置、服务器、系统及介质 - Google Patents

前端代码自动生成方法、装置、服务器、系统及介质 Download PDF

Info

Publication number
CN113138757A
CN113138757A CN202110513866.2A CN202110513866A CN113138757A CN 113138757 A CN113138757 A CN 113138757A CN 202110513866 A CN202110513866 A CN 202110513866A CN 113138757 A CN113138757 A CN 113138757A
Authority
CN
China
Prior art keywords
interface
definition
list
code
file
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
CN202110513866.2A
Other languages
English (en)
Other versions
CN113138757B (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.)
Industrial and Commercial Bank of China Ltd ICBC
ICBC Technology Co Ltd
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
ICBC 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 Industrial and Commercial Bank of China Ltd ICBC, ICBC Technology Co Ltd filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202110513866.2A priority Critical patent/CN113138757B/zh
Publication of CN113138757A publication Critical patent/CN113138757A/zh
Application granted granted Critical
Publication of CN113138757B publication Critical patent/CN113138757B/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
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开提供了一种前端代码自动生成方法,包括:获取后端接口的接口定义文件;将接口定义文件中包括的接口对象定义、服务请求及配置定义信息分别提取出来,生成对象定义列表、请求列表及配置定义列表;将对象定义列表、服务请求列表及配置定义列表分别输入各自对应的预设模板,生成对应的前端接口代码。该方法可以自动生成与后端接口对应的前端接口代码,避免随着后端接口的更改还需手动更改前端代码,节省人力成本。

Description

前端代码自动生成方法、装置、服务器、系统及介质
技术领域
本公开涉及金融及计算机技术领域,更具体地,涉及一种前端代码自动生成方法、装置、服务器、计算机系统及介质。
背景技术
在前端代码编写过程中,时常面临如下问题:随着后端接口的变化,需要重新编写与后端接口对接的前端接口定义以及service服务,且前后端分离式架构如若与不同后端人员进行对接,需要不断调整接口,容易出错,代码可维护性差,还会导致上线系统中存在大量的运行时问题需要定位,浪费开发时间成本。
发明内容
有鉴于此,本公开提供了一种前端代码自动生成方法、装置、服务器、计算机系统及介质。
本公开的一个方面提供了一种前端代码自动生成方法,包括:获取后端接口的接口定义文件;将所述接口定义文件中包括的接口对象定义、服务请求及配置定义信息分别提取出来,生成对象定义列表、请求列表及配置定义列表;将所述对象定义列表、服务请求列表及配置定义列表分别输入各自对应的预设模板,生成对应的前端接口代码。
可选地,所述将所述接口定义文件中包括的接口对象定义、服务请求及配置定义信息分别提取出来,生成对象定义列表、服务请求列表及配置定义列表包括:将所述接口定义文件输入预设的代码生成器,使所述代码生成器读取所述接口定义文件;基于各所述后端接口的标签,依次识别各所述后端接口;获取所述后端接口的接口对象定义、服务请求及配置定义信息,并分别将所述接口对象定义、服务请求及配置定义信息一一存入所述对象定义列表、请求列表及配置定义列表。
可选地,将所述对象定义列表、服务请求列表及配置定义列表分别输入各自对应的预设模板,生成对应的前端接口代码包括:将所述对象定义列表输入定义生成器,将服务请求列表输入请求生成器,将配置定义列表输入组件生成器,使所述定义生成器读取所述对象定义列表中的接口对象定义,所述请求生成器读取所述服务请求列表中与所述接口对象定义对应的服务请求,所述组件生成器读取所述配置定义列表中与所述接口对象定义对应的配置定义信息;所述定义生成器将所述接口对象定义和与所述配置定义信息输入预设的定义模板,得到前端接口定义代码文件;所述请求生成器将所述服务请求输入预设的请求模板,并加入服务请求头,得到前端接口请求代码文件。
可选地,还包括:当所述接口对象定义还依赖其他后端接口时,根据所述接口对象定义中的schema定义进行深度递归,查询与所述schema定义对应的后端接口;针对每一递归得到的后端接口,均获取其接口对象定义、服务请求及配置定义信息,并生成相应的前端接口定义代码和前端接口请求代码。
可选地,还包括:当使用所述接口对象定义时,在使用所述接口对象定义的前端代码内导入相应的前端接口定义代码文件和前端接口请求代码文件。
可选地,当所述接口对象定义还依赖其他后端接口时,导入所述前端代码的前端接口定义代码文件和前端接口请求代码文件包括与所述接口对象定义递归相关的全部前端接口定义代码文件和前端接口请求代码文件。
可选地,还包括:通过预设的接口请求命令提供后端服务,使前端服务器获取所述接口定义文件。
可选地,还包括:当所述代码生成器读取所述接口定义文件时,根据所述接口定义文件的协议版本调用相应的协议解析所述接口定义文件。
可选地,还包括生成所述前端接口代码后,检查所述前端接口代码;若所述前端接口代码存在缺陷,发出警告。
本公开另一方面提供了一种前端代码自动生成装置,设于前端服务器,包括:定义文件获取模块,用于获取后端接口的接口定义文件;文件切分模块,用于将所述接口定义文件中包括的接口对象定义、服务请求及配置定义信息分别提取出来,生成对象定义列表、请求列表及配置定义列表;代码生成模块,用于将所述对象定义列表、服务请求列表及配置定义列表分别输入各自对应的预设模板,生成对应的前端接口代码。
本公开另一方面提供了一种前端服务器,包括:如权利要求10所述的前端代码自动生成装置。
本公开另一方面提供了一种后端服务器,包括:定义文件生成模块,用于当后端服务器启动时,自动生成后端接口的接口定义文件。
可选地,所述后端服务器还包括:前端命令接收模块,用于接收前端服务器发送的接口请求指令;定义文件发送模块,用于根据所述接口请求指令,将所述接口定义文件发送给前端服务器。
本公开另一方面提供了一种计算机系统,包括:一个或多个处理器;存储器,用于存储一个或多个程序,其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现第一方面中任一项所述的方法。
本公开另一方面提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现第一方面中任一项所述的方法。
根据本公开的实施例,根据后端接口的接口定义文件,可使前端自动生成相应的前端接口代码,节省了人力成本,提高了开发效率。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了可以应用本公开的用于前端代码自动生成的方法的示例性系统架构;
图2示意性示出了根据本公开实施例的前端代码自动生成方法的流程图;
图3示意性示出了根据本公开实施例的前端代码自动生成方法的操作S2的流程图;
图4示意性示出了根据本公开实施例的前端代码自动生成方法的操作S3的流程图;
图5示意性示出了根据本公开实施例的对接口对象定义深度递归的流程图;
图6示意性示出了根据本公开实施例的检查前端接口代码的流程图;
图7示意性示出了根据本公开实施例生成的前端接口代码的应用方法;
图8示意性示出了根据本公开实施例提供的一种前端代码自动生成装置的示意图;
图9示意性示出了根据本公开实施例提供的一种前端代码自动生成装置的文件切分模块820的结构示意图;
图10示意性示出了根据本公开实施例提供的一种前端代码自动生成装置的代码生成模块830的结构示意图;
图11示意性示出了根据本公开实施例的前端服务器的示意图;
图12示意性示出了根据本公开实施例的后端服务器的示意图;
图13示意性示出了根据本公开实施例的前端服务器与后端服务器的交互示意图;以及
图14示意性示出了根据本公开实施例的适于实现机器人的计算机系统1400的框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
本公开的实施例提供了一种前端代码自动生成方法,该方法根据后端接口的接口定义文件自动生成对应的前端接口代码,可避免前端需频繁根据后端接口的变化修改代码,降低开发人员的工作量,提升开发效率。
图1示意性示出了根据本公开实施例的可以应用前端代码自动生成方法的示例性系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括前端服务器101、后端服务器102和网络103。网络103用以在前端服务器101、后端服务器102之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线和/或无线通信链路等等。
用户可以使用前端服务器101通过网络103与后端服务器102交互,以接收或发送消息等。前端服务器101、后端服务器102上均可以安装有各种开发软件,用于给用户提供开发前端、后端提供开发环境。
前端服务器101、后端服务器102可以是提供各种服务的服务器,例如对用户利用终端设备所浏览的网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以通过spring整合swagger,可将后端所有接口生成swagger文档,也就是我们说的接口定义文件,并将接口定义文件反馈给前端服务器101。终端设备可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
需要说明的是,本公开实施例所提供的前端代码自动生成方法一般可以由前端服务器101执行。相应地,本公开实施例所提供的前端代码自动生成装置一般可以设置于前端服务器101中。本公开实施例所提供的前端代码自动生成方法也可以由不同于前端服务器101且能够与终端设备和/或前端服务器101的服务器或服务器集群执行。相应地,本公开实施例所提供的前端代码自动生成装置也可以设置于不同于前端服务器101且能够与终端设备和/或前端服务器101通信的服务器或服务器集群中。或者,本公开实施例所提供的前端代码自动生成方法也可以由终端设备执行,或者也可以由不同于终端设备的其他终端设备执行。相应地,本公开实施例所提供的前端代码自动生成装置也可以设置于终端设备中,或设置于不同于终端设备的其他终端设备中。
例如,接口定义文件可以原本存储在后端服务器102之中,或者存储在外部存储设备上并可以导入到后端服务器102中。然后,后端服务器102将接口定义文件发送给前端服务器,以使前端服务器101可以在本地执行本公开实施例所提供的前端代码自动生成方法,或者将接口定义文件发送到其他终端设备、服务器101、或服务器集群,并由接收该接口定义文件的其他终端设备、服务器101、或服务器集群来执行本公开实施例所提供的图像处理方法。
应该理解,图1中的网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的网络和服务器。
图2示意性示出了根据本公开实施例的前端代码自动生成方法的流程图。
如图2所示,本公开实施例提供的一种前端代码自动生成方法包括操作S1~S3。
在操作S1,获取后端接口的接口定义文件。
在操作S2,将所述接口定义文件中包括的接口对象定义、服务请求及配置定义信息分别提取出来,生成对象定义列表、请求列表及配置定义列表。
在操作S3,将所述对象定义列表、服务请求列表及配置定义列表分别输入各自对应的预设模板,生成对应的前端接口代码。
根据本公开的实施例,本公开实施例提供的前端代码自动生成方法是基于openapi标准实现的一套代码生成方法,它能够根据标准openapi接口定义,生成前端的typescript服务代码。该方法的应用可降低开发人员的工作量,提高开发效率。其中,通过将接口定义文件中的内容拆分为对象定义列表、请求列表及配置定义列表,并基于这三个列表分别生成各自的前端代码文件,将前端接口代码的各组成代码分别管理,可实现代码的解耦,提高代码管理的灵活性。
下面将对本公开实施例提供的前端代码自动生成方法各步骤的具体实施步骤进行详细说明。
根据操作S1,获取后端接口的接口定义文件,具体实施方式为:通过预设的接口请求命令提供后端服务,使前端服务器获取所述接口定义文件。该接口请求命令可以为预设的npm命令行,提供后端服务切换服务,该服务通过http连接到后端服务拉取api定义接口,并且将接口定义对象传给代码生成器。代码生成器为开发人员预先编写的工具,用于根据操作S2读取接口定义文件。
图3示意性示出了根据本公开实施例的前端代码自动生成方法的操作S2的流程图。
如图3所示,根据本公开实施例提供的前端代码自动生成方法的操作S2,将所述接口定义文件中包括的接口对象定义、服务请求及配置定义信息分别提取出来,生成对象定义列表、服务请求列表及配置定义列表,具体流程包括操作S210~S230。
在操作S210,将所述接口定义文件输入预设的代码生成器,使所述代码生成器读取所述接口定义文件。
在操作S220,基于各所述后端接口的标签,依次识别各所述后端接口。
在操作S230,获取所述后端接口的接口对象定义、服务请求及配置定义信息,并分别将所述接口对象定义、服务请求及配置定义信息一一存入所述对象定义列表、请求列表及配置定义列表。
在本公开实施例中,接口定义文件为后端通过springboot整合swagger后生成的接口的swagger.json文档。该接口定义文档依据openapi标准编写,代码生成器可依据openapi标准读取该接口定义文档,通过读取后端接口的标签识别接口代码,并从中提取接口对象定义、服务请求及配置定义信息,从而生成对象定义列表、请求列表及配置定义列表。
需要说明的是,由于不同版本的swagger定义的关键字不同,当所述代码生成器读取所述接口定义文件时,需根据所述接口定义文件的协议版本调用相应的协议解析所述接口定义文件。
在本公开实施例中,解析器负责解析接口定义文件,其首先根据读入swagger定义文件的版本不同,调用不同的函数进行解析,解析函数将穷举该标准支持的协议类型,目前swagger2支持的有:′GET′,′POST′,′PUT′,′DELETE′,′PATCH′,′COPY′,′HEAD′,′OPTIONS′,′LINK′,′UNLIK′,′PURGE′,′LOCK′,′UNLOCK′,′PROPFIND′,swagger1支持的有′GET′,′POST′。
图4示意性示出了根据本公开实施例的前端代码自动生成方法的操作S3的流程图。
如图4所示,根据本公开实施例提供的前端代码自动生成方法的操作S3,将所述对象定义列表、服务请求列表及配置定义列表分别输入各自对应的预设模板,生成对应的前端接口代码,具体包括操作S310~S330。
在操作S310,将所述对象定义列表输入定义生成器,将服务请求列表输入请求生成器,将配置定义列表输入组件生成器,使所述定义生成器读取所述对象定义列表中的接口对象定义,所述请求生成器读取所述服务请求列表中与所述接口对象定义对应的服务请求,所述组件生成器读取所述配置定义列表中与所述接口对象定义对应的配置定义信息。
在操作S320,所述定义生成器将所述接口对象定义和与所述配置定义信息输入预设的定义模板,得到前端接口定义代码文件。
在操作S330,所述请求生成器将所述服务请求输入预设的请求模板,并加入服务请求头,得到前端接口请求代码文件。
根据本公开的实施例,通过定义生成器读取对象定义列表中的接口对象定义,通过所述组件生成器读取所述配置定义列表获取与该接口对象定义对应的配置定义信息,并生成前端接口定义代码,将得到的前端接口定义存储与单独的前端接口定义代码文件中;通过请求生成器读取所述服务请求列表,获取与所述组件生成器读取所述配置定义列,加入服务请求头,得到与后端接口对应的服务请求,并将其存入单独的前端接口请求代码文件中。其中,本公开实施例将前端的接口定义代码和服务请求代码分别存储与文件中,即将前端接口代码进行了切割,从而完成了代码切分模式的生成,大大提高了生成代码的可维护性和可读性。
图5示意性示出了根据本公开实施例的对接口对象定义深度递归的流程图。
如图5所示,当所述接口对象定义还依赖其他后端接口时,本公开实施例提供的前端代码自动生成方法还包括操作S341~S342。
在操作S341,当所述接口对象定义还依赖其他后端接口时,根据所述接口对象定义中的schema定义进行深度递归,查询与所述schema定义对应的后端接口。
在操作S342,针对每一递归得到的后端接口,均获取其接口对象定义、服务请求及配置定义信息,并生成相应的前端接口定义代码和前端接口请求代码。
在本公开实施例中,当后端的接口对象定义的服务还引用其他接口时,此时即存在了接口的多层引用,在此情况下,若仅根据当前的后端接口对象定义生成前端接口定义代码,并不能为前端提供完成的服务,还应对后端接口对象定义进行深度递归,依次获取该后端接口对象定义引用的多层接口,根据后端接口对象定义引用的多层接口,分别生成相应的前端接口定义代码,并导入到前端代码中,才能获取完成的服务。
图6示意性示出了根据本公开实施例的检查前端接口代码的流程图。
如图6所示,在生成前端接口代码后,本公开实施例还包括对前端接口代码的检查方法,包括操作S351~S352。
在操作S351,生成所述前端接口代码后,检查所述前端接口代码。
在操作S352,若所述前端接口代码存在缺陷,发出警告。
在本公开实施例中,依靠vue自身的检查能力,能够自动提示新生成的代码是否存在缺陷,如上层的vue组件调用了不存在的接口服务,vue的命令行会自动提示告警。如果无告警,则可认为新生成的代码无缺陷,可与前端上层组件进行对接。
图7示意性示出了根据本公开实施例生成的前端接口代码的应用方法。
如图7所示,在本公开实施例中,为了使前端能生成与后端接口对应的前端接口,其应用方法包括步骤S361~S362。
在操作S361,当使用所述前端接口对象定义代码时,在使用所述接口对象定义的前端代码内导入相应的前端接口定义代码文件和前端接口请求代码文件。
在操作S362,当所述接口对象定义还依赖其他后端接口时,导入所述前端代码的前端接口定义代码文件和前端接口请求代码文件包括与所述接口对象定义递归相关的全部前端接口定义代码文件和前端接口请求代码文件。
根据本公开实施例,在前端代码中导入与后端接口对应的前端接口定义代码文件和前端接口请求代码文件后,即相当于在前端代码中生成了相应的接口,用于与后端接口通讯服务。
图8示意性示出了根据本公开实施例提供的一种前端代码自动生成装置的示意图。
如图8所示,本公开实施例提供的一种前端代码自动生成装置800包括:定义文件获取模块810,文件切分模块820,代码生成模块830。
定义文件获取模块810,用于获取后端接口的接口定义文件。
文件切分模块820,用于将所述接口定义文件中包括的接口对象定义、服务请求及配置定义信息分别提取出来,生成对象定义列表、请求列表及配置定义列表。
代码生成模块830,用于将所述对象定义列表、服务请求列表及配置定义列表分别输入各自对应的预设模板,生成对应的前端接口代码。
可选地,文件切分模块820可以包括:文件输入模块821,标签识别模块822,列表生成模块823。
文件输入模块821,用于将所述接口定义文件输入预设的代码生成器,使所述代码生成器读取所述接口定义文件。
标签识别模块822,用于基于各所述后端接口的标签,依次识别各所述后端接口。
列表生成模块823,用于获取所述后端接口的接口对象定义、服务请求及配置定义信息,并分别将所述接口对象定义、服务请求及配置定义信息一一存入所述对象定义列表、请求列表及配置定义列表。
可选地,代码生成模块830可以包括:列表读取模块831,前端接口定义代码生成模块832,前端请求生成模块833。
列表读取模块831,用于将所述对象定义列表输入定义生成器,将服务请求列表输入请求生成器,将配置定义列表输入组件生成器,使所述定义生成器读取所述对象定义列表中的接口对象定义,所述请求生成器读取所述服务请求列表中与所述接口对象定义对应的服务请求,所述组件生成器读取所述配置定义列表中与所述接口对象定义对应的配置定义信息。
前端接口定义代码生成模块832,用于使所述定义生成器将所述接口对象定义和与所述配置定义信息输入预设的定义模板,得到前端接口定义代码文件。
前端请求生成模块833,用于使所述请求生成器将所述服务请求输入预设的请求模板,并加入服务请求头,得到前端接口请求代码文件。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,定义文件获取模块810、文件切分模块820、代码生成模块830中的任意多个可以合并在一个模块/单元/子单元中实现,或者其中的任意一个模块/单元/子单元可以被拆分成多个模块/单元/子单元。或者,这些模块/单元/子单元中的一个或多个模块/单元/子单元的至少部分功能可以与其他模块/单元/子单元的至少部分功能相结合,并在一个模块/单元/子单元中实现。根据本公开的实施例,定义文件获取模块810、文件切分模块820、代码生成模块830中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,定义文件获取模块810、文件切分模块820、代码生成模块830中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
需要说明的是,本公开的实施例中前端代码自动生成装置部分与本公开的实施例中前端代码自动生成方法部分是相对应的,前端代码自动生成装置部分的描述具体参考前端代码自动生成方法部分,在此不再赘述。
图11示意性示出了根据本公开实施例的前端服务器的示意图。
如图11所示,本公开实施例提供的一种前端服务器1100,包括:如图8所示的前端代码自动生成装置,用于执行本公开实施例提供的前端代码自动生成方法。
图12示意性示出了根据本公开实施例的后端服务器的示意图。
如图12所示,本公开实施例提供的一种后端服务器1200,包括:定义文件生成模块1220。
定义文件生成模块1220,用于当后端服务器1200启动时,自动生成后端接口的接口定义文件。
在本公开实施例中,该后端服务器1200还包括:前端命令接收模块1210,定义文件发送模块1230。
前端命令接收模块1210,用于接收前端服务器1100发送的接口请求指令。
定义文件发送模块1230,用于根据所述接口请求指令,将所述接口定义文件发送给前端服务器1100。
图13示意性示出了根据本公开实施例的前端服务器与后端服务器的交互示意图。
如图13所示,本公开实施例中的前端服务器1100与后端服务器1200之间的交互包括,前端代码自动生成装置800向后端服务器1200发送预设的接口请求命令;后端服务器1200中的前端命令接收模块1210收到接口请求命令后,令定义文件生成模块1220生成接口定义文件,并通过定义文件发送模块1230发送给前端代码自动生成装置800。前端代码自动生成装置800读取接口定义文件,将所述接口定义文件中包括的接口对象定义、服务请求及配置定义信息分别提取出来,生成对象定义列表、请求列表及配置定义列表,并将所述对象定义列表、服务请求列表及配置定义列表分别输入各自对应的预设模板,生成对应的前端接口代码。该前端接口代码分为前端接口定义代码文件和前端接口请求代码文件,进行切分存储,大大提高了生成代码的可维护性和可读性。
图14示意性示出了根据本公开实施例的适于实现上文描述的方法的计算机系统的框图。图14示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图14所示,根据本公开实施例的计算机系统1400包括处理器1401,其可以根据存储在只读存储器(ROM)1402中的程序或者从存储部分1408加载到随机访问存储器(RAM)1403中的程序而执行各种适当的动作和处理。处理器1401例如可以包括通用微处理器(例如CPU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器1401还可以包括用于缓存用途的板载存储器。处理器1401可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 1403中,存储有系统1400操作所需的各种程序和数据。处理器1401、ROM1402以及RAM 1403通过总线1404彼此相连。处理器1401通过执行ROM 1402和/或RAM 1403中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,所述程序也可以存储在除ROM 1402和RAM 1403以外的一个或多个存储器中。处理器1401也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。
根据本公开的实施例,系统1400还可以包括输入/输出(I/O)接口1405,输入/输出(I/O)接口1405也连接至总线1404。系统1400还可以包括连接至I/O接口1405的以下部件中的一项或多项:包括键盘、鼠标等的输入部分1406;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1407;包括硬盘等的存储部分1408;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1409。通信部分1409经由诸如因特网的网络执行通信处理。驱动器1410也根据需要连接至I/O接口1405。可拆卸介质1411,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1410上,以便于从其上读出的计算机程序根据需要被安装入存储部分1408。
根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1409从网络上被下载和安装,和/或从可拆卸介质1411被安装。在该计算机程序被处理器1401执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读存储介质可以是非易失性的计算机可读存储介质。例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
例如,根据本公开的实施例,计算机可读存储介质可以包括上文描述的ROM 1402和/或RAM 1403和/或ROM 1402和RAM 1403以外的一个或多个存储器。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是,这些实施例仅仅是为了说明的目的,而并非为了限制本公开的范围。尽管在以上分别描述了各实施例,但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围,本领域技术人员可以做出多种替代和修改,这些替代和修改都应落在本公开的范围之内。

Claims (15)

1.一种前端代码自动生成方法,包括:
获取后端接口的接口定义文件;
将所述接口定义文件中包括的接口对象定义、服务请求及配置定义信息分别提取出来,生成对象定义列表、请求列表及配置定义列表;
将所述对象定义列表、服务请求列表及配置定义列表分别输入各自对应的预设模板,生成对应的前端接口代码。
2.根据权利要求1所述的方法,其中,所述将所述接口定义文件中包括的接口对象定义、服务请求及配置定义信息分别提取出来,生成对象定义列表、服务请求列表及配置定义列表包括:
将所述接口定义文件输入预设的代码生成器,使所述代码生成器读取所述接口定义文件;
基于各所述后端接口的标签,依次识别各所述后端接口;
获取所述后端接口的接口对象定义、服务请求及配置定义信息,并分别将所述接口对象定义、服务请求及配置定义信息一一存入所述对象定义列表、请求列表及配置定义列表。
3.根据权利要求1所述的方法,其中,将所述对象定义列表、服务请求列表及配置定义列表分别输入各自对应的预设模板,生成对应的前端接口代码包括:
将所述对象定义列表输入定义生成器,将服务请求列表输入请求生成器,将配置定义列表输入组件生成器,使所述定义生成器读取所述对象定义列表中的接口对象定义,所述请求生成器读取所述服务请求列表中与所述接口对象定义对应的服务请求,所述组件生成器读取所述配置定义列表中与所述接口对象定义对应的配置定义信息;
所述定义生成器将所述接口对象定义和与所述配置定义信息输入预设的定义模板,得到前端接口定义代码文件;
所述请求生成器将所述服务请求输入预设的请求模板,并加入服务请求头,得到前端接口请求代码文件。
4.根据权利要求3所述的方法,还包括:
当所述接口对象定义还依赖其他后端接口时,根据所述接口对象定义中的schema定义进行深度递归,查询与所述schema定义对应的后端接口;
针对每一递归得到的后端接口,均获取其接口对象定义、服务请求及配置定义信息,并生成相应的前端接口定义代码和前端接口请求代码。
5.根据权利要求4所述的方法,还包括:
当使用所述前端接口对象定义代码时,在使用所述接口对象定义的前端代码内导入相应的前端接口定义代码文件和前端接口请求代码文件。
6.根据权利要求5所述的方法,其中,
当所述接口对象定义还依赖其他后端接口时,导入所述前端代码的前端接口定义代码文件和前端接口请求代码文件包括与所述接口对象定义递归相关的全部前端接口定义代码文件和前端接口请求代码文件。
7.根据权利要求1所述的方法,还包括:
通过预设的接口请求命令提供后端服务,使前端服务器获取所述接口定义文件。
8.根据权利要求2所述的方法,还包括:
当所述代码生成器读取所述接口定义文件时,根据所述接口定义文件的协议版本调用相应的协议解析所述接口定义文件。
9.根据权利要求1所述的方法,还包括
生成所述前端接口代码后,检查所述前端接口代码;
若所述前端接口代码存在缺陷,发出警告。
10.一种前端代码自动生成装置,设于前端服务器,包括:
定义文件获取模块,用于获取后端接口的接口定义文件;
文件切分模块,用于将所述接口定义文件中包括的接口对象定义、服务请求及配置定义信息分别提取出来,生成对象定义列表、请求列表及配置定义列表;
代码生成模块,用于将所述对象定义列表、服务请求列表及配置定义列表分别输入各自对应的预设模板,生成对应的前端接口代码。
11.一种前端服务器,包括:
如权利要求10所述的前端代码自动生成装置。
12.一种后端服务器,包括:
定义文件生成模块,用于当后端服务器启动时,自动生成后端接口的接口定义文件。
13.根据权利要求12所述的后端服务器,还包括:
前端命令接收模块,用于接收前端服务器发送的接口请求指令;
定义文件发送模块,用于根据所述接口请求指令,将所述接口定义文件发送给前端服务器。
14.一种计算机系统,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至9中任一项所述的方法。
15.一种计算机可读存储介质,其上存储有可执行指令,该指令被处理器执行时使处理器实现权利要求1至9中任一项所述的方法。
CN202110513866.2A 2021-05-11 2021-05-11 前端代码自动生成方法、装置、服务器、系统及介质 Active CN113138757B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110513866.2A CN113138757B (zh) 2021-05-11 2021-05-11 前端代码自动生成方法、装置、服务器、系统及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110513866.2A CN113138757B (zh) 2021-05-11 2021-05-11 前端代码自动生成方法、装置、服务器、系统及介质

Publications (2)

Publication Number Publication Date
CN113138757A true CN113138757A (zh) 2021-07-20
CN113138757B CN113138757B (zh) 2024-03-29

Family

ID=76816931

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110513866.2A Active CN113138757B (zh) 2021-05-11 2021-05-11 前端代码自动生成方法、装置、服务器、系统及介质

Country Status (1)

Country Link
CN (1) CN113138757B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114327615A (zh) * 2022-03-09 2022-04-12 湖南云畅网络科技有限公司 一种基于大数据的接口文档生成方法及系统
CN114692383A (zh) * 2021-11-16 2022-07-01 国家电投集团科学技术研究院有限公司 全范围模拟机仿真对象的建模方法、装置及计算机设备
CN116112479A (zh) * 2022-12-08 2023-05-12 联通(浙江)产业互联网有限公司 http接口实现方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117131A (zh) * 2018-08-16 2019-01-01 杭州云纪网络科技有限公司 代码生成方法及装置、存储介质及电子终端
CN110502242A (zh) * 2019-08-26 2019-11-26 深圳前海环融联易信息科技服务有限公司 代码自动生成方法、装置、计算机设备及存储介质
CN110515608A (zh) * 2019-08-30 2019-11-29 网易(杭州)网络有限公司 一种接口代码的生成方法及装置、电子设备、存储介质
CN111752644A (zh) * 2020-06-18 2020-10-09 北京字节跳动网络技术有限公司 接口模拟方法、装置、设备及存储介质
CN112631557A (zh) * 2020-12-18 2021-04-09 深圳赛安特技术服务有限公司 生成接口代码和/或接口文档的方法、装置及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109117131A (zh) * 2018-08-16 2019-01-01 杭州云纪网络科技有限公司 代码生成方法及装置、存储介质及电子终端
CN110502242A (zh) * 2019-08-26 2019-11-26 深圳前海环融联易信息科技服务有限公司 代码自动生成方法、装置、计算机设备及存储介质
CN110515608A (zh) * 2019-08-30 2019-11-29 网易(杭州)网络有限公司 一种接口代码的生成方法及装置、电子设备、存储介质
CN111752644A (zh) * 2020-06-18 2020-10-09 北京字节跳动网络技术有限公司 接口模拟方法、装置、设备及存储介质
CN112631557A (zh) * 2020-12-18 2021-04-09 深圳赛安特技术服务有限公司 生成接口代码和/或接口文档的方法、装置及存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114692383A (zh) * 2021-11-16 2022-07-01 国家电投集团科学技术研究院有限公司 全范围模拟机仿真对象的建模方法、装置及计算机设备
CN114327615A (zh) * 2022-03-09 2022-04-12 湖南云畅网络科技有限公司 一种基于大数据的接口文档生成方法及系统
CN114327615B (zh) * 2022-03-09 2022-06-28 湖南云畅网络科技有限公司 一种基于大数据的接口文档生成方法及系统
CN116112479A (zh) * 2022-12-08 2023-05-12 联通(浙江)产业互联网有限公司 http接口实现方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN113138757B (zh) 2024-03-29

Similar Documents

Publication Publication Date Title
CN113138757B (zh) 前端代码自动生成方法、装置、服务器、系统及介质
CN111221521A (zh) 日志代码的生成方法、装置、计算机系统和可读存储介质
CN113778848A (zh) 测试代码生成方法、装置、计算机系统及介质
CN113032244A (zh) 接口测试方法、装置、计算机系统和计算机可读存储介质
CN115080433A (zh) 基于流量回放的测试方法及装置
CN113434098B (zh) 打印功能实现方法、装置、电子设备、系统和存储介质
CN113553260B (zh) 测试方法、测试装置、设备和介质
CN113535577A (zh) 基于知识图谱的应用测试方法、装置、电子设备和介质
CN111930629A (zh) 页面测试方法、装置、电子设备及存储介质
CN110825622A (zh) 软件测试方法、装置、设备和计算机可读介质
CN115080434A (zh) 案例执行方法、装置、设备和介质
CN113448578A (zh) 页面数据处理方法、处理系统、电子设备和可读存储介质
CN113535568A (zh) 应用部署版本的验证方法、装置、设备和介质
CN114677114A (zh) 基于图形拖拽的审批流程生成方法及装置
CN113656041A (zh) 数据处理方法、装置、设备及存储介质
CN114691527A (zh) 单元测试案例生成方法、装置、设备、介质和程序产品
CN113392311A (zh) 字段搜索方法、字段搜索装置、电子设备及存储介质
CN113821430A (zh) 一种多服务测试方法和装置
CN112783903A (zh) 生成更新日志的方法和装置
CN116594876A (zh) 一种接口测试方法、装置、设备及存储介质
CN114385229A (zh) 代码处理方法、装置、设备、介质和程序产品
CN116401170A (zh) 埋点管理方法、装置、电子设备、介质和计算机程序产品
CN113900652A (zh) 对比测试脚本自动转换方法、装置、设备、介质及产品
CN113220304A (zh) 冗余类的检测方法、装置、电子设备以及可读存储介质
CN111625423A (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