在数据服务API测试发布完成后,可以在API的详情页看到API的所有信息,包括:API调用信息,生成接口文档,调用说明,调用地址(需 API 发布后才会生成),路径,请求代码示例等。
数据服务API目前支持以HTTP协议的调用方式进行调用。
本文将为您介绍调用操作流程。


您可以在请求代码示例中查看调用的请求示例、请求步骤、请求/返回参数等信息。下面为您介绍API调用的操作流程:
步骤1. 复制秘钥:
2. 首先您需在系统管理 > 应用管理中创建应用;
3. 在对应的应用列表右侧操作列中,单击进入密钥管理界面;
4. 单击右上角创建密钥按钮,设置新建应用秘钥信息,单击确定按钮,完成新建。
5. 在秘钥列表界面,单击操作列中的“复制秘钥”便可复制。
此处的“应用密钥” 即为调用API时需要填入的DPS_TOKEN,调用的时候将$DPS_TOKEN替换为具体的“应用密钥”信息。
秘钥相关操作详见“应用管理”。
步骤2. 授权管理
进入API详情界面,单击授权管理页签,给API新增已创建的应用授权。
在授权管理界面,单击新增授权按钮,并完成以下信息配置,完成相应的应用授权操作,其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数:
表 新增授权 说明
参数 | 说明 |
|---|---|
基本权限 | |
*应用名称 | 下拉选择允许调用 API 的应用名称,对应一个已创建成功的应用信息。 若您还未创建应用,您可单击新建应用按钮,前往应用管理进行创建。新建操作详见“应用管理”。 |
标志符 | 应用的唯一标识,在应用管理创建时指定。 |
有效期 | 设定应用授权有效期限,新的到期时间=当前到期时间+续期天数,续期时会给 API 管理者和应用的申请者发送相应通知。您可下拉选择有效期天数。 |
应用方 | 输入应用方名称信息,可用于申请 API、授权或审批时方便明确应用方信息。 |
*最大QPS | 设置应用调用 API 的最大 QPS,您可根据实际情况,自定义设置调用 API 时最大的 QPS,当调用的 QPS 达到最大值时,会触发限流。 若选择不限制,则默认不限流。 |
*调用负责人 | 下拉选择真正调用当前 API 的应用负责人。 |
调用优先级 | 下拉选择调用的优先级情况,数字越小,代表等级越高。 |
标签 | 您可以自定义标签,用于标识某一类授权,以便快速搜索区分。
|
授权描述 | 添加授权描述信息,可针对授权场景进行信息补充。 |
行列权限 | |
行级权限 | 设置调用的行级权限,您可针对请求参数做限制,比如限制只能访问某个请求参数的某几个值。支持添加多个行权限,各请求参数可以是“且”、“或”的关系。 注意 行级权限设置前,您需先添加对应的请求参数,如指标查询式API设置权限前,需先添加所需的维度字段。 |
列权限 | 列权限针对返回参数做限制,比如限制只能返回某列的参数信息。下拉选择返回参数字段列,支持选择多个。 |
步骤3. 在环境内调用API:
以下以脚本式方式创建的API调用示例为例:
curl -X POST \ -H 'user: username' \ -H 'Content-Type: application/json' \ http://exxxxx.datarangers-onpremise.volces.com/invoker_engine/query_with_params \ -d '{"ApiID": "180xxxxxx64","Option": [{"Id":100,"Val":0,"Val_":"$DPS_TOKEN"}],"Params": {}}'
参数说明:
表 API调用示例 参数说明
参数 | 说明 |
|---|---|
user | API 责任人用户名信息。非必填。 |
Url | 获取调用说明栏中的调用 URL。 |
ApiID | 输入当前已发布的API ID信息,在API详情中可获取。 |
$DPS_TOKEN | 替换应用管理中已创建的秘钥信息。 |
Params/Sql |
|
如果使用了动态秘钥功能,创建方式详见“管理密钥”。则可以使用如下接口,来动态获取Token信息:
curl -X POST \ -H 'user: username' \ -H 'Content-Type: application/json' \ http://exxxxxxleap.datarangers-onpremise.volces.com/data_service/api/v2/api_service/token \ -d '{"AppKey": "you_app_key","AppSecret": "you_app_secret"}'
返回样例如下:
{ "code": 0, "message": "Success", "data": { "AppKey": "you_app_key", "Token": "token_str" }, "meta": { "text": "", "redirect": "" } }
注意
动态Token有一定有效期且会动态变化,请不要缓存动态Token或者对动态Token有任何假设,每次请求获取即可。
后续您便可将获取到的动态Token信息,复制到API调用所需的秘钥参数中。
因每个场景的API返回字段都不同,所以返回参数以具体API调试返回的结果为主。下文以一个示例为您介绍返回参数说明。
API返回结果示例如下:
{ "Fields": [ { "Name": "id", "Type": 1 }, { "Name": "group_name", "Type": 3 }, { "Name": "value", "Type": 1 } ], "Data": "[[1,\"group1\",100],[2,\"group2\",200],[3,\"group3\",300]]", "TimeCost": 8, "DataCnt": 3, "ErrorCode": "", "RenderedSql": "", "BaseResp": { "StatusMessage": "", "StatusCode": 0 } }
说明
若 API 调用脚本中,URL 链接参数信息是 http://exxxxxxleap.volces.com/data_service/api/v2/api_service/query/179xxxxxxxx44/,其采用/data_service/api/v2格式属于旧版数据服务的语法。在此情况下,返回结果中的字段元数据 Type 会展示每个字段的详细类型,如 stirng、int 等;
若 URL 链接参数是 /query_with_params格式时,则属于新版本数据服务语法,此时返回结果中的字段元数据 Type 展示为数字,具体数字与数据类型的映射关系详见FieldType。
返回参数中部分字段说明,返回结果组成如下:
参数 | 说明 |
|---|---|
Fields | 返回参数的字段名称和类型,字段类型具体说明如下FieldType |
Data | 返回结果,返回结果的顺序与 Fields 中的字段顺序对应。 |
TimeCost | 本次查询耗时,单位 ms。 |
DataCnt | 本次查询返回结果数量。 |
ErrorCode | 错误码,具体如下QueryErrorType |
RenderedSql | 已渲染的 sql 语句,目前返回结果中不会展现,您无需关注。 |
BaseResp | 基本信息,包含报错具体内容、错误码耗时等。 |
返回参数的字段类型数字映射关系:
enum FieldType { UNKNOWN = 0 // 未知类型 BIGINT = 1 // BIGINT、INT类型 DOUBLE = 2 // DOUBLE、FLOAT类型 STRING = 3 // 字符串类型 DATE = 4 // 日期类型 MAP = 5 // MAP类型 ARRAY = 6 // 数组类型 BINARY = 7 // BINARY类型 }
ErrorCode常见错误状态码说明:
状态码 | 名称 | 含义 |
|---|---|---|
0 | QueryErrorType_OK | 查询成功 |
1 | QueryErrorType_PARSER_ERROR | 解析报错 |
2 | QueryErrorType_ILLGEAL_INPUT_ERROR | 非法参数报错 |
3 | QueryErrorType_RATE_LIMIT_ERROR | 限流报错 |
4 | QueryErrorType_AUTH_ERROR | 权限报错 |
5 | QueryErrorType_QUERY_TIMEOUT | 查询超时报错 |
6 | QueryErrorType_DS_TIMEOUT | 数据源超时报错 |
7 | QueryErrorType_INTERNAL_ERROR | 程序内部报错 |
8 | QueryErrorType_META_ERROR | 元信息报错 |
9 | QueryErrorType_DS_RATE_LIMIT_ERROR | 数据源限流报错 |
10 | QueryErrorType_API_PSM_RATE_LIMIT_ERROR | API的PSM粒度限流错误 |
11 | QueryErrorType_ARREARS_ERROR | 欠费 |
255 | QueryErrorType_UNKNOWN_ERROR | 未知错误 |
One Service常见错误码说明
状态码 | 含义 |
|---|---|
0000 | 未知查询引擎 |
10001 | 没有权限 |
10002 | 元信息错误 |
10003 | 参数解析错误 |
10004 | Api的QPS超限额 |
10005 | 解析错误 |
10006 | 执行错误 |
10007 | 未知查询类型 |
10008 | 查询请求错误 |
10009 | 查询引擎不匹配错误 |
10010 | 数据源限流错误 |
10011 | PSMXAPI限流错误 |
10012 | 令牌无效 |
10013 | 数据权限规则错误 |
10014 | 无数据权限错误 |
10016 | 欠费错误 |
10017 | 压力测试无效错误 |
10018 | ACL允许IP无访问权限错误 |
10019 | ACL阻止IP无访问权限错误 |
10020 | 数据源连接错误 |
10021 | 调用引擎内部超时错误 |
10022 | 数据源超时错误 |
20001 | NoSQL 解析错误 |
20002 | NoSQL 预处理错误 |
20003 | NoSQL 规划器错误 |
20004 | NoSQL 动态索引错误 |
20005 | NoSQL DAG构建错误 |
20006 | NoSQL 类型错误 |
20007 | NoSQL 交换错误 |
20008 | NoSQL 资源不足错误 |
20009 | NoSQL 操作符运行错误 |
20010 | NoSQL 参数错误 |
20011 | NoSQL 任务停止错误 |
20012 | NoSQL 索引错误 |
20013 | NoSQL 任务超时错误 |
20014 | NoSQL 数据丢失错误 |
30001 | ClickHouse SQL解析错误 |
30008 | ClickHouse 鉴权失败 |
30010 | ClickHouse 数据源限流错误 |
30011 | ClickHouse 当前SQL限流错误 |
30012 | ClickHouse 字段验证错误 |
30013 | ClickHouse 未知表错误 |
40001 | MySQL SQL 解析错误 |
40002 | MySQL 未知数据源错误 |
40003 | MySQL 字段验证错误 |
40004 | MySQL 查询超时错误 |
40006 | MySQL 模糊集群错误 |
40007 | MySQL 未知表错误 |
40008 | MySQL SQL鉴权错误 |
数据服务API开发测试并发布后,您可一键获取API接口使用文档,方便调用时进行参考。
进入API详情界面,在调用信息页签中,您可按需在浏览器中直接生成VN版本接口文档、或生成当前线上接口文档;您也可以单击下载VN版本接口文档按钮,将API使用文档下载至本地。您可在接口文档中查看HTTP调用实例、开启分页调用说明、使用Postman调式API说明、使用Java调用API说明等使用信息。
说明
下载的接口文档为Markdown格式,您可通过Markdown编辑器或文本编辑打开,进行查看API接口使用文档。

数据服务API上架到API集市后,您可通过申请调用API,来解决API开发过程中重复开发、滥用数据等问题,提高API的使用率,最大程度的实现API的复用,减少冗余开发。
