数据服务:简单快速生成API接口,提高数据共享效率

数据服务是数据工程和应用业务之间的管道,数据应用方不需要关心数据存放在哪里,数据提供方也不需要关心取数服务的具体实现,通过简单的配置实现取数API的自动化构建,提高数据中台的整体效率。

在上述操作过程中,已经通过模型设计中心、离线开发、数据质量等产品将业务库中连锁便利店的数据进行了数仓规范化建设,本示例中最终生成了两张ads层的表(ads_product_sales_cookbook1和ads_product_sales_cookbook2),如果想要将在大数据开发及管理平台中加工好的表创建报表,可以通过数据服务构建数据表的API,在报表系统中集成展示数据。

打开导航栏,在数据服务及应用模块,点击数据服务,进入产品页面。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图1 2021-08-27-14-23-07.png

对于当前项目管理员/负责人,默认进入数据服务是有全部Tab可见权限的,若对于未授权的用户,仅可见部分Tab,包括API集市、SDK下载页面等。项目管理员/负责人可在安全中心(右上角项目配置下拉,进入安全中心,若页面没有安全中心入口,则可以通过安全中心的访问链接进行跳转)对其他角色/成员进行赋权。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图3 2021-08-27-14-23-19.png

拥有数据服务产品的访问权限后,进入数据服务产品页面,在API管理列表中进入API集合(若非平台中的数据想要生成API,则最先需要进入数据源登记页面注册数据源),点击新建API集合,填写集合名称和集合Path,集合Path是构成API的URL地址的一部分。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图5 2021-08-27-14-23-33.png

集合创建成功之后,进入API列表页面,点击”新建API”进入创建API的三步骤。第一步需要配置API的基本信息,包括API所归属的集合,API Path、协议、请求方式、返回类型、超时时间等内容,若API含有业务内容,也可针对API进行标签设置。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图7 2021-08-27-14-23-53.png

在入参设置中,点击”添加”,设置入参,平台支持普通入参和函数入参,鼠标Hover至入参类型后端的”?”处,可查看具体的函数入参,当前函数入参通过函数实现对请求参数的二次处理,比如concat函数,实现对两个或者多个字符串的连接。本示例以创建普通入参为例,定义入参名称为sku_id,参数类型为字符串,设置为必填。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图9 2021-08-27-14-24-08.png

点击下一步,进入API取数逻辑的设置阶段,选择生成方式,平台支持向导模式和SQL模式,向导模式仅支持单表生成API,且无法实现聚合等功能,但模式简单,SQL模式支持同一数据源下的多表join操作,可实现聚合等函数功能,通过写SQL语句实现。然后选择数据源,本示例中以平台上已加工好的Hive类型数据表ads_product_sales_cookbook1为例,选择集群、数据库、查询引擎、impala集群和执行队列。

页面会展示在第一步中创建的入参参数,在脚本编辑框中可以书写SQL语句,select后面的字段表示API的返回参数,where条件后面的字段表示API的请求参数,可点击”注意事项”,查看书写SQL语句的注意点,SQL写完之后,点击”解析返回参数”,可以将语句中的字段解析到左侧的”返回参数列表”中,可修改参数名称和类型等内容,也支持增加和删除返回参数。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图11 2021-08-27-14-24-26.png

API取数逻辑创建完成之后,点击”完成,开始测试”进入第三步测试页面,首先需要绑定资源组,进行资源组的连通性测试(资源组是API调用时使用的查询服务的资源组,是由后台进行配置的,API的调用须与查询资源组连通才可以),连通性通过之后,若请求参数为必填,则填写请求参数的值,点击”开始测试”,右侧会呈现当前API的查询结果。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图13 2021-08-27-14-24-45.png

API测试成功之后,点击完成,回到API列表页面,针对当前已测试成功的API,在操作列的”更多”里面选择发布,将API发布至线上环境,发布后的API才可以绑定应用。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图15 2021-08-27-14-25-00.png

在API绑定应用之前,需要在”应用管理”页面创建应用,创建应用是为了生成应用的key和secret,用来在API调用时实现鉴权。点击新建应用,只需要填写应用名称和描述即可。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图17 2021-08-27-14-25-14.png

应用创建完成后,返回至API列表,点击已发布的API名称,进入详情页面,在授权信息处,点击右侧的”添加授权”,弹窗选择已创建成功的”cookbook应用示例”,点击确定,则当前API成功绑定了应用。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图19 2021-08-27-14-25-28.png

以上,完成了API的创建以及与应用的绑定,对于API的调用,平台提供详细的调用手册供参考,可在”SDK下载页面”或者”API集市”右上角点击”下载”,下载pdf版本的API调用手册说明。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图21 2021-08-27-14-25-41.png

数据服务:简单快捷生成API接口,提高数据共享效率 - 图23 2021-08-27-14-25-53.png

本示例用postman(第三方调用API的工具)调用已绑定应用的API,对调用过程做进一步的说明。首先进入预调用API的详情页面,复制API的调用地址。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图25 2021-08-27-14-26-10.png

在postman页面粘贴该调用地址,get模式调用需要在header中添加四个参数,其中,version默认为v1版本,timestamp为当前时间戳,默认5分钟后失效,appKey为绑定应用的key值,可以在应用详情页面获取,signature为md5(appSecret+timestamp)生成,可以通过在线MD5加密网站生成该sign值。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图27 2021-08-27-14-26-25.png

数据服务:简单快捷生成API接口,提高数据共享效率 - 图29 2021-08-27-14-26-39.png

header中4个参数填写完成之后,由于该API设置的请求参数为必填,可在URL请求地址后面添加”?sku_id=1”表示请求参数设置为1,然后点击send,在postman下方即返回API的查询结果。

数据服务生成的API当前支持两种调用方式,http调用和sdk调用,在”SDK下载”页面提供封装好的SDK包,若有需要,可直接在页面下载,具体调用方式可参考下载的调用手册。

以上以API创建者的身份完成了API的生成和调用,若用户为API的使用者,不涉及到API取数逻辑的构建,只需要针对已经发布的API,进行申请使用即可,则可以通过API集市实现该需求。

在API集市Tab下,所有已经发布的API均呈现在集市列表中,可查看详情,了解API的请求和返回参数,可对API进行收藏,也支持通过标签、创建人等快速筛选。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图31 2021-08-27-14-26-54.png

点击”申请API”,弹窗对内容进行填写,下拉选择绑定应用(若没有合适的应用,也可以点击右侧的新建,创建新的应用,是否有新建的权限,也是在安全中心通过权限控制的),默认是API的创建者进行审批。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图33 2021-08-27-14-27-05.png

提交申请之后,可通过上方弹出的”流程协作与通知中心”快速进入工单审批系统,查看当前工单状态。

数据服务:简单快捷生成API接口,提高数据共享效率 - 图35 2021-08-27-14-27-17.png

工单审批通过之后,则在API集市,点击”查看详情”,基础信息中包含请求地址,在下面的授权信息中,展现申请绑定的应用信息,支持点击应用名称,跳转至应用详情页,可以获悉appKey和appSecret,调用方式同上述用postman调用,也可参考下载的API调用手册,了解其他调用方式。