CN116185391A - 应用程序编程接口生成方法、装置、设备及存储介质 - Google Patents

应用程序编程接口生成方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN116185391A
CN116185391A CN202310088208.2A CN202310088208A CN116185391A CN 116185391 A CN116185391 A CN 116185391A CN 202310088208 A CN202310088208 A CN 202310088208A CN 116185391 A CN116185391 A CN 116185391A
Authority
CN
China
Prior art keywords
application programming
programming interface
parameter
language
structured data
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.)
Pending
Application number
CN202310088208.2A
Other languages
English (en)
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.)
Hangzhou Yaowang Network Technology Co ltd
Original Assignee
Hangzhou Yaowang Network 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 Hangzhou Yaowang Network Technology Co ltd filed Critical Hangzhou Yaowang Network Technology Co ltd
Priority to CN202310088208.2A priority Critical patent/CN116185391A/zh
Publication of CN116185391A publication Critical patent/CN116185391A/zh
Pending legal-status Critical Current

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/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or 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)
  • Debugging And Monitoring (AREA)

Abstract

本申请公开了一种应用程序编程接口生成方法、装置、设备及存储介质,涉及数据接口开发技术领域。应用于数据服务化系统,该方法包括:获取用于编写应用程序编程接口的结构化查询语言;对所述结构化数据语言进行参数解析与返回值解析,以得到相应的用于定义所述应用程序编程接口的请求参数和返回参数;根据所述请求参数和所述返回参数生成所述应用程序编程接口。通过本申请的技术方案,基于动态结构化查询语言和结构化查询语言改写技术的数据服务化系统,可以通过配置化的方式屏蔽数据源的复杂性,快速生成应用程序编程接口,并通过该系统测试发布。

Description

