CN113741878A - 基于GraphQL的接口构建方法、系统、电子设备及存储介质 - Google Patents

基于GraphQL的接口构建方法、系统、电子设备及存储介质 Download PDF

Info

Publication number
CN113741878A
CN113741878A CN202111004342.7A CN202111004342A CN113741878A CN 113741878 A CN113741878 A CN 113741878A CN 202111004342 A CN202111004342 A CN 202111004342A CN 113741878 A CN113741878 A CN 113741878A
Authority
CN
China
Prior art keywords
graphql
components
interface
component
engineering
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
CN202111004342.7A
Other languages
English (en)
Other versions
CN113741878B (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.)
Shanghai Minglue Artificial Intelligence Group Co Ltd
Original Assignee
Shanghai Minglue Artificial Intelligence Group 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 Shanghai Minglue Artificial Intelligence Group Co Ltd filed Critical Shanghai Minglue Artificial Intelligence Group Co Ltd
Priority to CN202111004342.7A priority Critical patent/CN113741878B/zh
Publication of CN113741878A publication Critical patent/CN113741878A/zh
Application granted granted Critical
Publication of CN113741878B publication Critical patent/CN113741878B/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/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/37Compiler construction; Parser generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提出一种基于GraphQL的接口构建方法、系统、电子设备及存储介质,其方法技术方案包括GraphQL组件构建步骤,在后端开发GraphQL组件,所述GraphQL组件包括GraphQL的Schema、Resolver解析器和服务对象声明;接口能力配置步骤,遍历所有的所述GraphQL组件,获取所述GraphQL组件的输入及输出信息,对所述GraphQL组件进行组合和配置,并进一步生成源码;工程框架执行步骤,将所述源码引入工程,通过所述工程对所述源码编译部署后进行执行。本申请解决了现有方法专业素养要求高、部署上线慢、开发周期长的问题。

Description

