一种通过标签生成API的方法和系统与流程

文档序号:16529304发布日期:2019-01-05 10:36阅读:518来源:国知局
一种通过标签生成API的方法和系统与流程

本发明涉及计算机技术,更具体而言,涉及一种在大数据平台上通过标签生成api服务的方法和装置。



背景技术:

现有技术进行应用开发时(例如大数据平台上的应用开发),通常需要搭建开发框架,投入开发资源,以完成接口开发和前端的展现。这种开发模式耗时耗力且易发生重复性劳动。因此需要能减少资源投入、缩短开发周期的新技术。对此,现有技术中已经存在一些尝试。例如在一些现有技术的大数据开发平台上实施了这样的技术方案,通过用户提供指定返回格式的接口,生成报表,具体包括:首先,开发平台指定接口返回格式,用户根据指定格式开发完成接口后将接口部署到外网可访问到的服务器上;然后用户登录开发平台,通过界面配置接口的访问地址,完成接口的前端展现。

但这些现有技术仍存在不足。例如,用户需求存在不确定性,需要经常调整接口。若应用无法满足指定的返回格式,将会导致图表无法展示,给用户带来损失。同时仍无法改变用户在接口开发中的人力的投入。

因此,需要更好的技术方案,能更快速、灵活地生成用户所需的服务(通常是api的形式),以降低应用开发的资源投入,缩短系统开发周期。



技术实现要素:

本发明的一方面是一种用于生成api的方法,包括:(1)获取至少一个数据源的表信息和字段信息;(2)选择至少一个标签,形成包括所选择的标签的标签组;(3)根据所获得的所述表信息和所述字段信息,确定所述数据源中与所述标签组内的至少一个标签对应的一张表中的一个字段;(4)以一一映射的方式存储所述标签组内根据步骤(3)被确定对应关系的各标签及其对应字段;以及(5)定义所述api的业务规则,所述业务规则与步骤(2)形成的所述标签组存在关联。

本发明的另一方面是一种用于生成api的系统,包括:至少一个数据源;标签管理模块,其使得用户能选择至少一个标签,以形成标签组;实例化模块,用于获得所述数据源的表信息和字段信息,并能基于所述表信息、所述字段信息和所述标签组进行实例化;和引擎中心模块,用于选择所需要的功能引擎,其中实例化模块和引擎中心模块中的至少之一能允许用户定义api的业务规则,所述业务规则与所述实例化关联。

本发明的实施例能够减少api开发所需的成本,缩短应用开发周期,并且后续需求改变也能快速通过界面配置来生成新的api和服务,以供快速上线使用。

附图说明

图1为根据本发明的实施例的生成api的方法的流程图。

图2a至图2d为根据本发明的实施例的可视化界面生成api的例子的示意图。

图3为根据本发明的实施例可运行于其上的系统的示意图。

具体实施方式

现在将参照若干示例性实施例来论述本发明的内容。应当理解,论述了这些实施例仅是为了使得本领域普通技术人员能够更好地理解且因此实现本发明的内容,而不是暗示对本发明的范围的任何限制。

如本文中所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实施例”和“一种实施例”要被解读为“至少一个实施例”。术语“另一个实施例”要被解读为“至少一个其他实施例”。

如本领域所通常理解的,本发明中的“服务”应被解读为暴露给外部使用的,能对数据进行操作的可调用的一组api。如本领域所通常理解的,标签是由中文名称、英文名称、数值类型等属性构成的数据资产。本发明的实施例允许用户自定义标签,并且使得可将标签实际指向用户在数据源中指定的表中的某个字段。

图1使出了根据本发明的实施例的生成api的方法。该方法包括获取至少一个数据源的表信息和字段信息(本发明的一些实施例可以同时从多个数据源获取所有数据源的表信息和字段信息)。根据本发明的实施例,在获取一个数据源的表信息和字段信息之前通常还需要对数据源进行配置。在数据源配置的过程中,首先根据用户提供的数据源信息(例如数据源的类型、访问地址、数据库名、用户名、用户密码等),进行数据源的连通性的测试。若连接成功,则尝试获取用户提供的目标数据源的所有表信息及字段信息以作后用。数据源的类型例如是mysql、elasticsearch、postgresql等。

图1的方法还包括选择所需要的标签,形成标签组。选择标签的标准例如可以根据使用场景而定。不同的大数据平台通常会设置具有特定的标签类目体系,这样的类目体系通常具有分级(或分层)的结构,以便于标签的管理和浏览。本发明可以通过可视化的界面来便于用户选择标签,提供了便利性。由于本发明允许用户自行选择标签,可以灵活地形成不同的标签组。用户还可以将曾经形成的标签组存储起来,以在将来由自己或他人复用。

