为了满足高阶用户的个性化查询需求,数据服务也提供了自定义SQL的脚本模式,允许您自行编写API的查询SQL,并支持多表关联、复杂查询条件以及聚合函数等能力。
配置API基本信息
1.在DataArts Studio控制台首页,选择实例,点击“进入控制台”,选择对应工作空间的“数据服务”模块,进入数据服务页面。
详见下图:选择数据服务
2.在左侧导航选择服务版本(例如:专享版),进入总览页。
3.进入“API管理”页面,单击“新建”,填写API基本信息。
详见下表: API基本信息
配置 | 说明 |
---|---|
API名称 | 支持中文、英文、数字、下划线,且只能以英文或中文开头,3-64个字符。 |
API目录 | 一个特定功能或场景的API集合,类似文件夹,是数据服务中API的最小组织单元,也是API网关中的最小管理单元。 您可单击“新建”进行新建,也可选择已创建的API分组。 |
请求Path | API访问路径,例如:/v2/{project_id}/streams。 请求Path即完整的url中,域名之后、查询参数之前的部分,如下图中的“/blogs/188138”。详见下图: 统一资源定位符url说明 在请求路径中,可以使用大括号{}标识路径中的参数作为通配符。如“/blogs/{blog_id}”表示/blogs后可以携带任何参数,例如“/blogs/188138”和“/blogs/0”均会匹配至/blogs/{blog_id},由此API统一处理。 此外,相同域名下,不允许重复的请求路径出现。路径参数作为通配符时,名称不具备唯一性,例如“/blogs/{blog_id}”和“/blogs/{xxxx}”,会被视作相同路径。 |
参数协议 | 用于传输请求的协议,支持HTTP和HTTPS协议。 HTTP属于基础的网络传输协议,无状态、无连接、简单、快速、灵活、使用明文传输,在使用上较为便捷,但是安全性欠佳。 HTTPS是在HTTP协议上进行了SSL或TLS加密校验的协议,能够有效验证身份以及保护数据完整性。相对的,访问HTTPS的API,需要配置相关的SSL证书或跳过SSL校验,否则将无法访问。 |
请求方式 | HTTP请求方式,表示请求什么类型的操作,包含GET、POST等,遵循resultful风格。 GET:请求服务器返回指定资源,推荐使用GET请求。 POST:请求服务器新增资源或执行特殊操作,仅在注册API时使用。POST请求当前不支持body体,而是直接透传。 |
描述 | 对API进行简要描述。 |
标签 | 对API设置标签。用于标记当前API的属性,创建后可以通过标签快速检索定位API。单个API最多可设置20个标签。 |
审核人 | 拥有API的审核权限。 单击“新建”,进入“审核中心>审核人管理”页面,新建审核人。 |
安全认证 | API认证方式: APP认证:表示由API网关服务负责接口请求的安全认证,安全级别最高。 IAM认证:表示借助IAM服务进行安全认证,安全级别中等。 无认证:属于无防护的模式,无需认证即可访问,安全级别低,不推荐使用。 |
服务目录可见性 | 发布后,所选范围内的用户均可以在服务目录中看到此API。 当前工作空间可见 当前项目可见 当前租户可见 |
访问日志 | 勾选,则此API的查询结果将会产生记录并被保留7天,可以在“运营管理>访问日志”处通过选择“请求日期”的方式查看对应日期的日志。 |
最低保留期限 | API解绑前预留的最低期限。0表示不设限制。 API进行停用/下线/取消授权时,会通知已授权用户,并为用户预留至少X小时,直到所有授权用户均完成解除或处理,或者到达截止时间,API才会停用/下线/取消授权。 |
入参定义 | 配置API请求中的参数,包含资源路径中的动态参数,请求URI中的查询参数和Header参数。 添加入参定义时,如果参数设定为必填,则API在访问时,必须传入指定参数;如果非必填,则在API访问时,未传入的参数,会使用默认值进行代替。 参数大小限制如下: query+path,url最大32KB header,最大128KB body, 最大128KB 以配置资源路径中的动态参数为例进行说明,例如资源路径(请求Path)设置为: /v2/{project_id}/streams,资源路径中的{project_id}为动态参数,需要在此进行配置。 1. 单击“添加”,参数名配置为project_id。 2. 参数位置选择PATH。 3. 类型设置为STRING。 4. 选择性配置示例值和描述。 |
4.配置好API基本信息后,单击“下一步”,即可进入API取数逻辑页面。
配置取数逻辑
“取数方式”选择“脚本方式”:
1.选择数据源、数据连接、数据库和队列,获取到需要配置的表。
说明数据服务仅支持部分数据源,详情请参见图 DataArts Studio支持的数据源。您需提前在DataArts Studio管理中心中配置好数据源,按照脚本编辑提示要求输入SQL语句。
2.编写API查询SQL。
在脚本编辑页面,按照脚本编辑提示要求输入SQL语句。
说明
SELECT查询的字段即为API返回参数,支持返回别名。
WHERE条件中的参数为API请求参数,参数格式为${参数名}。
3.选择分页方式。
默认分页是指在创建API时输入了SQL,数据服务会自动基于SQL外层包装分页逻辑。例如输入的SQL脚本为:
SELECT name as Student_Name FROM tableofresults
数据服务在处理调试或者调用时,将自动在用户SQL外层包装分页逻辑,从而变成以下脚本:
SELECT * FROM (SELECT name as Student_Name FROM tableofresults) LIMIT {pageSize} OFFSET {offsetValue}
其中pageNum、offsetValue为调试或者调用时传入参数的值。如果未定义pageNum参数的话,数据服务将默认给API设置一个pageNum参数;offsetValue是调试或者调用时传入参数pageSize的值计算得到,如果用户未定义pageSize参数的话,数据服务将默认给API设置一个pageSize参数。
自定义分页是指用户在创建API时,数据服务将不对用户SQL进行处理,分页逻辑完全由用户定义。如果用户需要创建分页的API的话,则可以在写SQL时加入分页逻辑。例如:
SELECT name as Student_Name FROM tableofresults LIMIT {pageSize} OFFSET {offsetValue}
4.添加排序参数。
在排序参数列表中,设置排序字段是否可选,排序方式和描述。单击,将入参和排序参数添加为SQL语句的API请求参数。
说明添加排序参数前,请确保SQL语句正确。
5.编辑请求参数信息
编写好API查询SQL后,单击“测试SQL”,在数据库字段页签内绑定HTTP入参。参见配置取数逻辑中的6配置pre_order_by参数。
说明pre_order_by是非必填参数,当未配置pre_order_by参数值时,则选取非可选排序字段作为排序的依据。
测试API
完成API参数的配置并保存后,单击左下角的“开始测试”,可进入API测试环节。
填写参数值,单击“开始测试”,即可在线发送API请求,在右侧可以看到API请求详情及返回内容。如果测试失败,请仔细查看错误提示并做相应的修改重新测试。 配置过程中需要注意正常返回示例的设置。
完成API测试之后,单击“确定”,即成功生成了一个数据API。
修改API
生成API后,如果您需要修改API内容,可在“开发API > API目录”或“开发API > API管理”处选择对应API,点击“编辑”按钮进行修改API的相关操作。
说明仅当API处于已创建、已驳回、已下线、已停用的情况下才能进行API修改。