应用程序编程接口生成方法、装置、设备及存储介质
技术领域
本发明涉及数据接口开发技术领域,特别涉及一种应用程序编程接口生成方法、装置、设备及存储介质。
背景技术
传统的软件开发中,开发一个数据查询API(Application Program Interface,应用程序编程接口)通常分为五步:①引入数据库的驱动;②编写数据查询SQL(结构化查询语言Structured Query Language);③将SQL逻辑封装到软件系统代码并以API提供出去;④对API进行测试;⑤API测试成功后对软件系统进行发布。
以阿里云的Data Works产品为例:Data Works提供了搭建统一的数据服务总线的平台。数据服务提供快速将数据表生成API的能力,同时支持快速注册现有的API到数据服务平台,进行统一的管理和发布。然而,该方法在生成API的过程中SQL配置流程过于复杂,并且阿里商业化的方案不支持SQL参数解析的能力,所有参数需要手动进行维护。因此,开发周期长,难以维护迭代是较大的痛点。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种应用程序编程接口生成方法、装置、设备及存储介质,不需要对参数手动进行维护,实现了快速生成应用程序编程接口,能够减少定制化的研发投入,加快项目的交付周期。其具体方案如下:
第一方面,本申请公开了一种应用程序编程接口生成方法,应用于数据服务化系统,包括:
获取用于编写应用程序编程接口的结构化查询语言;
对所述结构化数据语言进行参数解析与返回值解析,以得到相应的用于定义所述应用程序编程接口的请求参数和返回参数;
根据所述请求参数和所述返回参数生成所述应用程序编程接口。
可选的,对所述结构化数据语言进行参数解析,以得到用于定义所述应用程序编程接口的请求参数,包括:
加载所述结构化数据语言;
将所述结构化数据语言解析为语法树,并拆分到所述语法树的叶子节点;
通过所述叶子节点进行参数提取,并确定提取后得到的目标参数的参数类型,以根据所述参数类型得到用于定义所述应用程序编程接口的请求参数。
可选的,所述通过所述叶子节点进行参数提取,并确定提取后得到的目标参数的参数类型,以根据所述参数类型得到用于定义所述应用程序编程接口的请求参数,包括:
对所述叶子节点进行遍历,以便顺序提取出所述叶子节点上的目标参数;
判断所述目标参数是否存在条件语法修饰;
如果所述目标参数存在所述条件语法修饰,则判定所述目标参数为非必传参数;如果所述目标参数不存在所述条件语法修饰,则判定所述目标参数为必传参数;
基于所述非必传参数与所述必传参数,确定出定义所述应用程序编程接口的请求参数。
可选的,对所述结构化数据语言进行返回值解析,以得到用于定义所述应用程序编程接口的返回参数,包括:
加载所述结构化数据语言;
将所述结构化数据语言解析为语法树,并拆分到所述语法树的叶子节点;
确定所述叶子节点中的选择节点,并对所述选择节点进行解析,以得到用于定义所述应用程序编程接口的返回参数;其中,所述选择节点与所述结构化数据语言中的SELECT查询字段。
可选的,所述根据所述请求参数和所述返回参数生成所述应用程序编程接口之后,还包括:
当针对所述应用程序编程接口进行调用时,将所述请求参数进行替换,以得到可执行结构化查询语言。
可选的,所述的应用程序编程接口生成方法,还包括:
获取针对不同的功能场景所述应用程序编程接口实现的目标功能类型;
根据所述目标功能类型对所述结构化数据语言进行改写,以将所述应用程序编程接口进行多场景复用。
可选的,所述根据所述目标功能类型对所述结构化数据语言进行改写,以将所述应用程序编程接口进行多场景复用,包括:
若所述目标功能类型为与原始的结构化数据语言对应的原始功能,则绑定所述请求参数,并执行所述结构化数据语言,以得到相应的第一返回数据;
若所述目标功能类型为数据导出类型,则绑定所述请求参数,并开启预设数据库的游标功能,以生成导出结构化数据语言,然后执行所述导出结构化数据语言,以得到第二返回数据;
若所述目标功能类型为分页查询类型,则绑定所述请求参数,并添加用于分页的额外字段,以生成分页结构化数据语言和求总数结构化数据语言,然后执行所述分页结构化数据语言和所述求总数结构化数据语言,以得到第三返回数据;
若所述目标功能类型为求和查询类型,则绑定所述请求参数,并添加用于求和的额外字段,以生成求和结构化数据语言,然后执行所述求和结构化数据语言,以得到第四返回数据。
第二方面,本申请公开了一种应用程序编程接口生成装置,应用于数据服务化系统,包括:
结构化查询语言获取模块,用于获取用于编写应用程序编程接口的结构化查询语言;
数据解析模块,用于对所述结构化数据语言进行参数解析与返回值解析,以得到相应的用于定义所述应用程序编程接口的请求参数和返回参数;
接口生成模块,用于根据所述请求参数和所述返回参数生成所述应用程序编程接口。
第三方面,本申请公开了一种电子设备,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如前所述的应用程序编程接口生成方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中所述计算机程序被处理器执行时实现如前所述的应用程序编程接口生成方法。
本申请提供了一种应用程序编程接口生成方法,应用于数据服务化系统,包括:获取用于编写应用程序编程接口的结构化查询语言;对所述结构化数据语言进行参数解析与返回值解析,以得到相应的用于定义所述应用程序编程接口的请求参数和返回参数;根据所述请求参数和所述返回参数生成所述应用程序编程接口。可见,通过本申请的技术方案,支持结构化查询语言的解析能力,利用解析后得到的用于定义应用程序编程接口的请求参数和返回参数生成应用程序编程接口,不需要对参数手动进行维护,实现了快速生成应用程序编程接口,能够减少定制化的研发投入,加快项目的交付周期。
此外,本申请提供的一种应用程序编程接口生成装置、设备及存储介质,与上述应用程序编程接口生成方法对应,效果同上。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种应用程序编程接口生成方法流程图;
图2为本申请公开的一种结构化查询语言示意图;
图3为本申请公开的一种参数解析示意图;
图4为本申请公开的一种返回值解析示意图;
图5为本申请公开的一种参数替换后的应用程序编程接口生成示意图;
图6为本申请公开的一种具体的应用程序编程接口生成方法流程图;
图7为本申请公开的一种改写结构化数据语言实现接口复用示意图;
图8为本申请公开的一种应用程序编程接口整体开发示意图;
图9为本申请公开的一种数据服务化系统示意图;
图10为本申请公开的一种应用程序编程接口生成装置结构示意图;
图11为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当前,以阿里云的Data Works产品为例,在生成API的过程中,SQL配置流程过于复杂,并且阿里商业化的方案不支持SQL参数解析的能力,所有参数需要手动进行维护。因此,开发周期长,难以维护迭代是较大的痛点。
为此,本申请提供了一种应用程序编程接口生成方案,不需要手动对参数进行维护,实现了快速生成应用程序编程接口,能够减少定制化的研发投入,加快项目的交付周期。
本发明实施例公开了一种应用程序编程接口生成方法,参见图1所示,应用于数据服务化系统,该方法包括:
步骤S11:获取用于编写应用程序编程接口的结构化查询语言。
本申请实施例中,由于应用程序编程接口是通过编写结构化查询语言获得,因此,首先获取用于编写应用程序编程接口的结构化查询语言。可以理解的是,针对一段文本为例,对该文本进行处理,替换成结构化查询语言,如图2所示。该结构化查询语言中包括若干个变量。
步骤S12:对所述结构化数据语言进行参数解析与返回值解析,以得到相应的用于定义所述应用程序编程接口的请求参数和返回参数。
本申请实施例中,支持对结构化数据语言进行解析。在第一种具体的实施方式中,对结构化数据语言进行参数解析,如图3所示为在参数解析时的整体流程示意图。具体的,加载所述结构化数据语言;将所述结构化数据语言解析为语法树,并拆分到所述语法树的叶子节点;通过所述叶子节点进行参数提取,并确定提取后得到的目标参数的参数类型,以根据所述参数类型得到用于定义所述应用程序编程接口的请求参数。
加载该结构化数据语言时,将其称为SQL query;然后解析该结构化数据语言(SQLParse),将结构化数据语言解析为语法树,并拆分到叶子节点。叶子节点通常包含文本和条件语法。例如title!=null为条件语法,AND title like#{title}为叶子节点的文本。当解析为语法树并拆分到叶子节点后进行结构化数据语言的参数提取,具体的,对所述叶子节点进行遍历,以便顺序提取出所述叶子节点上的目标参数;进一步的,区分该参数是否为必须,也即,判断所述目标参数是否存在条件语法修饰;如果所述目标参数存在所述条件语法修饰,则判定所述目标参数为非必传参数;如果所述目标参数不存在所述条件语法修饰,则判定所述目标参数为必传参数;基于所述非必传参数与所述必传参数,确定出定义所述应用程序编程接口的请求参数。
可以理解的是,非必传参数可传可不传,否则参数为必传。例如title参数提取为非必传。如图3所示,最终的参数列表包含下面5个:subject必传,title非必传,authorName非必传,orderField必传,orderType必传。
在第二种具体的实施方式中,对结构化数据语言进行返回值解析,如图4所示为在返回值解析时的整体流程示意图。具体的,加载所述结构化数据语言;将所述结构化数据语言解析为语法树,并拆分到所述语法树的叶子节点;确定所述叶子节点中的选择节点,并对所述选择节点进行解析,以得到用于定义所述应用程序编程接口的返回参数;其中,所述选择节点与所述结构化数据语言中的SELECT查询字段。
可以理解的是,在返回值解析的过程中,加载该结构化数据语言,由于将结构化数据语言解析为语法树进行处理,因此,进一步的,识别语法树中的选择节点,也即,与所述结构化数据语言中的SELECT查询字段对应的Select节点。然后解析Select节点的返回值。如图4所示,最终解析出返回值为subject、title、authorName、content。
步骤S13:根据所述请求参数和所述返回参数生成所述应用程序编程接口。
本申请实施例中,参数解析与返回值解析之后,应用程序编程接口的定义也就出来了。假设定义该应用程序编程接口的接口名称为queryArticle。则该API包含五个入参,也即请求参数:subject必传,title非必传,authorName非必传,orderField必传,orderType必传;四个出参,也即返回参数:subject、title、authorName、content。
接下来,针对该应用程序编程接口的请求调用,转换为可执行结构化查询语言。具体的,当针对所述应用程序编程接口进行调用时,将所述请求参数进行替换,以得到可执行结构化查询语言。也就是说,主要是要将请求参数进行替换,最终的可执行结构化查询语言为:
SELECT subject,title,authorName,content
from blog where subject='小说'
AND title like'从百草园到三味书屋',如图5所示。
本申请提供了一种应用程序编程接口生成方法,应用于数据服务化系统,包括:获取用于编写应用程序编程接口的结构化查询语言;对所述结构化数据语言进行参数解析与返回值解析,以得到相应的用于定义所述应用程序编程接口的请求参数和返回参数;根据所述请求参数和所述返回参数生成所述应用程序编程接口。可见,通过本申请的技术方案,支持结构化查询语言的解析能力,利用解析后得到的用于定义应用程序编程接口的请求参数和返回参数生成应用程序编程接口,不需要对参数手动进行维护,实现了快速生成应用程序编程接口,能够减少定制化的研发投入,加快项目的交付周期。
基于上述实施例,本申请实施例公开了一种具体的应用程序编程接口生成方法,参见图6所示,应用于数据服务化系统,可以对结构化查询语言进行改写,不仅可以生成一个原始的应用程序编程接口,还可以生成分页查询应用程序编程接口,求和查询应用程序编程接口和数据导出应用程序编程接口。因此,对于同一个配置,可以在多场景下进行复用。该方法包括:
步骤S21:获取用于编写应用程序编程接口的结构化查询语言。
步骤S22:对所述结构化数据语言进行参数解析与返回值解析,以得到相应的用于定义所述应用程序编程接口的请求参数和返回参数。
步骤S23:根据所述请求参数和所述返回参数生成所述应用程序编程接口。
其中,关于上述步骤S21、步骤S22、步骤S23更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S24:获取针对不同的功能场景所述应用程序编程接口实现的目标功能类型;根据所述目标功能类型对所述结构化数据语言进行改写,以将所述应用程序编程接口进行多场景复用。
在大数据场景下,数据库类型非常多,且应用程序编程接口的逻辑经常需要调整。传统模式下,大数据应用程序编程接口开发需要引入多种数据库驱动,应用程序编程接口开发需要进行频繁测试发布相应的软件系统。由于数据结构化语言的查询语义相对比较单一,因此配置数据结构化语言仅可以生成一个应用程序编程接口,支持场景比较单一。本申请实施例中,借助数据结构化语言的改写的技术,还可以生成分页查询应用程序编程接口,求和查询应用程序编程接口和数据导出应用程序编程接口。因此对于同一个配置,可以在多场景下进行复用。
如图7所示为改写结构化数据语言时的执行流程。具体的,若所述目标功能类型为与原始的结构化数据语言对应的原始功能,则绑定所述请求参数,并执行所述结构化数据语言,以得到相应的第一返回数据;若所述目标功能类型为数据导出类型,则绑定所述请求参数,并开启预设数据库的游标功能,以生成导出结构化数据语言,然后执行所述导出结构化数据语言,以得到第二返回数据;若所述目标功能类型为分页查询类型,则绑定所述请求参数,并添加用于分页的额外字段,以生成分页结构化数据语言和求总数结构化数据语言,然后执行所述分页结构化数据语言和所述求总数结构化数据语言,以得到第三返回数据;若所述目标功能类型为求和查询类型,则绑定所述请求参数,并添加用于求和的额外字段,以生成求和结构化数据语言,然后执行所述求和结构化数据语言,以得到第四返回数据。
本申请实施例中,定义了一个完整的应用程序编程接口所需要的组成要素之后,除此之外,借助结构化数据语言的改写功能,可以实现分页SQL,求和SQL和导出SQL。以前述的结构化数据语言为例,如表一所示为四种不同类型的SQL需要预定义信息:
表一
Figure BDA0004073959760000081
Figure BDA0004073959760000091
本申请提供了一种应用程序编程接口生成方法,应用于数据服务化系统,包括:获取用于编写应用程序编程接口的结构化查询语言;对所述结构化数据语言进行参数解析与返回值解析,以得到相应的用于定义所述应用程序编程接口的请求参数和返回参数;根据所述请求参数和所述返回参数生成所述应用程序编程接口;获取针对不同的功能场景所述应用程序编程接口实现的目标功能类型;根据所述目标功能类型对所述结构化数据语言进行改写,以将所述应用程序编程接口进行多场景复用。可见,通过本申请的技术方案,支持结构化查询语言的解析能力,利用解析后得到的用于定义应用程序编程接口的请求参数和返回参数生成应用程序编程接口,不需要对参数手动进行维护,实现了快速生成应用程序编程接口,能够减少定制化的研发投入,加快项目的交付周期。
基于上述实施例,如图8所示为开发一个应用程序编程接口时的整体流程。进一步的,由于本申请中的应用程序编程接口应用于数据服务化系统,因此,对数据服务化系统进行相关说明,如图9所示即为本申请实施例中的数据服务化系统架构。该数据服务化系统包含接入层、预处理层、引擎层、数据库和稳定性5大模块组成:
接入层:提供API接入的入口,供外部系统调用。
预处理层:对API的参数进行校验,包括限流、参数校验、权限校验等功能。
引擎层:API处理逻辑的核心,包括SQL语法引擎和SQL执行引擎,前述实施例中主要基于该模块实现。
数据库:不同的数据库类型,平台统一已经屏蔽,通过JDBC(Java DataBaseConnectivity,Java数据库连接)执行SQL。
稳定性:API调用生命周期的监控管理等。
可见,数据服务化系统通过平台化、配置化的方式,借助动态SQL和SQL改写快速生成API服务,能够减少定制化的研发投入,加快项目的交付周期。
相应的,本申请实施例还公开了一种应用程序编程接口生成装置,应用于数据服务化系统,参见图10所示,该装置包括:
结构化查询语言获取模块11,用于获取用于编写应用程序编程接口的结构化查询语言;
数据解析模块12,用于对所述结构化数据语言进行参数解析与返回值解析,以得到相应的用于定义所述应用程序编程接口的请求参数和返回参数;
接口生成模块13,用于根据所述请求参数和所述返回参数生成所述应用程序编程接口。
其中,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
由此可见,通过本实施例的上述方案,应用于数据服务化系统,包括:获取用于编写应用程序编程接口的结构化查询语言;对所述结构化数据语言进行参数解析与返回值解析,以得到相应的用于定义所述应用程序编程接口的请求参数和返回参数;根据所述请求参数和所述返回参数生成所述应用程序编程接口。可见,通过本申请的技术方案,支持结构化查询语言的解析能力,利用解析后得到的用于定义应用程序编程接口的请求参数和返回参数生成应用程序编程接口,不需要对参数手动进行维护,实现了快速生成应用程序编程接口,能够减少定制化的研发投入,加快项目的交付周期。
在一种具体的实施方式中,所述数据解析模块12,包括:
参数解析模块,用于加载所述结构化数据语言;将所述结构化数据语言解析为语法树,并拆分到所述语法树的叶子节点;通过所述叶子节点进行参数提取,并确定提取后得到的目标参数的参数类型,以根据所述参数类型得到用于定义所述应用程序编程接口的请求参数。
在一种具体的实施方式中,所述参数解析模块,包括:
目标参数类型判断单元,用于对所述叶子节点进行遍历,以便顺序提取出所述叶子节点上的目标参数;判断所述目标参数是否存在条件语法修饰;如果所述目标参数存在所述条件语法修饰,则判定所述目标参数为非必传参数;如果所述目标参数不存在所述条件语法修饰,则判定所述目标参数为必传参数;基于所述非必传参数与所述必传参数,确定出定义所述应用程序编程接口的请求参数。
在一种具体的实施方式中,所述数据解析模块12,包括:
返回值解析单元,用于加载所述结构化数据语言;将所述结构化数据语言解析为语法树,并拆分到所述语法树的叶子节点;确定所述叶子节点中的选择节点,并对所述选择节点进行解析,以得到用于定义所述应用程序编程接口的返回参数;其中,所述选择节点与所述结构化数据语言中的SELECT查询字段。
在一种具体的实施方式中,所述的应用程序编程接口生成装置,还包括:
参数替换模块,用于根据所述请求参数和所述返回参数生成所述应用程序编程接口之后,当针对所述应用程序编程接口进行调用时,将所述请求参数进行替换,以得到可执行结构化查询语言。
在一种具体的实施方式中,所述的应用程序编程接口生成装置,还包括:
结构化数据语言改写模块,用于获取针对不同的功能场景所述应用程序编程接口实现的目标功能类型;根据所述目标功能类型对所述结构化数据语言进行改写,以将所述应用程序编程接口进行多场景复用。
在一种具体的实施方式中,所述结构化数据语言改写模块,包括:
第一类型改写单元,用于若所述目标功能类型为与原始的结构化数据语言对应的原始功能,则绑定所述请求参数,并执行所述结构化数据语言,以得到相应的第一返回数据;
第二类型改写单元,用于若所述目标功能类型为数据导出类型,则绑定所述请求参数,并开启预设数据库的游标功能,以生成导出结构化数据语言,然后执行所述导出结构化数据语言,以得到第二返回数据;
第三类型改写单元,用于若所述目标功能类型为分页查询类型,则绑定所述请求参数,并添加用于分页的额外字段,以生成分页结构化数据语言和求总数结构化数据语言,然后执行所述分页结构化数据语言和所述求总数结构化数据语言,以得到第三返回数据;
第四类型改写单元,用于若所述目标功能类型为求和查询类型,则绑定所述请求参数,并添加用于求和的额外字段,以生成求和结构化数据语言,然后执行所述求和结构化数据语言,以得到第四返回数据。
进一步的,本申请实施例还公开了一种电子设备,图11是根据一示例性实施例示出的电子设备20结构图,图中内容不能认为是对本申请的使用范围的任何限制。
图11为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的应用程序编程接口生成方法中的相关步骤。另外,本实施例中的电子设备20具体可以为计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,数据223可以包括各种各样的数据。存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的应用程序编程接口生成方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机可读存储介质,这里所说的计算机可读存储介质包括随机存取存储器(Random Access Memory,RAM)、内存、只读存储器(Read-Only Memory,ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、磁碟或者光盘或技术领域内所公知的任意其他形式的存储介质。其中,所述计算机程序被处理器执行时实现前述应用程序编程接口生成方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的应用程序编程接口生成或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种应用程序编程接口生成方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种应用程序编程接口生成方法,其特征在于,应用于数据服务化系统,包括:
获取用于编写应用程序编程接口的结构化查询语言;
对所述结构化数据语言进行参数解析与返回值解析,以得到相应的用于定义所述应用程序编程接口的请求参数和返回参数;
根据所述请求参数和所述返回参数生成所述应用程序编程接口。
2.根据权利要求1所述的应用程序编程接口生成方法,其特征在于,对所述结构化数据语言进行参数解析,以得到用于定义所述应用程序编程接口的请求参数,包括:
加载所述结构化数据语言;
将所述结构化数据语言解析为语法树,并拆分到所述语法树的叶子节点;
通过所述叶子节点进行参数提取,并确定提取后得到的目标参数的参数类型,以根据所述参数类型得到用于定义所述应用程序编程接口的请求参数。
3.根据权利要求2所述的应用程序编程接口生成方法,其特征在于,所述通过所述叶子节点进行参数提取,并确定提取后得到的目标参数的参数类型,以根据所述参数类型得到用于定义所述应用程序编程接口的请求参数,包括:
对所述叶子节点进行遍历,以便顺序提取出所述叶子节点上的目标参数;
判断所述目标参数是否存在条件语法修饰;
如果所述目标参数存在所述条件语法修饰,则判定所述目标参数为非必传参数;如果所述目标参数不存在所述条件语法修饰,则判定所述目标参数为必传参数;
基于所述非必传参数与所述必传参数,确定出定义所述应用程序编程接口的请求参数。
4.根据权利要求1所述的应用程序编程接口生成方法,其特征在于,对所述结构化数据语言进行返回值解析,以得到用于定义所述应用程序编程接口的返回参数,包括:
加载所述结构化数据语言;
将所述结构化数据语言解析为语法树,并拆分到所述语法树的叶子节点;
确定所述叶子节点中的选择节点,并对所述选择节点进行解析,以得到用于定义所述应用程序编程接口的返回参数;其中,所述选择节点与所述结构化数据语言中的SELECT查询字段。
5.根据权利要求1所述的应用程序编程接口生成方法,其特征在于,所述根据所述请求参数和所述返回参数生成所述应用程序编程接口之后,还包括:
当针对所述应用程序编程接口进行调用时,将所述请求参数进行替换,以得到可执行结构化查询语言。
6.根据权利要求1至5任一项所述的应用程序编程接口生成方法,其特征在于,还包括:
获取针对不同的功能场景所述应用程序编程接口实现的目标功能类型;
根据所述目标功能类型对所述结构化数据语言进行改写,以将所述应用程序编程接口进行多场景复用。
7.根据权利要求6所述的应用程序编程接口生成方法,其特征在于,所述根据所述目标功能类型对所述结构化数据语言进行改写,以将所述应用程序编程接口进行多场景复用,包括:
若所述目标功能类型为与原始的结构化数据语言对应的原始功能,则绑定所述请求参数,并执行所述结构化数据语言,以得到相应的第一返回数据;
若所述目标功能类型为数据导出类型,则绑定所述请求参数,并开启预设数据库的游标功能,以生成导出结构化数据语言,然后执行所述导出结构化数据语言,以得到第二返回数据;
若所述目标功能类型为分页查询类型,则绑定所述请求参数,并添加用于分页的额外字段,以生成分页结构化数据语言和求总数结构化数据语言,然后执行所述分页结构化数据语言和所述求总数结构化数据语言,以得到第三返回数据;
若所述目标功能类型为求和查询类型,则绑定所述请求参数,并添加用于求和的额外字段,以生成求和结构化数据语言,然后执行所述求和结构化数据语言,以得到第四返回数据。
8.一种应用程序编程接口生成装置,其特征在于,应用于数据服务化系统,包括:
结构化查询语言获取模块,用于获取用于编写应用程序编程接口的结构化查询语言;
数据解析模块,用于对所述结构化数据语言进行参数解析与返回值解析,以得到相应的用于定义所述应用程序编程接口的请求参数和返回参数;
接口生成模块,用于根据所述请求参数和所述返回参数生成所述应用程序编程接口。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的应用程序编程接口生成方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的应用程序编程接口生成方法。
CN202310088208.2A 2023-01-16 2023-01-16 应用程序编程接口生成方法、装置、设备及存储介质 Pending CN116185391A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310088208.2A CN116185391A (zh) 2023-01-16 2023-01-16 应用程序编程接口生成方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310088208.2A CN116185391A (zh) 2023-01-16 2023-01-16 应用程序编程接口生成方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN116185391A true CN116185391A (zh) 2023-05-30

Family

ID=86445627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310088208.2A Pending CN116185391A (zh) 2023-01-16 2023-01-16 应用程序编程接口生成方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN116185391A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117349332A (zh) * 2023-12-06 2024-01-05 宁波港信息通信有限公司 一种应用程序编程接口api的生成方法、装置和电子设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117349332A (zh) * 2023-12-06 2024-01-05 宁波港信息通信有限公司 一种应用程序编程接口api的生成方法、装置和电子设备
CN117349332B (zh) * 2023-12-06 2024-03-01 宁波港信息通信有限公司 一种应用程序编程接口api的生成方法、装置和电子设备

Similar Documents

Publication Publication Date Title
US10324909B2 (en) Omega names: name generation and derivation utilizing nested three or more attributes
CN110968325B (zh) 一种小程序转换方法及装置
CN110308930A (zh) 接口文档生成方法、装置、计算机设备和存储介质
US20110196891A1 (en) Class loading using java data cartridges
CN110532084B (zh) 平台任务的调度方法、装置、设备及存储介质
US20100042585A1 (en) Command Interpretation
US9483508B1 (en) Omega names: name generation and derivation
CN110543427B (zh) 测试用例存储方法、装置、电子设备及存储介质
US8171045B2 (en) Record based code structure
CN112579461B (zh) 断言处理方法、系统和存储介质
CN116185391A (zh) 应用程序编程接口生成方法、装置、设备及存储介质
CN113901083A (zh) 基于多解析器的异构数据源操作资源解析定位方法和设备
US8135757B2 (en) Generating references to reusable code in a schema
CN113568604B (zh) 风控策略的更新方法、装置及计算机可读存储介质
CN111427784A (zh) 一种数据获取方法、装置、设备及存储介质
CN117827901A (zh) 一种基于Nashorn的动态执行数据库脚本的方法与装置
CN116680003A (zh) 前端插件化系统
CN114816437A (zh) 一种逆向生成Java实体类的方法、系统和设备
CN114398152A (zh) 接口仿真服务调用方法及装置
CN114065197A (zh) 调用序列生成方法、装置、电子设备、存储介质及产品
CN118444943B (zh) 容器镜像创建方法、装置、电子设备及存储介质
CN116243902A (zh) 一种基于Spring和MyBatis数据处理的方法
CN117742779A (zh) 资源配置信息的核查方法、装置、设备和存储介质
CN118567742A (zh) 一种车辆下线配置的处理方法、设备、车辆及存储介质
CN114721855A (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