一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种生成API的方法及装置与流程

2022-03-09 00:45:57 来源:中国专利 TAG:

一种生成api的方法及装置
技术领域
1.本技术涉及计算机领域,尤其涉及一种生成应用程序编程接口(application programming interface,api)的方法及装置。


背景技术:

2.基于互联网的应用变得越来越普及,越来越多的应用提供商将自身的数据资源开放给其他开发者来调用,从而实现了数据资源开放,并获得了更大的价值。
3.通常,应用提供商通过在api服务平台上创建并开放api来实现数据资源的开放。也就是说,应用提供商通过向其他开发者开放api,即可使其他开发者将开放的api所提供的数据资源整合到自己的应用服务之中。也即,其他开发者可以通过开放的api来调用被开放的数据资源。
4.然而,在传统的api创建过程中,主要依靠应用提供商的开发人员手动配置的参数与结构化查询语言(structured query language,sql)模板来生成api,这种开发过程的流程通常较长。并且,当开发的api涉及的sql十分复杂时,开发人员的工作量将极大,且出错机率高。


技术实现要素:

5.本技术提供了一种生成api的方法及装置,能够提高生成api的效率。
6.为达上述目的,本技术提供如下技术方案:
7.第一方面,本技术提供了一种生成应用程序编程接口api的方法,该方法包括:获取用于查询待查询数据的可执行结构化查询语句sql。根据该可执行sql生成第一信息。基于该第一信息生成第二信息。根据该第二信息生成可执行sql的sql模板。根据该sql模板,生成用于访问待查询数据的api。其中,第一信息包括可执行sql中属性参数的名称和可执行sql中条件参数的类型,该属性参数用于指示待查询数据的属性,该条件参数用于指示查询具有属性的待查询数据的查询条件。第二信息用于指示条件参数在sql中的位置,与第一信息的映射关系。
8.基于本技术提供的生成api的方法,生成api的装置通过对可执行sql的属性参数及条件参数的处理,从而生成该可执行sql的sql模板,然后生成api的装置即可基于该sql模板生成用于访问该可执行sql所指示的待查询数据的api。相比现有技术,通过本技术提供的方法生成api,简化了人工配置参数的流程,大大提高了生成api的效率。
9.在一种可能的设计方式中,上述的属性参数包括字段,上述的条件参数包括数值或字符串。
10.在另一种可能的设计方式中,上述的“根据该可执行sql确定第一信息”包括:将该可执行sql解析为至少一个条件语句单元,该一个条件语句单元包括一个属性参数和一个条件参数。提取该至少一个条件语句单元中的属性参数和条件参数。基于所提取的属性参数和条件参数,生成至少一个第一信息,该至少一个第一信息和前述的至少一个条件语句
单元一一对应。
11.在另一种可能的设计方式中,上述的“基于该第一信息生成第二信息”包括:在上述可执行sql中对用于生成第一信息的条件参数的位置进行标记。基于在该可执行sql中所标记的地址标识和该第一信息,生成第二信息,该第二信息和该第一信息对应。
12.在另一种可能的设计方式中,上述的“根据该第二信息生成可执行sql的sql模板”包括:根据该第二信息,将用于标记上述可执行sql中条件参数位置的地址标识替换为预设信息,以得到sql模板。
13.在另一种可能的设计方式中,在上述“根据该第二信息生成可执行sql的sql模板”之前,上述方法还包括:基于可执行sql中的属性参数,确定允许被开放式访问的目标属性参数。上述的“根据该第二信息生成可执行sql的sql模板”包括:根据所确定的目标属性参数对应的第二信息,将用于标记可执行sql中的目标属性参数对应条件参数位置的地址标识,替换为预设信息,以得到sql模板。
14.通过该可能的设计方式,可以使数据提供方灵活控制允许对外开放数据资源范围,即提高了数据资源开放的灵活度。
15.第二方面,本技术提供了一种生成应用程序编程接口api的装置。
16.在一种可能的设计方式中,该生成api的装置用于执行上述第一方面提供的任一种方法。本技术可以根据上述第一方面提供的任一种方法,对该生成api的装置进行功能模块的划分。例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。示例性的,本技术可以按照功能将该生成api的装置划分为获取单元和生成单元等。上述划分的各个功能模块执行的可能的技术方案和有益效果的描述均可以参考上述第一方面或其相应的可能的设计提供的技术方案,此处不再赘述。
17.在另一种可能的设计中,该生成api的装置包括:存储器和一个或多个处理器,存储器和处理器耦合。存储器用于存储计算机指令,处理器用于调用该计算机指令,以执行如第一方面及其任一种可能的设计方式提供的任一种方法。
18.第三方面,本技术提供了一种计算机可读存储介质,如计算机非瞬态的可读存储介质。其上储存有计算机程序(或指令),当该计算机程序(或指令)在生成api的装置上运行时,使得该生成api的装置执行上述第一方面中的任一种可能的实现方式提供的任一种方法。
19.第四方面,本技术提供了一种计算机程序产品,当其在生成api的装置上运行时,使得第一方面中的任一种可能的实现方式提供的任一种方法被执行。
20.第五方面,本技术提供了一种芯片系统,包括:处理器,处理器用于从存储器中调用并运行该存储器中存储的计算机程序,执行第一方面中的实现方式提供的任一种方法。
21.可以理解的是,上述提供的任一种装置、计算机存储介质、计算机程序产品或芯片系统等均可以应用于上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
22.在本技术中,上述生成api的装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本技术类似,属于本技术权利要求及其等同技术的范围之内。
23.本技术的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
24.图1为本技术实施例提供的生成api的装置的硬件结构示意图;
25.图2为本技术实施例提供的一种数据访问系统示意图;
26.图3为本技术实施例提供的生成api的方法的流程示意图一;
27.图4为本技术实施例提供的生成api的方法的流程示意图二;
28.图5为本技术实施例提供的生成api的方法的流程示意图三;
29.图6为本技术实施例提供的一种生成api的装置的结构示意图;
30.图7为本技术实施例提供的一种芯片系统的结构示意图;
31.图8为本技术实施例提供的计算机程序产品的结构示意图。
具体实施方式
32.为了更清楚的理解本技术实施例,下面对本技术实施例中涉及的部分术语或技术进行说明:
33.1)、结构化查询语句(structured query language,sql)
34.sql是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,主要用于存取数据,或者用于查询、更新或管理关系数据库系统等。
35.2)应用程序编程接口(application programming interface,api)
36.api是一种预先定义的函数。通常,应用程序将自身的服务能力封装成api,这样,应用程序即可将该服务能力开放给用户调用。
37.3)其他术语
38.在本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
39.在本技术的实施例中,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。
40.本技术中术语“至少一个”的含义是指一个或多个,本技术中术语“多个”的含义是指两个或两个以上,例如,多个第二报文是指两个或两个以上的第二报文。本文中术语“系统”和“网络”经常可互换使用。
41.应理解,在本文中对各种所述示例的描述中所使用的术语只是为了描述特定示例,而并非旨在进行限制。如在对各种所述示例的描述和所附权利要求书中所使用的那样,单数形式“一个(“a”,“an”)”和“该”旨在也包括复数形式,除非上下文另外明确地指示。
42.还应理解,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。术语“和/或”,是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本技术中的字符“/”,一般表示前后关联对象是一种“或”的关系。
43.还应理解,在本技术的各个实施例中,各个过程的序号的大小并不意味着执行顺
序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
44.应理解,根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其它信息确定b。
45.还应理解,术语“包括”(也称“includes”、“including”、“comprises”和/或“comprising”)当在本说明书中使用时指定存在所陈述的特征、整数、步骤、操作、元素、和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元素、部件、和/或其分组。
46.还应理解,术语“如果”可被解释为意指“当...时”(“when”或“upon”)或“响应于确定”或“响应于检测到”。类似地,根据上下文,短语“如果确定...”或“如果检测到[所陈述的条件或事件]”可被解释为意指“在确定...时”或“响应于确定...”或“在检测到[所陈述的条件或事件]时”或“响应于检测到[所陈述的条件或事件]”。
[0047]
应理解,说明书通篇中提到的“一个实施例”、“一实施例”、“一种可能的实现方式”意味着与实施例或实现方式有关的特定特征、结构或特性包括在本技术的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”、“一种可能的实现方式”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
[0048]
本技术实施例提供了一种生成api的方法,该方法可以通过对可执行sql语句进行自动解析后生成api,从而提高了生成api的效率。
[0049]
本技术实施例还提供一种生成api的装置,该装置可以是数据资源提供商的api开发平台,或者该装置可以是公共的api开发平台,本技术实施例对此不作具体限定。
[0050]
应理解,本技术实施例对数据资源提供商所提供的数据资源的类型不作具体限定。
[0051]
具体的,上述生成api的装置可以是服务器。该服务器可以是物理服务器,例如通用的计算机设备。或者,该服务器可以是云服务器等,本技术实施例对此不作具体限定。
[0052]
可选的,上述生成api的装置还可以是终端。该终端可以是手机、平板电脑、可穿戴电子设备等便携式设备,也可以是个人计算机(personal computer,pc)、个人数字助理(personal digital assistant,pda)、上网本等计算设备,还可以是其他任一能够实现本技术实施例方法的终端设备,本技术对此不作具体限定。
[0053]
参考图1,图1示出了本技术实施例提供的一种生成api的装置10的硬件结构示意图。如图1所示,生成api的装置10包括处理器11、存储器12、通信接口13以及总线14。处理器11、存储器12以及通信接口13之间可以通过总线14连接。
[0054]
处理器11是生成api的装置10的控制中心,可以是一个通用中央处理单元(central processing unit,cpu),也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。
[0055]
作为一个示例,处理器11可以包括一个或多个cpu,例如图1中所示的cpu 0和cpu 1。
[0056]
存储器12可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信
息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
[0057]
一种可能的实现方式中,存储器12可以独立于处理器11存在。存储器12可以通过总线14与处理器11相连接,用于存储数据、指令或者程序代码。处理器11调用并执行存储器12中存储的指令或程序代码时,能够实现本技术实施例提供的生成api的方法。
[0058]
另一种可能的实现方式中,存储器12也可以和处理器11集成在一起。
[0059]
通信接口13,用于生成api的装置10与其他设备(如数据提供方设备等)通过通信网络连接,所述通信网络可以是以太网,无线接入网(radio access network,ran),无线局域网(wireless local area networks,wlan)等。通信接口13可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。
[0060]
总线14,可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component interconnect,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图1中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0061]
需要指出的是,图1中示出的结构并不构成对该生成api的装置10的限定,除图1所示部件之外,该生成api的装置10可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0062]
参考图2,本技术实施例还提供一种数据访问系统20。如图2所示,该数据访问系统20包括数据提供方21,api服务平台22以及数据使用方23。
[0063]
可选的,api服务平台22可以是上述的生成api的装置。这样的话,api服务平台22可以基于数据提供方21提供的允许对外开放访问的数据资源,生成可以访问这些数据资源的api(例如api 221、api 222、

、或api 22n等)。这样,数据使用方23即可通过调用这些api,对数据提供方21允许对外开放访问的数据资源进行访问。
[0064]
可选的,api服务平台22可以预存有生成api的装置基于数据提供方21提供的允许对外开放访问的数据资源所生成的、用于访问这些数据资源的api(例如api 221、api 222、

、或api 22n等)。这样,数据使用方23即可通过调用这些api,对数据提供方21允许对外开放访问的数据资源进行访问。
[0065]
下面结合附图,对本技术实施例所提供的生成api的方法予以详细说明。
[0066]
为简化描述,本技术实施例在下文中,将上述生成api的装置简称为生成装置。
[0067]
参考图3,图3示出了本技术实施例提供的生成api的方法的流程示意图。该方法可以包括以下步骤:
[0068]
s101、生成装置获取用于查询待查询数据的可执行sql。
[0069]
这里的可执行sql,可以是标准格式的sql,该可执行sql用于查询待查询数据。其中,待查询数据可以是图2中所示的数据提供方允许对外开放访问的数据资源,本技术实施例对此不作限定。
[0070]
作为示例,图2中所示的数据提供方,可以基于允许对外开放访问的数据资源预先
构建得到上述的可执行sql。当该可执行sql被执行时,可以查询(或访问)这些允许对外开放访问的数据资源。这里,本技术实施例对数据提供方构建该可执行sql的具体过程不予限定。
[0071]
应理解,在上述可执行sql中,包括至少一个条件语句单元。在每个条件语句单元中,包括一个属性参数和一个条件参数。其中,该属性参数用于指示待查询数据的属性,通常,该属性参数包括字段。该条件参数用于指示查询具有该属性的待查询数据的查询条件,通常,该条件参数包括数值或字符串,即条件参数的类型可以是数值或字符串。
[0072]
容易看出,对于一个条件语句单元而言,其所包括的属性参数和条件参数是对应的,该对应的属性参数和条件参数共同用于描述具有某种属性以及条件的待查询数据。
[0073]
示例性的,该预先构建的可执行sql可以是:
[0074]
select*from apple
[0075]
--
苹果颜色为红色
[0076]
where color='red'
[0077]
--
苹果重量大于10或小于20
[0078]
and(weight》10or weight《20);
[0079]
其中,该可执行sql用于在数据库中查询颜色为红色,且重量在10-20之间的苹果的数据。其中,“苹果颜色为红色”和“苹果重量大于10或小于20”为该可执行sql的注释文本。“where”、“and”和“or”为该可执行sql中的连接词。
[0080]
其中,连接词“where”用于引出限定待查询数据查询范围的条件语句单元。通常,在连接词“where”之后,包括至少一个条件语句单元。例如,“color='red'”即为一个条件语句单元,在该条件语句单元中,属性参数为字段“color”,条件参数为字符串“'red'”。又例如。“weight》10”为一个条件语句单元,在该条件语句单元中,属性参数为字段“weight”,条件参数为数值“10”。不再赘述。
[0081]
连接词“and”和连接词“or”,用于表示在多个条件语句单元中不同条件语句单元之间的关系。“and”表示并列关系,“or”表示或的关系。
[0082]
可选的,数据提供方可以通过生成装置的输入输出入接口,向生成装置输入构建好的可执行sql。作为响应,生成装置获取到该可执行sql。
[0083]
例如,数据提供方的开发人员通过生成装置的键盘、鼠标或触摸屏等输入输出接口,向生成装置输入构建好的可执行sql。作为响应,生成装置获取到该可执行sql。
[0084]
可选的,数据提供方可以在构建完成可执行sql后,通过数据提供方设备的通信接口,经有线或无线的通信网络,向生成装置发送生成api的请求。其中,该生成api的请求中包括数据提供方所构建的可执行sql。作为响应,生成装置接收到该生成api的请求,并获取到该可执行sql。
[0085]
s102、生成装置基于所获取的可执行sql,生成第一信息。
[0086]
其中,第一信息包括该可执行sql中属性参数的名称和该可执行sql中条件参数的类型。
[0087]
具体的,生成装置可以先屏蔽该可执行sql中的注释文本,然后根据该可执行sql中的连接词,将该可执行sql解析为至少一个条件语句单元。
[0088]
示例性的,对于s101中示例的可执行sql,生成装置可以屏蔽该可执行sql中的注
释文本“苹果颜色为红色”和“苹果重量大于10或小于20”。然后,生成装置根据该可执行sql中的连接词“where”、“and”以及“or”,将该可执行sql解析为三个条件语句单元:
[0089]
color='red'
[0090]
weight》10
[0091]
weight《20
[0092]
接着,生成装置可以根据解析得到的至少一个条件语句单元,提取该至少一个条件语句单元中的属性参数和条件参数。
[0093]
示例性的,生成装置基于上述示例解析得到三个条件语句单元,可以提取到该三个条件语句单元中的条件参数:
[0094]
'red'
[0095]
10,20
[0096]
又示例性的,生成装置基于上述示例解析得到三个条件语句单元,可以提取到该三个条件语句单元中的属性参数:
[0097]
color,weight,weight
[0098]
然后,生成装置可以基于提取到的属性参数和条件参数,生成至少一个第一信息。这里,该至少一个第一信息和上述解析得到的至少一个条件语句单元一一对应。
[0099]
具体的,生成装置可以根据从同一个条件查询语句(例如条件查询语句1)中提取的属性参数和条件参数,生成该条件查询语句对应的第一信息。该第一信息中包括条件查询语句1中属性参数的名称,以及条件查询语句1中条件参数的类型。
[0100]
可选的,生成装置可以根据从条件查询语句1所提取的属性参数所表示的属性,以该属性作为第一信息中属性参数的名称。
[0101]
可选的,生成装置可以根据从条件查询语句1所提取的属性参数,以自定义名称来作为第一信息中属性参数的名称。这种情况下,生成装置预存有从条件查询语句1中所提取的属性参数和自定义名称之间的对应关系。
[0102]
示例性的,以条件查询语句1是“color='red'”为例,基于该条件查询语句,生成装置提取到的条件参数为“'red'”,可以看出,该条件参数的类型为字符串,因此生成装置可以确定第一信息中条件参数的类型为字符串。
[0103]
此外,生成装置基于条件查询语句1提取到的属性参数为“color”。这样,基于属性参数“color”所表示的属性color,生成装置可以将该属性color作为第一信息中属性参数的名称。这样的话,生成装置可以确定条件查询语句1对应的第一信息为:名称color;类型字符串。
[0104]
或者,生成装置基于条件查询语句1提取到的属性参数为“color”。这样,生成装置可以自定义第一信息中属性参数的名称为name 1。应理解,在这种情况下,生成装置预存有自定义名称和所提取到的属性参数的对应关系,即预存有自定义名称name 1和所提取到的属性参数“color”的对应关系。这样的话,生成装置可以确定条件查询语句1对应的第一信息为:名称name 1;类型字符串。
[0105]
类似的,以条件查询语句2是“weight》10”为例,生成装置可以确定条件查询语句2对应的第一信息为:名称weight 1;类型数值。或者,生成装置可以确定条件查询语句2对应第一信息为:名称name 2;类型数值。
[0106]
类似的,以条件查询语句3是“weight《20”为例,生成装置可以确定条件查询语句3对应第一信息为:名称weight 2;类型数值。或者,生成装置可以确定条件查询语句3对应第一信息为:名称name 3;类型数值。
[0107]
s103、生成装置基于上述确定的第一信息,生成第二信息。
[0108]
其中,第二信息用于指示条件参数在上述可执行sql中的位置,和上述第一信息的映射关系。应理解,该条件参数即为生成装置在步骤s102所提取的、用于确定第一信息的条件参数。
[0109]
具体的,生成装置可以通过以下步骤生成第二信息:
[0110]
步骤1、生成装置在上述可执行sql中,通过地址标识符标记条件参数的位置。
[0111]
具体的,生成装置可以使用地址标识符替换该可执行sql中的条件参数。这样,即实现了通过地址标识符标记条件参数在可执行sql中的位置。
[0112]
示例性的,以上文示例的可执行sql为例,在屏蔽了注释文本的可执行sql中,使用地址标识符符替换该sql中的条件参数:
[0113]
select*from apple
[0114]
where color=${1}
[0115]
and(weight》${2}or weight《${3});
[0116]
其中,“${1}”是用于标记条件参数“'red'”的地址标识符,“${2}”是用于标记条件参数“10”的地址标识符,“${3}”是用于标记条件参数“20”的地址标识符。
[0117]
应理解,本技术实施例对地址标识符的具体形式不作具体限定。
[0118]
步骤2、生成装置将上述的地址标识符,添加至基于通过该地址标识符标记位置的条件参数所确定的第一信息中,以生成第二信息。
[0119]
当生成装置对上述可执行sql中条件参数的位置进行标记后,可以将用于标记位置的地址标识符,添加至基于通过该地址标识符标记位置的条件参数所确定的第一信息中,从而实现了该条件参数在可执行sql中的位置,和第一信息的映射。
[0120]
示例性的,对于上文示例的可执行sql中的条件查询语句1“color='red'”而言,生成装置可以将用于标记条件查询语句1中的条件参数“'red'”的位置的地址标识符“${1}”,添加至该条件查询语句1对应的第一信息中,以得到该条件查询语句1对应的第二信息:名称color;类型字符串;位置${1},或者,得到该条件查询语句1对应的第二信息:名称name 1;类型数值;位置${1}。
[0121]
类似的,对于上文示例的可执行sql中的条件查询语句2“weight》10”而言,生成装置可以将用于标记条件查询语句2中的条件参数“10”的位置的地址标识符“${2}”,添加至该条件查询语句2对应的第一信息中,以得到该条件查询语句2对应的第二信息:名称weight 1;类型数值;位置${2},或者,得到该条件查询语句2对应的第二信息:名称name 2;类型数值;位置${2}。
[0122]
类似的,对于上文示例的可执行sql中的条件查询语句3“weight《20”而言,生成装置可以将用于标记条件查询语句3中的条件参数“20”的位置的地址标识符“${3}”,添加至该条件查询语句3对应的第一信息中,以得到该条件查询语句3对应的第二信息:名称weight 2;类型数值;位置${3},或者,得到该条件查询语句3对应的第二信息:名称name 3;类型数值;位置${3}。
[0123]
可以看出,第一信息的数量与第二信息的数量一一对应,可执行sql中的一个条件查询单元,对应一条第一信息,以及对应一条第二信息。
[0124]
s104、生成装置根据上述生成的第二信息,生成上述可执行sql的sql模板。
[0125]
具体的,生成装置可以根据第二信息中条件参数的类型,将用于标记该条件参数位置的地址标识符,替换为预设信息,以生成该可执行sql的sql模板。
[0126]
其中,生成装置可以根据第二信息中该条件参数的类型,确定用于替换可执行sql中标记该条件参数位置的地址标识符的预设信息的格式。
[0127]
可选的,如果第二信息中条件参数的类型是字符串,则生成装置在使用预设信息替换地址标识符时,其格式可以是:'预设信息'。如果第二信息中条件参数的类型是数值,则生成装置在使用预设信息替换地址标识符时,其格式可以是:预设信息。当然,本技术实施例对此不作具体限定。
[0128]
可以理解的是,本技术实施例对预设信息的确定方式不作具体限定。
[0129]
例如,在一种可能的实现方式中,上述预设信息可以是第二信息中的属性参数的名称。这种情况下,生成装置可以根据第二信息中条件参数的类型,将用于标记该条件参数位置的地址标识符,替换为该第二信息中属性参数的名称,从而生成该可执行sql的sql模板。
[0130]
示例性的,对于上文示例的可执行sql而言,其对应的第二信息可以包括第二信息1:名称color;类型字符串;位置${1}。这样的话,上述的预设信息可以是第二信息1中属性参数的名称color,由于第二信息1中条件参数的类型为字符串,则预设信息在替换地址标识符时的格式可以为:'color'。这样,生成装置则可以使用'color'替换可执行sql中标记条件参数位置的地址标识符${1}。
[0131]
类似的,上文示例的可执行sql所对应的第二信息可以包括第二信息2:名称weight 1;类型数值;位置${2}。这样的话,上述的预设信息可以是第二信息2中属性参数的名称weight 1,由于第二信息2中条件参数的类型为数值,则预设信息在替换地址标识符时的可以格式为:weight 1。这样,生成装置则可以使用weight 1替换可执行sql中标记条件参数位置的地址标识符${2}。
[0132]
类似的,上文示例的可执行sql所对应的第二信息可以包括第二信息3:名称weight 2;类型数值;位置${3}。这样的话,上述的预设信息可以是第二信息3中属性参数的名称weight 2,由于第二信息3中条件参数的类型为数值,则预设信息在替换地址标识符时的格式可以为:weight 2。这样,生成装置则可以使用weight 2替换可执行sql中标记条件参数位置的地址标识符${3}。
[0133]
即,根据上述方法得到的该可执行sql的sql模板为:
[0134]
select*from apple
[0135]
where color='color'
[0136]
and(weight》weight 1or weight《weight 2);
[0137]
在另一种可能的实现方式中,上述的预设信息还可以是自定义信息。这种情况下,生成装置预存有该自定义信息和第二信息中属性参数的名称之间的对应关系。
[0138]
示例性的,对于上文示例的可执行sql而言,其对应的第二信息包括可以第二信息1:名称color;类型字符串;位置${1}。这样的话,上述的预设信息可以是自定义的aaa,这种
情况下,生成装置预存有该aaa和第二信息1中属性参数的名称color之间的对应关系。由于第二信息1中条件参数的类型为字符串,则预设信息在替换地址标识符时的格式可以为:'aaa'。这样,生成装置则可以使用'aaa'替换可执行sql中标记条件参数位置的地址标识符${1}。
[0139]
类似的,上文示例的可执行sql所对应的第二信息可以包括第二信息2:名称weight 1;类型数值;位置${2}。这样的话,上述的预设信息可以是自定义的bbb,这种情况下,生成装置预存有该bbb和第二信息2中属性参数的名称weight 1之间的对应关系。由于第二信息2中条件参数的类型为数值,则预设信息在替换地址标识符时的格式可以为:bbb。这样,生成装置则可以使用bbb替换可执行sql中标记条件参数位置的地址标识符${2}。
[0140]
类似的,上文示例的可执行sql所对应的第二信息可以包括第二信息3:名称weight 2;类型数值;位置${3}。这样的话,上述的预设信息可以是自定义的ccc,这种情况下,生成装置预存有该ccc和第二信息3中属性参数的名称weight 2之间的对应关系。由于第二信息3中条件参数的类型为数值,则预设信息在替换地址标识符时的格式可以为:ccc。这样,生成装置则可以使用ccc替换可执行sql中标记条件参数位置的地址标识符${3}。
[0141]
即,根据上述方法得到的该sql的sql模板为:
[0142]
select*from apple
[0143]
where color='aaa'
[0144]
and(weight》bbb or weight《ccc)。
[0145]
s105、生成装置根据上述生成的sql模板,生成api。
[0146]
生成装置基于上述生成的sql模板,生成包括该sql模板的api。
[0147]
应理解,该api即为本技术实施例最终要生成的api。
[0148]
应理解,通过本技术实施例所生成的api中,包括有生成装置在上述步骤中所生成的sql模板。这样,当数据使用方在开发应用时,可以通过引用该api,并根据该api的使用说明,使用具体的条件参数替换该api中sql模板中的预设信息,即可得到具体可执行的sql。当该具体可执行的sql被执行时,即可查询(或访问)到该具体的条件参数所限定范围内的数据资源。这样,即实现了数据使用方对数据提供方的数据资源的访问(或调用)。
[0149]
其中,api的使用说明,可以是数据使用方预先从数据提供方获取的api使用说明。该使用说明记录了api中的sql模板里的预设信息,和待查询(或待访问)数据的属性的对应关系。
[0150]
可以看出,在上述s101~s105中,生成装置基于所获取的可执行sql中的全部属性参数生成api。这种情况下,表示数据提供方允许该可执行sql中的全部属性参数所指示的待查询数据,均允许被访问(或调用)。也就是说,数据提供方允许该可执行sql中的全部属性参数所指示的待查询数据允许被开放式访问(或调用),即数据提供方对该全部属性参数所对应的条件参数不作固定,也即,这些条件参数是允许数据使用方指定的。
[0151]
作为示例,当生成装置通过执行s101~s105所述方法,基于s101~s105中示例的可执行sql所生成的api被调用时,数据使用方可以指定使用任意颜色的条件参数,替换该api中sql模板里与数据资源属性color所对应的预设信息,以及可以指定使用任意数值的条件参数,替换该api中sql模板里与数据资源属性weight所对应的预设信息。
[0152]
然而在一些实施例中,数据提供方在构建可执行sql后,对该sql中的部分属性参
数所对应的待查询数据而言,数据提供方不允许其被开放式访问(或调用),而仅允许该部分属性参数对应的条件参数所限定范围内的待查询数据被访问(或调用)。也就是说,数据提供方要求该部分属性参数对应的条件参数被固定,即不允许数据使用方自主指定这些条件参数。
[0153]
作为示例,当生成装置通过执行s101~s105所述方法,基于s101~s105中示例的可执行sql所生成的api中,属性参数weight对应的待查询数据不允许数据使用方开放式访问(或调用)。即当该api被调用时,数据使用方可以指定使用任意颜色的条件参数,替换该api中sql模板里与数据资源属性color所对应的预设信息。但是属性参数weight对应的待查询数据,数据使用方仅能够访问在生成该api的可执行sql中,属性参数weight所对应的条件参数所限定范围内的数据资源,也即,数据使用方仅能访问“苹果重量大于10或小于20”的数据资源。
[0154]
这种情况下,生成装置在上述步骤s101~s105执行的过程中,可以通过执行下述步骤,以使生成装置确定目标属性参数,从而可以进一步的根据确定的目标属性参数,生成用于访问(或调用)目标属性参数对应的待查询数据的api。其中,具有目标属性参数所指示属性的数据资源,是数据资源提供商允许开放式访问的数据资源。
[0155]
在一种可能的实现方式中,参考图4,在上述s102之后,本技术实施例方法还可以包括s1021,这种情况下,上述s103可以使用s1031代替:
[0156]
s1021、生成装置在s102所确定的第一信息中,确定目标属性参数所对应的第一信息。
[0157]
由于第一信息中包括可执行sql中用于指示待查询数据属性的属性参数的名称,因此,生成装置可以通过向数据提供方展示在s102所生成的、该sql所对应的至少一个第一信息,以使数据提供方在该至少一个第一信息中确定目标属性参数对应的第一信息。
[0158]
可选的,生成装置可以在确定出至少一个第一信息后,通过生成装置的显示模块(例如显示屏),向数据提供方展示该至少一个第一信息。这样,数据提供方即可根据生成装置所展示的至少一个第一信息中的属性参数名称,确定目标属性参数所对应的第一信息。
[0159]
然后,数据提供方可以从生成装置所展示的至少一个第一信息中,选择目标属性参数所对应的第一信息,并通过生成装置的输入输出接口(例如鼠标、键盘或触摸屏等),向生成装置输入所选择的第一信息,或输入用于指示所选择的第一信息的标识信息(例如第一信息的编号等)等,对此本技术实施例不作具体限定。
[0160]
作为响应,生成装置即可确定出目标属性参数所对应的第一信息。
[0161]
可选的,生成装置可以在确定出至少一个第一信息后,向数据提供方设备发送该至少一个第一信息。这样,数据提供方即可接收到该至少一个第一信息,并通过数据提供方设备的显示模块(例如显示屏),向数据提供方展示该至少一个第一信息。
[0162]
这样的话,数据提供方即可根据数据提供方设备所展示的至少一个第一信息中的属性参数名称,确定目标属性参数所对应的第一信息。
[0163]
接着,数据提供方可以从数据提供方设备所展示的至少一个第一信息中,选择目标属性参数所对应的第一信息,并通过数据提供方设备的输入输出接口(例如鼠标、键盘或触摸屏等),向数据提供方设备输入所选择的第一信息,或输入用于指示所选择的第一信息的标识信息(例如第一信息的编号等)等,对此不作具体限定。
[0164]
然后,数据提供方设备即可确定目标属性参数所对应的第一信息,并向生成装置发送这些第一信息,或向生成装置发送用于指示这些第一信息的标识信息(例如第一信息的编号等)等,对此不作具体限定。
[0165]
作为响应,生成装置即可确定出目标属性参数所对应的第一信息。
[0166]
s1031、生成装置基于确定出的目标属性参数所对应的第一信息,生成对应的第二信息。
[0167]
具体的,生成装置可以在可执行sql中,通过地址标识符标记上述确定出的目标属性参数所对应的条件参数的位置。然后,生成装置将该地址标识符,添加至包括该目标属性参数的名称的第一信息中,从而生成第二信息。
[0168]
生成装置通过地址标识符标记上述确定出的目标属性参数所对应的条件参数的位置,以及将该地址标识符,添加至包括该目标属性参数的名称的第一信息中,从而生成第二信息的具体说明,可以参考上述s103中的相关描述,这里不再赘述。
[0169]
这样的话,在生成装置执行完步骤s1031之后,生成装置通过执行步骤s104和步骤s105所生成的api中,目标属性参数对应的数据资源允许被开放式访问(或调用),非目标属性参数对应的数据资源不允许被开放式访问(或调用),即在该api中的sql模板里,非目标属性参数对应的条件参数是被固定不变的。
[0170]
因此,通过上述方法,数据提供方可以灵活选择被开放调用的数据资源,提高了数据资源开放的灵活度。
[0171]
在另一种可能的实现方式中,参考图5,在上述s103之后,本技术实施例方法还可以包括s1032,这种情况下,s104可以使用s1041代替:
[0172]
s1032、生成装置在s103所生成的第二信息中,确定目标属性参数所对应的第二信息。
[0173]
由上文可以看出,第二信息中包括sql中用于指示待查询数据属性的属性参数的名称,因此,生成装置可以通过向数据提供方展示在s103所生成的、该sql所对应的至少一个第二信息,以使数据提供方在该至少一个第二信息中确定目标属性参数对应的第二信息。
[0174]
可选的,生成装置可以在生成至少一个第二信息后,通过生成装置的显示模块(例如显示屏),向数据提供方展示该至少一个第二信息。这样,数据提供方即可根据生成装置所展示的至少一个第二信息中的属性参数名称,确定目标属性参数所对应的第二信息。
[0175]
然后,数据提供方可以从生成装置所展示的至少一个第二信息中,选择目标属性参数所对应的第二信息,并通过生成装置的输入输出接口(例如鼠标、键盘或触摸屏等),向生成装置输入所选择的第二信息,或输入用于指示所选择的第二信息的标识信息(例如第二信息的编号等)等,对此不作具体限定。
[0176]
作为响应,生成装置即可确定出目标属性参数所对应的第二信息。
[0177]
可选的,生成装置可以在生成至少一个第二信息后,向数据提供方设备发送该至少一个第二信息。这样,数据提供方即可接收到该至少一个第二信息,并通过数据提供方设备的显示模块(例如显示屏),向数据提供方展示该至少一个第二信息。
[0178]
这样的话,数据提供方即可根据数据提供方设备所展示的至少一个第二信息中的属性参数名称,确定目标属性参数所对应的第二信息。
[0179]
接着,数据提供方可以从数据提供方设备所展示的至少一个第二信息中,选择目标属性参数所对应的第二信息,并通过数据提供方设备的输入输出接口(例如鼠标、键盘或触摸屏等),向数据提供方设备输入所选择的第二信息,或输入用于指示所选择的第二信息的标识信息(例如第二信息的编号等)等,对此不作具体限定。
[0180]
然后,数据提供方设备即可确定目标属性参数所对应的第二信息,并向生成装置发送这些第二信息,或向生成装置发送用于指示这些第二信息的标识信息(例如第二信息的编号等)等,对此不作具体限定。
[0181]
作为响应,生成装置即可确定出目标属性参数所对应的第二信息。
[0182]
s1041、生成装置根据上述确定出的目标属性参数所对应的第二信息,生成上述可执行sql的sql模板。
[0183]
具体的,生成装置根据上述确定出的目标属性参数所对应的第二信息中条件参数的类型,将用于标记该条件参数位置的地址标识符,替换为预设信息,以生成该可执行sql的sql模板。
[0184]
生成装置根据上述确定出的目标属性参数所对应的第二信息中条件参数的类型,将用于标记该条件参数位置的地址标识符,替换为预设信息,以生成该可执行sql的sql模板的具体过程,可以参考上文s104中的相关描述,这里不再赘述。
[0185]
这样的话,在生成装置执行完步骤s1041之后,生成装置通过执行步骤s105所生成的api中,目标属性参数对应的数据资源允许被开放式访问(或调用),非目标属性参数对应的数据资源不允许被开放式访问(或调用),即在该api中的sql模板里,非目标属性参数对应的条件参数是被固定不变的。
[0186]
因此,通过上述方法,数据提供方可以灵活选择被开放调用的数据资源,提高了数据资源开放的灵活度。
[0187]
综上,本技术实施例提供了一种生成api的方法,基于该方法,生成装置通过对可执行sql进行解析,并生成该可执行sql的sql模板,以及基于该sql模板生成用于访问该可执行sql所指示的待查询数据的api。相比现有技术,通过本技术实施例提供的方法生成api,简化了人工配置参数的流程,大大提高了生成api的效率。
[0188]
此外,由于本技术实施例提供的方法,可以使数据提供方灵活控制允许对外开放数据资源范围,即提高了数据资源开放的灵活度。
[0189]
上述主要从方法的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
[0190]
本技术实施例可以根据上述方法示例对生成装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0191]
如图6所示,图6示出了本技术实施例提供的一种生成装置60的结构示意图。生成装置60可以用于执行上述的生成api的方法,例如用于执行图3、图4或图5所示的方法。其中,生成装置60可以包括获取单元61和生成单元62。
[0192]
获取单元61,用于获取可执行结构化查询语句sql,该可执行sql用于查询待查询数据。生成单元62,用于根据可执行sql生成第一信息,该第一信息包括该可执行sql中属性参数的名称和可执行sql中条件参数的类型,该属性参数用于指示待查询数据的属性,该条件参数用于指示查询具有属性的待查询数据的查询条件。生成单元62,还用于基于该第一信息生成第二信息,该第二信息用于指示条件参数在sql中的位置,与第一信息的映射关系。生成单元62,还用于根据该第二信息生成可执行sql的sql模板。生成单元62,还用于根据该sql模板,生成用于访问待查询数据的api。
[0193]
作为示例。结合图3、图4或图5,获取单元61可以用于执行s101。结合图3,生成单元62可以用于执行s102~s105。
[0194]
可选的,上述的属性参数包括字段,上述的条件参数包括数值或字符串。
[0195]
可选的,生成装置60还包括:解析单元63,用于将上述可执行sql解析为至少一个条件语句单元,该一个条件语句单元包括一个属性参数和一个条件参数。提取单元64,用于提取该至少一个条件语句单元中的属性参数和条件参数。生成单元62,具体用于基于提取单元64提取的属性参数和条件参数,生成至少一个第一信息,该至少一个第一信息和该至少一个条件语句单元一一对应。
[0196]
作为示例。结合图3、图4或图5,解析单元63、提取单元64以及生成单元62,可以用于执行s102。
[0197]
可选的,生成装置60还包括:标记单元65,用于在上述可执行sql中对用于生成第一信息的条件参数的位置进行标记。生成单元62,还具体用于基于在上述可执行sql中所标记的地址标识和第一信息,生成第二信息。这里,该第二信息和该第一信息对应。
[0198]
作为示例。结合图3和图5,标记单元65和生成单元62可以用于执行s103。结合图4,标记单元65和生成单元62可以用于执行s1031。
[0199]
可选的,生成单元62,还具体用于根据上述第二信息,将用于标记可执行sql中条件参数位置的地址标识替换为预设信息,以得到sql模板。
[0200]
作为示例。结合图3和图4,生成单元62可以用于执行s104。结合图5,生成单元62可以用于执行s1041。
[0201]
可选的,生成装置60还包括:确定单元66,用于在生成单元62根据第二信息生成可执行sql的sql模板之前,基于可执行sql中的属性参数,确定允许被开放式访问的目标属性参数。生成单元62,还具体用于根据该目标属性参数对应的第二信息,将用于标记可执行sql中的目标属性参数对应条件参数位置的地址标识,替换为预设信息,以得到sql模板。
[0202]
作为示例。结合图4,确定单元66可以用于执行s1021,生成单元62可以用于执行s104。结合图5,确定单元66可以用于执行s1032,生成单元62可以用于执行s1041。
[0203]
关于上述可选方式的具体描述可以参见前述的方法实施例,此处不再赘述。此外,上述提供的任一种生成装置60的解释以及有益效果的描述均可参考上述对应的方法实施例,不再赘述。
[0204]
作为示例,结合图1,生成装置60中的获取单元61、生成单元62、解析单元63、提取
单元64、标记单元65以及确定单元66所实现的功能,可以通过图1中的处理器11执行图1中的存储器12中的程序代码实现。
[0205]
本技术实施例还提供一种芯片系统70,如图7所示,该芯片系统70包括至少一个处理器和至少一个接口电路。作为示例,当该芯片系统70包括一个处理器和一个接口电路时,则该一个处理器可以是图7中实线框所示的处理器71(或者是虚线框所示的处理器71),该一个接口电路可以是图7中实线框所示的接口电路72(或者是虚线框所示的接口电路72)。当该芯片系统70包括两个处理器和两个接口电路时,则该两个处理器包括图7中实线框所示的处理器71和虚线框所示的处理器71,该两个接口电路包括图7中实线框所示的接口电路72和虚线框所示的接口电路72。对此不作限定。
[0206]
处理器71和接口电路72可通过线路互联。例如,接口电路72可用于接收信号(例如获取可执行sql等)。又例如,接口电路72可用于向其它装置(例如处理器71)发送信号。示例性的,接口电路72可读取存储器中存储的指令,并将该指令发送给处理器71。当该指令被处理器71执行时,可使得生成装置执行上述实施例中的各个步骤。当然,该芯片系统70还可以包含其他分立器件,本技术实施例对此不作具体限定。
[0207]
本技术另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当指令在生成装置上运行时,该生成装置执行上述方法实施例所示的方法流程中该生成装置执行的各个步骤。
[0208]
在一些实施例中,所公开的方法可以实施为以机器可读格式被编码在计算机可读存储介质上的或者被编码在其它非瞬时性介质或者制品上的计算机程序指令。
[0209]
图8示意性地示出本技术实施例提供的计算机程序产品的概念性局部视图,该计算机程序产品包括用于在计算设备上执行计算机进程的计算机程序。
[0210]
在一个实施例中,计算机程序产品是使用信号承载介质80来提供的。该信号承载介质80可以包括一个或多个程序指令,其当被一个或多个处理器运行时可以提供以上针对图3、图4或图5描述的功能或者部分功能。因此,例如,参考图3中s101~s105的一个或多个特征可以由与信号承载介质80相关联的一个或多个指令来承担。此外,图8中的程序指令也描述示例指令。
[0211]
在一些示例中,信号承载介质80可以包含计算机可读介质81,诸如但不限于,硬盘驱动器、紧密盘(cd)、数字视频光盘(dvd)、数字磁带、存储器、只读存储记忆体(read-only memory,rom)或随机存储记忆体(random access memory,ram)等等。
[0212]
在一些实施方式中,信号承载介质80可以包含计算机可记录介质82,诸如但不限于,存储器、读/写(r/w)cd、r/w dvd、等等。
[0213]
在一些实施方式中,信号承载介质80可以包含通信介质83,诸如但不限于,数字和/或模拟通信介质(例如,光纤电缆、波导、有线通信链路、无线通信链路、等等)。
[0214]
信号承载介质80可以由无线形式的通信介质83(例如,遵守ieee 802.11标准或者其它传输协议的无线通信介质)来传达。一个或多个程序指令可以是,例如,计算机可执行指令或者逻辑实施指令。
[0215]
在一些示例中,诸如针对图3、图4或图5描述的生成装置可以被配置为,响应于通过计算机可读介质81、计算机可记录介质82、和/或通信介质83中的一个或多个程序指令,提供各种操作、功能、或者动作。
[0216]
应该理解,这里描述的布置仅仅是用于示例的目的。因而,本领域技术人员将理解,其它布置和其它元素(例如,机器、接口、功能、顺序、和功能组等等)能够被取而代之地使用,并且一些元素可以根据所期望的结果而一并省略。另外,所描述的元素中的许多是可以被实现为离散的或者分布式的组件的、或者以任何适当的组合和位置来结合其它组件实施的功能实体。
[0217]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上和执行计算机执行指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,dvd)、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0218]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献