基于GraphQL的接口构建方法、系统、电子设备及存储介质
技术领域
本发明属于软件工程技术领域,尤其涉及一种基于GraphQL的接口构建方法、系统、电子设备及存储介质。
背景技术
随着现在APP业务越来越复杂,API增长呈爆炸趋势。同时为了满足端上多元化的需求,代码逻辑也越来越复杂,内部逻辑为了复用一些功能模块往往充斥着if...else...,总体而言,项目越来越复杂,维护成本呈指数级上升。而对于客户端,面对逐渐复杂起来的业务而言,往往需要通过多个协议才能够获取到它所需的完整数据。由于对某个协议而言客户端也许只需要其中的某几个字段,这个过程会造成较多的冗余数据;同时需要组合太多协议,导致客户端逻辑复杂,维护困难。
为了解决上述问题,同时降低前后端耦合,通常可以引入GraphQL作为技术方案。根据项目需求,组合一套完整的GraphQL的Schema,在后端实现该Schema的解析器Resolver,这样客户端可以清晰地知道后端能够提供哪些数据的查询工作,据此根据需要编写查询语句,一次查询即可精确获得结果。而后端则在编写解析器Resolver时,组合调用相应的API,获取对应的数据。这个方案相当于前后端的耦合降低了。同时后端考虑API接口时,重心放在粒度划分上,而不是需求上,只需要提供足够小粒度的API即可。这样前后端的代码复杂程度得到了很好的控制。
但是引入GraphQL后,后端仍然需要专人根据需求编写相应的Schema和解析器Resolver,编译项目,部署发布。通常需要有较专业素养要求,同时也存在部署上线慢,开发周期长等问题。
发明内容
本申请实施例提供了一种基于GraphQL的接口构建方法、系统、电子设备及存储介质,以至少解决现有方法专业素养要求高、部署上线慢、开发周期长的问题。
第一方面,本申请实施例提供了一种基于GraphQL的接口构建方法,包括:GraphQL组件构建步骤,在后端开发GraphQL组件,所述GraphQL组件包括GraphQL的Schema、Resolver解析器和服务对象声明;接口能力配置步骤,遍历所有的所述GraphQL组件,获取所述GraphQL组件的输入及输出信息,对所述GraphQL组件进行组合和配置,并进一步生成源码;工程框架执行步骤,将所述源码引入工程,通过所述工程对所述源码编译部署后进行执行。
优选的,所述GraphQL组件构建步骤进一步包括:将所述服务对象以参数形式传入到所述Resolver解析器中以供使用。
优选的,所述接口能力配置步骤进一步包括:以可视化形式对遍历到的所述GraphQL组件进行展示,并在可视化界面中以拖拽的形式对所述GraphQL组件进行组合。
优选的,所述工程框架执行步骤进一步包括:在所述工程中引入所述GraphQL所需的所有库文件,以提供所述GraphQL的最基础能力。
第二方面,本申请实施例提供了一种基于GraphQL的接口构建系统,适用于上述一种基于GraphQL的接口构建方法,包括:GraphQL组件构建模块,在后端开发GraphQL组件,所述GraphQL组件包括GraphQL的Schema、Resolver解析器和服务对象声明;接口能力配置模块,遍历所有的所述GraphQL组件,获取所述GraphQL组件的输入及输出信息,对所述GraphQL组件进行组合和配置,并进一步生成源码;工程框架执行模块,将所述源码引入工程,通过所述工程对所述源码编译部署后进行执行。
在其中一些实施例中,所述GraphQL组件构建模块进一步包括:将所述服务对象以参数形式传入到所述Resolver解析器中以供使用。
在其中一些实施例中,所述接口能力配置模块进一步包括:以可视化形式对遍历到的所述GraphQL组件进行展示,并在可视化界面中以拖拽的形式对所述GraphQL组件进行组合。
在其中一些实施例中,所述工程框架执行模块进一步包括:在所述工程中引入所述GraphQL所需的所有库文件,以提供所述GraphQL的最基础能力。
第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的一种基于GraphQL的接口构建方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的一种基于GraphQL的接口构建方法。
本申请可应用于云服务能力技术领域。相比于相关技术,本申请实施例提供的一种基于GraphQL的接口构建方法,提出一种自动化构建方案,可以实现无代码可视化的生成GraphQL的后端Schema,解析器Resolver。只需要根据现有GraphQL单元的能力进行排列组合,就可以自动生成对应的Schema和Resolver,一键部署。
所以,本发明可以极大降低GraphQL后端对专业知识的要求,大幅提高迭代效率,只需要对需求有清晰明确的认识,同时熟悉后端API模块可以提供的查询内容,即可通过简单的操作实现接口的定制。非常适合当前快速迭代,功能多元的应用开发需求。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本发明的基于GraphQL的接口构建方法流程图;
图2为本发明的基于GraphQL的接口构建系统的框架图;
图3为本发明的电子设备的框架图;
图4为GraphQL组件开发流程示意图;
以上图中:
1、GraphQL组件构建模块;2、接口能力配置模块;3、工程框架执行模块;60、总线;61、处理器;62、存储器;63、通信接口。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
GraphQL是一种基于API的查询语言,由Facebook发起并开源。它提供了一种高效、强大且灵活的数据提供方式。GraphQL有强制的类型约束,按需检索数据,支持完善,开发快速等优势。
Schema是GraphQL的API的基础。它清晰的定义了每个API支持的操作,包括输入的参数和返回的内容。它通过SDL(GraphQL Schema Definition Language)来定义。用户在定义Schema的时候,可以自动根据Schema生成相应的文档。SDL是定义GraphQL Schema的模式定义语言。
Resolver是GraphQL的解析器。前述Schema的每一个字段如何获取,都需要对应的解析器函数来完成。服务器收到查询时,它将调用查询有效负载中指定的字段的所有解析器函数,待解析器函数都返回后将组织数据并返回客户端。
GraphQL SDL支持多种数据类型。Scalar是基本的数据类型,例如:String,Int,Boolean,Float等等。由于它不支持64位整数,无符号整数,所以一般需要扩充来满足开发需求。
模式拼接英文为Schema Stitching。可以将来源不同的多个GraphQL服务组合起来的技术方案。在graphql-tool库中有它的实现。
以下,结合附图详细介绍本发明的实施例:
图1为本发明的基于GraphQL的接口构建方法流程图,请参见图1,本发明基于GraphQL的接口构建方法包括如下步骤:
S1:在后端开发GraphQL组件,所述GraphQL组件包括GraphQL的Schema、Resolver解析器和服务对象声明。可选的,将所述服务对象以参数形式传入到所述Resolver解析器中以供使用。
在具体实施中,不同于现有方案,后端开发API接口后,还需要完成其所能支持的查询/变更的Schema,以及对应的Resolver解析器。实现这些额外的GraphQL功能的API,称为GraphQL组件。GraphQL组件开发流程如图4所示。其中的“服务对象声明”是指,在Resolver解析器中获取字段的时候,将访问开发好的API来获取数据,所以需要一个“服务对象”来访问这些数据。举例说明,这个“服务对象”可能是一个http对象,以访问http接口;还可以是一个数据库对象,以访问数据库。这个对象将会以参数形式传入到Resolver中供使用。
S2:遍历所有的所述GraphQL组件,获取所述GraphQL组件的输入及输出信息,对所述GraphQL组件进行组合和配置,并进一步生成源码。可选的,以可视化形式对遍历到的所述GraphQL组件进行展示,并在可视化界面中以拖拽的形式对所述GraphQL组件进行组合。
在具体实施中,遍历所有的GraphQL组件,获取其输入和输出信息,然后以可视化的形式展示GraphQL组件列表。它提供一个视图,在视图中,用户通过拖拽的形式自由组合前述模块。组合后,它将自动汇总所需要的输入参数和可供使用的结果。用户可以自由组合可供使用的结果,也可以更改字段的实际展示名称。最后点击确定,一条GraphQL的查询Schema和Resolver将自动以源码形式生成出来,并放入基础GraphQL工程指定的位置。用户在完成根据需求组合所有的Schema后,点击发布,则会开启构建和自动发布流程。
S3:将所述源码引入工程,通过所述工程对所述源码编译部署后进行执行。可选的,在所述工程中引入所述GraphQL所需的所有库文件,以提供所述GraphQL的最基础能力。
在具体实施中,基础GraphQL工程提供最基础的GraphQL所需能力,并引入所有需要的库文件。具体的,若要扩充GraphQL的Scalar数据类型,就需要放在这里。在API能力配置中生成所有的GraphQL Schema和解析器Resolver之后,工程将源码引入,如果用户在API能力配置可视化界面中点击了发布,则该工程被统一编译部署,即具备了相应的查询能力。
基于上述步骤,本申请所提供的整体业务流程如下:
a.后端结合当前业务能力,业务需求,可复用性等综合考虑,确定相应的API接口;
b.开发人员开发实现API接口,同时完成GraphQL组件模块;
c.具体到不同的客户端,不同的应用场合产生具体的产品需求;
d.产品负责人根据需求操作API能力配置模块完成并上线GraphQL的后端;
e.客户端据此开发实现功能需求。
需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例提供了一种基于GraphQL的接口构建系统,适用于上述的一种基于GraphQL的接口构建方法。如以下所使用的,术语“单元”、“模块”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件、或者软件和硬件的组合的实现也是可能并被构想的。
图2为根据本发明的基于GraphQL的接口构建系统的框架图,请参见图2,包括:
GraphQL组件构建模块1:在后端开发GraphQL组件,所述GraphQL组件包括GraphQL的Schema、Resolver解析器和服务对象声明。可选的,将所述服务对象以参数形式传入到所述Resolver解析器中以供使用。
在具体实施中,不同于现有方案,后端开发API接口后,还需要完成其所能支持的查询/变更的Schema,以及对应的Resolver解析器。实现这些额外的GraphQL功能的API,称为GraphQL组件。GraphQL组件开发流程如图4所示。其中的“服务对象声明”是指,在Resolver解析器中获取字段的时候,将访问开发好的API来获取数据,所以需要一个“服务对象”来访问这些数据。举例说明,这个“服务对象”可能是一个http对象,以访问http接口;还可以是一个数据库对象,以访问数据库。这个对象将会以参数形式传入到Resolver中供使用。
接口能力配置模块2:遍历所有的所述GraphQL组件,获取所述GraphQL组件的输入及输出信息,对所述GraphQL组件进行组合和配置,并进一步生成源码。可选的,以可视化形式对遍历到的所述GraphQL组件进行展示,并在可视化界面中以拖拽的形式对所述GraphQL组件进行组合。
在具体实施中,遍历所有的GraphQL组件,获取其输入和输出信息,然后以可视化的形式展示GraphQL组件列表。它提供一个视图,在视图中,用户通过拖拽的形式自由组合前述模块。组合后,它将自动汇总所需要的输入参数和可供使用的结果。用户可以自由组合可供使用的结果,也可以更改字段的实际展示名称。最后点击确定,一条GraphQL的查询Schema和Resolver将自动以源码形式生成出来,并放入基础GraphQL工程指定的位置。用户在完成根据需求组合所有的Schema后,点击发布,则会开启构建和自动发布流程。
工程框架执行模块3:将所述源码引入工程,通过所述工程对所述源码编译部署后进行执行。可选的,在所述工程中引入所述GraphQL所需的所有库文件,以提供所述GraphQL的最基础能力。
在具体实施中,基础GraphQL工程提供最基础的GraphQL所需能力,并引入所有需要的库文件。具体的,若要扩充GraphQL的Scalar数据类型,就需要放在这里。在API能力配置中生成所有的GraphQL Schema和解析器Resolver之后,工程将源码引入,如果用户在API能力配置可视化界面中点击了发布,则该工程被统一编译部署,即具备了相应的查询能力。
基于上述模块,本申请所提供的整体业务流程如下:
a.后端结合当前业务能力,业务需求,可复用性等综合考虑,确定相应的API接口;
b.开发人员开发实现API接口,同时完成GraphQL组件模块;
c.具体到不同的客户端,不同的应用场合产生具体的产品需求;
d.产品负责人根据需求操作API能力配置模块完成并上线GraphQL的后端;
e.客户端据此开发实现功能需求。
另外,结合图1描述的一种基于GraphQL的接口构建方法可以由电子设备来实现。图3为本发明的电子设备的框架图。
电子设备可以包括处理器61以及存储有计算机程序指令的存储器62。
具体地,上述处理器61可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器62可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器62可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器62可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器62可在数据处理装置的内部或外部。在特定实施例中,存储器62是非易失性(Non-Volatile)存储器。在特定实施例中,存储器62包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(RandomAccess Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器62可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器61所执行的可能的计算机程序指令。
处理器61通过读取并执行存储器62中存储的计算机程序指令,以实现上述实施例中的任意一种基于GraphQL的接口构建方法。
在其中一些实施例中,电子设备还可包括通信接口63和总线60。其中,如图3所示,处理器61、存储器62、通信接口63通过总线60连接并完成相互间的通信。
通信端口63可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线60包括硬件、软件或两者,将电子设备的部件彼此耦接在一起。总线60包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(ControlBus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线60可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(FrontSide Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、外围组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线60可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该电子设备可以执行本申请实施例中的一种基于GraphQL的接口构建方法。
另外,结合上述实施例中的一种基于GraphQL的接口构建方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种基于GraphQL的接口构建方法。
而前述的存储介质包括:U盘、移动硬盘、只读存储器(ReadOnly Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种基于GraphQL的接口构建方法,其特征在于,包括:
GraphQL组件构建步骤,在后端开发GraphQL组件,所述GraphQL组件包括GraphQL的Schema、Resolver解析器和服务对象声明;
接口能力配置步骤,遍历所有的所述GraphQL组件,获取所述GraphQL组件的输入及输出信息,对所述GraphQL组件进行组合和配置,并进一步生成源码;
工程框架执行步骤,将所述源码引入工程,通过所述工程对所述源码编译部署后进行执行。
2.根据权利要求1所述的基于GraphQL的接口构建方法,其特征在于,所述GraphQL组件构建步骤进一步包括:将所述服务对象以参数形式传入到所述Resolver解析器中以供使用。
3.根据权利要求1所述的基于GraphQL的接口构建方法,其特征在于,所述接口能力配置步骤进一步包括:以可视化形式对遍历到的所述GraphQL组件进行展示,并在可视化界面中以拖拽的形式对所述GraphQL组件进行组合。
4.根据权利要求1所述的基于GraphQL的接口构建方法,其特征在于,所述工程框架执行步骤进一步包括:在所述工程中引入所述GraphQL所需的所有库文件,以提供所述GraphQL的最基础能力。
5.一种基于GraphQL的接口构建系统,其特征在于,包括:
GraphQL组件构建模块,在后端开发GraphQL组件,所述GraphQL组件包括GraphQL的Schema、Resolver解析器和服务对象声明;
接口能力配置模块,遍历所有的所述GraphQL组件,获取所述GraphQL组件的输入及输出信息,对所述GraphQL组件进行组合和配置,并进一步生成源码;
工程框架执行模块,将所述源码引入工程,通过所述工程对所述源码编译部署后进行执行。
6.根据权利要求5所述的基于GraphQL的接口构建系统,其特征在于,所述GraphQL组件构建模块进一步包括:将所述服务对象以参数形式传入到所述Resolver解析器中以供使用。
7.根据权利要求5所述的基于GraphQL的接口构建系统,其特征在于,所述接口能力配置模块进一步包括:以可视化形式对遍历到的所述GraphQL组件进行展示,并在可视化界面中以拖拽的形式对所述GraphQL组件进行组合。
8.根据权利要求5所述的基于GraphQL的接口构建系统,其特征在于,所述工程框架执行模块进一步包括:在所述工程中引入所述GraphQL所需的所有库文件,以提供所述GraphQL的最基础能力。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述的基于GraphQL的接口构建方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至4中任一项所述的基于GraphQL的接口构建方法。
CN202111004342.7A 2021-08-30 2021-08-30 基于GraphQL的接口构建方法、系统、电子设备及存储介质 Active CN113741878B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111004342.7A CN113741878B (zh) 2021-08-30 2021-08-30 基于GraphQL的接口构建方法、系统、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111004342.7A CN113741878B (zh) 2021-08-30 2021-08-30 基于GraphQL的接口构建方法、系统、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113741878A true CN113741878A (zh) 2021-12-03
CN113741878B CN113741878B (zh) 2023-08-25

Family

ID=78733790

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111004342.7A Active CN113741878B (zh) 2021-08-30 2021-08-30 基于GraphQL的接口构建方法、系统、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN113741878B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840181A (zh) * 2022-04-15 2022-08-02 北京志凌海纳科技有限公司 基于GraphQL的声明式应用开发方法、系统及计算机可读存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347378A (zh) * 2019-07-12 2019-10-18 北京明略软件系统有限公司 项目开发环境的搭建方法及装置
CN111414378A (zh) * 2020-03-17 2020-07-14 用友网络科技股份有限公司 一种基于GraphQL的类元数据框架
CN112087370A (zh) * 2020-09-04 2020-12-15 北京明略昭辉科技有限公司 发布GitHub Issues的方法、系统、电子设备和计算机可读存储介质
CN112130830A (zh) * 2020-08-25 2020-12-25 汉海信息技术(上海)有限公司 接口生成方法、装置及电子设备
CN112488552A (zh) * 2020-12-11 2021-03-12 北京明略软件系统有限公司 业务指标的构建方法、系统、电子设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110347378A (zh) * 2019-07-12 2019-10-18 北京明略软件系统有限公司 项目开发环境的搭建方法及装置
CN111414378A (zh) * 2020-03-17 2020-07-14 用友网络科技股份有限公司 一种基于GraphQL的类元数据框架
CN112130830A (zh) * 2020-08-25 2020-12-25 汉海信息技术(上海)有限公司 接口生成方法、装置及电子设备
CN112087370A (zh) * 2020-09-04 2020-12-15 北京明略昭辉科技有限公司 发布GitHub Issues的方法、系统、电子设备和计算机可读存储介质
CN112488552A (zh) * 2020-12-11 2021-03-12 北京明略软件系统有限公司 业务指标的构建方法、系统、电子设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114840181A (zh) * 2022-04-15 2022-08-02 北京志凌海纳科技有限公司 基于GraphQL的声明式应用开发方法、系统及计算机可读存储介质

Also Published As

Publication number Publication date
CN113741878B (zh) 2023-08-25

Similar Documents

Publication Publication Date Title
US20100162225A1 (en) Cross-product refactoring apparatus and method
US20200225920A1 (en) Generating synchronous digital circuits from source code constructs that map to circuit implementations
CN110780874A (zh) 用于生成信息的方法和装置
CN113760251A (zh) 一种基于Vue的表单开发方法和装置
US9762700B2 (en) Client-side aggregation of nested resource dependencies
WO2019029451A1 (zh) 发布移动应用的方法和电子设备
CN113672204A (zh) 一种接口文档生成方法、系统、电子设备及存储介质
CN113126986A (zh) 基于动态数据的表单项渲染方法、系统、设备及存储介质
CN112631590A (zh) 组件库生成方法、装置、电子设备和计算机可读介质
CN114154474A (zh) 数据导出方法、系统、计算机设备及可读存储介质
CN113741878A (zh) 基于GraphQL的接口构建方法、系统、电子设备及存储介质
CN114048415A (zh) 表单生成方法及装置、电子设备和计算机可读存储介质
CN112434012A (zh) 基于React的前端多级条件筛选方法、系统、设备及存储介质
CN113761871A (zh) 富文本渲染方法、装置、电子设备以及存储介质
CN113485686B (zh) 信息系统程序的生成方法、装置、电子设备及存储介质
CN113094086B (zh) 组件集成方法、装置、计算机可读存储介质及电子设备
CN112148746B (zh) 生成数据库表结构文档的方法、装置、电子装置和存储介质
CN114064712A (zh) 数据访问方法、装置、电子设备及计算机可读存储介质
CN109725932B (zh) 一种应用组件的说明文档生成方法和装置
CN112764802A (zh) 一种业务逻辑定制方法、装置、电子设备和存储介质
CN112764761A (zh) 一种程序中断文件解析方法、存储介质、电子设备及系统
CN113535130B (zh) 前端接口框架开发方法、系统、电子设备及存储介质
CN117407048B (zh) 一种插件化数据处理软件的流程配置方法及系统
CN116578281B (zh) 基于代码包的网页开发方法、系统、电子设备及存储介质
US20230350792A1 (en) System, method, and computer program for development driven test automation

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