图1所示的方法还包括实例化的步骤。简言之,实例化是将标签与数据源中的字段绑定的过程。基于从数据源获得的表信息及字段信息,以及用户形成的标签组中的标签,将所述标签组中的至少一个标签映射到特定的表的特定字段,从而在标签组中的这些标签和这些特定字段之间形成一一映射的关系。不同标签可能会被映射到同一张表中的不同字段,也可能被映射到同一数据源中不同表中的字段,而且,在多个数据源被涉及的情况下,不同标签可能会被映射到不同数据源中的字段。当多张表被涉及时,即实现了表级别的关联;例如,通过识别列字段(即两张表都拥有的字段)进行关联(join),达到即使标签属于不同的表也可以通过关联字段将它们拼接为同一个标签组的目的。将标签映射到字段所依赖的规则可以根据应用场景由用户决定,例如可以是“标签与字段的名称相同”。例如,现有昵称、用户名两个标签,实例化时可以与用户(user)表的昵称(nickname)、用户名(username)分别对应,即实例化时昵称标签选择用户(user)表的昵称(nickname),用户名标签选择用户(user)表的用户名(username)。在形成前述映射关系后,可以根据映射关系将标签和对应的字段存储到数据源中。

图1所示的方法还包括选择api所需要的功能引擎。功能引擎是大数据领域中公知的概念,有时也被称为“计算引擎”或“引擎”。已有多种开源或非开源的功能引擎,例如分析引擎、搜索引擎等。在选择功能引擎的过程中,通常还需要配置引擎的服务页面地址、所需要的数据存储的类型(例如mysql、elasticsearch、postgresql等)、数据存储的地址等信息。功能引擎所需要的数据存储可以是前述数据源,也可以是前述数据源之外的数据源。

图1所示的方法还包括定义api的业务规则。api的业务规则定义了api要完成的任务,而且与前述标签组存在关联。本发明的实施例允许用户通过可视化界面上的操作来定义api的业务规则,例如在可视化界面上选择已经预定义的业务规则,或者在该界面上通过一定的操作来完成业务规则的定义。例如,通过可视化配置,用户选择与具体业务相关的标签组,然后确定相应的运算或操作规则。例如,现有用户需要查询用户名为“xx”的数据,可通过界面选择配置好的与用户信息相关的标签组,并选择该标签组中的“用户名”标签,设置过滤条件为“等于xx”。上述过程既完成了api的业务规则的定义。

在完成实例化、业务规则的定义以及功能引擎的选择后,即可生成api。通常,此步骤还包括确定api的输入参数和输出。api也可以没有输入参数,甚至也没有输出(而只是完成业务规则和功能引擎所确定的数据操作过程)。另外,根据本发明的实施例,还需要生成api的标识符,以便于被外部调用(例如是字符串或随机数)。

图2a-2d示出了根据本发明的实施例,用户在可视化的界面上进行操作来生成api的过程。此过程没有体现图1所示方法的所有步骤,而是只体现了其中一些步骤,以便于本发明的主旨的理解。

图2a示出了便于用户选择标签的界面,具体而言示出了“业主投诉信息”类目下的若干标签,包括业主id、业主姓名、业主年龄、业主地址、城市、投诉位置、投诉位置次数等。用户可通过鼠标操作来选择所需要的标签。

图2b示出了用户选择了业主id、业主姓名和业主年龄这三个标签(也可以称之为三个维度),形成所需要的标签组。形成标签组后,可在后台完成实例化的操作。

图2c示出了定义api的业务规则的过程。例如,对于查询得到小区业主的投诉次数的目标而言,界面上提供了总投诉次数(求和)、求和、求平均数、计数、去重计数、最大值、最小值等计算规则。用户当下选择了“总投诉次数(求和)”,即完成了api的业务规则的定义。而且,图中右侧的表格显示了该api在当前数据源上运行的结果。

图2d示出了在前述api的供外部调用的url地址。

图3示出了一个本发明的实施例可实施于其上的系统,包括:持久层、基础层、应用层以及外部系统。持久层用于用户数据的存储(即数据源),常见的例子有mysql、hive、elasticsearch、postgresql等。基础层包括标签中心和引擎中心两个模块。标签中心模块内的标签管理模块使得可以新建、修改标签,而实例管理模块用于完成实例化。引擎中心模块内的引擎管理模块用于引擎的新建、选择和修改。允许用户定义api的业务规则的功能可以实现在实例化模块中,也可以实现在引擎中心模块中。应用层为组合了api的服务的提供层,其包括用于服务的新建、修改,以便使外部用户调用服务的服务管理模块。外部系统为用户实际场景使用的系统,其通过以api的形式调用应用层的与服务管理模块连接的接口,以操作数据。

本发明各实施例的方法和装置可以实现为纯粹的软件(例如用java或sql语言来编写的软件程序),也可以根据需要实现为纯粹的硬件(例如专用asic芯片或fpga芯片),还可以实现为结合了软件和硬件的系统(例如存储有固定代码的固件系统)。本发明实施例的数据存储可以采用mysql、elasticsearch、postgresql等数据库系统。

本发明的另一个方面是一种计算机可读介质,其上存储有计算机可读指令,所述指令被执行时可实施本发明各实施例的方法。

以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。要求保护的主题的范围仅由所附的权利要求进行限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1