数据服务 API 开发,您可通过页面相关配置,基于逻辑表快速表生成 API,供服务应用系统调用 API 获取数据,且可对 API 进行统一管理、发布、运维等操作,主要面向于 API 开发人员。
本文将为您介绍如何进行 API 的开发。
在进行 API 开发前,请保证满足以下两点使用前提:
在新建 API 之前,您需要先创建 API 文件夹目录,API 文件夹目录用于存放 API、管理 API,方便对API进行分类。
文件夹创建完成后,您可在文件夹中,进行以下操作:
可在一级文件夹路径下创建第二、第三级文件夹,同样单击文件夹右侧的新建子文件夹按钮,在弹窗中输入文件夹名称完成创建。
说明
文件夹涉及到的更多操作如下,移动至文件夹最右侧更多按钮,进行以下操作:
操作 | 描述 |
---|---|
重命名 | 单击重命名按钮,在弹窗中,输入新的文件夹名称。 |
移动 | 单击移动按钮,在弹出窗口中可选择新的文件夹路径,确认后文件夹及文件下的 API 会移动到新路径目录下。 说明 为了不影响线上 API 调用情况,待移动的 API,所对应的逻辑表,会自动授权至目标项目下,需秉持权限最小化原则,谨慎操作移动 API文件夹。 |
删除 | 单击删除按钮,当删除时当文件夹下为空,可直接进行删除;当文件夹下有子文件夹或 API 时,文件夹和 API 的位置会上升一级。 |
文件夹新建完成后,您便可开始新建 API。
单击左侧目录树上方新建 API按钮,或鼠标 Hover 文件夹更多操作中新建 API选项,进入新建 API 配置界面。
新建 API 支持三种类型:
说明
向导式创建 API ,仅支持单张逻辑表。
API 类型选择完成后,需配置 API 的基本信息和更多配置:
新建API相关参数如下所示,其中参数名称前带 * 的为必填参数,名称前未带 * 的为可选填参数。
参数 | 描述 |
---|---|
基本信息 | |
*API 名称 | 输入 API 名称信息,API 名称需以字母、数字或下划线字符组成,30个字符以内 |
*存储目录 | 下拉选择已创建的文件夹目录,用来存放创建的 API。 |
*最大 QPS | 配置该 API 允许的最大 QPS。 |
安全等级 | 设置 API 安全等级,分为 L1-公开、L2-内部、L3-秘密、L4-机密 4 种安全等级。 |
描述 | 输入 API 描述信息,方便后续维护和管理。 |
更多配置 | |
最大 limit | 正整数形式,输入 API 查询的最大 limit。 |
*报警模版 | 选择是否开启报警模板,开启后,平台将自动为 API 配置默认的报警规则,报警接收人为 API 负责人,您可根据实际情况,进行选择需开启的报警规则。 |
初始版本 | 初始创建时,默认为V0 |
版本描述 | 请填写版本描述 |
新建 API 配置完基础信息后,单击保存即可进入相应类型 API 的开发页面。
根据实际业务场景,您可以通过自定义 SQL 的脚本模式,自行编写 API 的查询SQL,实现更复杂的查询需求,支持选择同源多张逻辑表进行处理。
逻辑表选择
下拉选择逻辑表,支持选择同源多张逻辑表,最多10张。
编辑查询
在代码框中进行 API 对应的查询 SQL 开发,API 开发阶段,建议可全屏开发来编写 SQL 语句,目前支持的 SQL 类型为:
<SELECT></SELECT>
包裹。您可以在复杂的场景下,如您需根据外部输入或其他变量参数动态改变 SQL 语句时;亦或是需要根据不同业务情况执行不同的 SQL 语句,来实现灵活的业务逻辑查询时,您便可用动态 SQL 语句来生成复杂的查询逻辑。按钮 | 描述 |
---|---|
运行 | 在非全屏页面,单击运行按钮后会切换到编辑器全屏页面,在全屏页面,单击运行按钮可解析请求/返回参数,并展现运行后的查询结果和查询日志。 |
解析请求参数 | 单击解析请求参数按钮后可将 SQL 中的 where 条件作为解析参数传入请求参数栏。 |
表字段 | 单击表字段按钮后打开表字段弹窗,表字段弹出显示选中的逻辑表的字段信息。 |
格式化 | 单击格式化按钮可将 SQL 格式化标准格式。 |
全屏显示 | 在非全屏状态下,单击全屏显示按钮会切换到编辑器全屏页面。 |
取消全屏 | 在全屏状态下,单击取消全屏按钮会切换到编辑器非全屏页面。 |
请求参数
脚本式请求参数可通过解析请求参数来自动解析,单击解析按钮,可进入全面屏模式,进行自动解析。当然也支持您手动添加和校正参数:
参数配置 | 是否必填 | 输入类型 | 说明 |
---|---|---|---|
参数名称 | 是 | 单选 | API 请求参数名称,单 API 请求参数范围内唯一。 |
绑定逻辑表字段 | 是 | 单选 | 请求参数映射的逻辑表字段。 |
参数类型 | 是 | 默认值 | 字段类型,和表元信息保持一致。 |
操作符 | 是 | 单选 | 支持操作符:
|
是否必选 | 是 | 勾选 | 默认勾选支持取消,即设定为必传参数。 |
示例值 | 否 | 文本输入 | 文本输入,任意字符,长度0~200,不填为 null; |
缺省值 | 否 | 文本输入 | 文本输入,任意字符,长度0~200,不填为 null; |
安全等级 | 否 | 单选 | 设置安全等级:L1-公开、L2-内部、L3-秘密、L4-机密 |
参数描述 | 否 | 文本输入 | 文本输入,任意字符,长度0~200,不填为null; |
操作 | — | — |
|
返回参数
脚本式返回参数可通过单击运行按钮自动解析,也支持手动添加和校正参数:
参数配置 | 是否必填 | 输入类型 | 说明 |
---|---|---|---|
参数名称 | 是 | 文本输入 | API 请求参数名称,单 API 请求参数范围内唯一。 |
绑定逻辑表字段 | 是 | 单选 | 返回参数映射的逻辑表字段。 |
参数类型 | 是 | 默认值 | 字段类型,和表元信息保持一致。 |
是否排序参数 | 否 | 勾选 | 用于设定返回结果排序; |
是否必选 | 否 | 勾选 | 返回参数中确认是否必须要返回。 |
示例值 | 否 | 文本输入 | 文本输入,任意字符,长度0~200,不填为null; |
缺省值 | 否 | 文本输入 | 文本输入,任意字符,长度0~200,不填为null; |
安全等级 | 否 | 单选 | 设置安全等级:L1-公开、L2-内部、L3-秘密、L4-机密 |
参数描述 | 否 | 文本输入 | 文本输入,任意字符,长度0~200,不填为null; |
操作 | — | — |
|
高级配置
设置 API 的高级参数信息:
参数 | 说明 |
---|---|
返回结果格式 | 数据返回的结果格式,支持选择 JSON 和 JSONCompact 两种类型:
注意 该配置项在保存并发布当前版本后生效。对于已有下游调用的 API,请谨慎更改,因为可能会导致下游在使用数据时出现异常。 |
数据缓存时间 | 缓存策略为返回结果的缓存时间,一共有三种策略:
|
脚本式 API 实现分页操作
目前 One Service 脚本式实现了查询表的总数返回,您可以根据返回的数据总数来进行分页操作。
当前只适用于 MySQL、ClickHouse 语法类的数据源,且返回的总数是根据用户的 SQL 来返回。
创建一个 API 用以分页查询:
如何进行调用:
在进行调用时,需要在请求提 Option 中新增配置项,参考以下方式:
{ "Id": 6, "Val": 0, "Val_": "{\"with_total\": true}" }
之后在返回结果中,会新增字段 TotalCnt 标明查询表的总数,如下图所示:
请求 Demo 如下:
curl --location 'http://xxx.xxx.xx.xxx/invoker_engine/query_with_params' \ --header 'user: test' \ --header 'env: ONLINE' \ --header 'Content-Type: application/json' \ --data '{ "ApiID": "170xxxxx0485xxxxx", "Option": [ { "Id": 100, "Val": 0, "Val_": "$DPS_TOKEN" }, { "Id": 6, "Val": 0, "Val_": "{\"with_total\": true}" } ], "Params": { "pageNum": 1, "pageSize": 10 } }'
参数 | 说明 |
---|---|
location | 获取调用说明栏中的调用 URL。 |
user | API 责任人用户名信息。 |
env | API 发布的环境信息。
|
ApiID | 在 API 详情页上方,获取 APP ID 信息。 |
DPS_TOKEN | 输入实际的 token 值信息,用于 API 访问鉴权,您可前往系统管理 > 应用管理 > 秘钥管理 > 应用秘钥界面,进行token 信息获取。操作详见2 管理应用密钥 |
Params | 向导式/脚本式 API 的请求参数示例。 |
更多请求参数说明,详见2.1 请求参数说明
通过界面向导的方式新建 API,您无需编写任何代码,在界面上勾选相关配置即可快速生成 API。请求参数为 Where 条件、返回参数为 Select 字段,系统自动生成查询语句。
逻辑表选择
选择逻辑表,仅对所选的逻辑表进行 SQL 自动生成。请求参数为 Where 中包含的字段,返回参数为 Select 中包含的字段。
参数设置
请求/返回参数,您可单击参数列表下方添加/批量添加按钮,来快速选择需要的请求/返回参数,并配置每个参数的信息。
高级配置
设置 API 的高级参数信息:
参数 | 说明 |
---|---|
返回结果格式 | 数据返回的结果格式,支持选择 JSON 和 JSONCompact 两种类型:
注意 该配置项在保存并发布当前版本后生效。对于已有下游调用的 API,请谨慎更改,因为可能会导致下游在使用数据时出现异常。 |
数据缓存时间 | 缓存策略为返回结果的缓存时间,一共有三种策略:
|
开启分页 | 默认为关闭状态;如开启返回结果分页后,会增加以下公共参数的设置:
|
原生式查询是支持用户灵活查询数据集的一种 API 类型,目标是对在圈选范围内逻辑表进行灵活的重组查询,适合数据分析面板类场景。
逻辑表选择
选择逻辑表,支持选择同源的多张逻辑表,最多为 5 张,用户动态传入 SQL,主要用于动态分析场景
高级配置
设置 API 的高级参数信息:
参数 | 说明 |
---|---|
返回结果格式 | 数据返回的结果格式,支持选择 JSON 和 JSONCompact 两种类型:
注意 该配置项在保存并发布当前版本后生效。对于已有下游调用的 API,请谨慎更改,因为可能会导致下游在使用数据时出现异常。 |
数据缓存时间 | 缓存策略为返回结果的缓存时间,一共有三种策略:
|
API 开发之后需要进行保存,保存场景有如下几种:
API 开发完成后,您可在本地直接进行 API 测试,用于辅助 API 开发人员在线验证数据查询逻辑是否符合要求。
打开配置完成的 API 界面,单击右上角测试按钮,进入测试界面。
脚本/向导式模式测试 API 时,您可进行以下操作:
dryRun:勾选 dryRun 时,返回结果中只返回执行的 SQL 逻辑,但不做执行。
请求参数格式:支持选择表单或 JSON 格式。
配置请求参数:
配置项 | 说明 |
---|---|
参数名称 | 自动填写 API 配置的请求参数名称 。 |
参数值 | 输入测试值,不同参数类型填写方式如下:
实际请求参数要以“请求参数体”中的 json 为准。 |
参数类型 | 自动为 API 配置参数类型。 |
是否必选 | 自动获取当前版本 API 配置时的请求参数字段信息。 |
安全等级 | 获取当前版本 API 配置时设置的字段安全等级,您也可以在测试时勾选相应的安全等级。 |
参数描述 | 自动展现当前版本 API 配置时输入的描述信息。 |
请求参数参数值:
所有的参数类型,都支持标准 json 格式对应的参数值。
对于参数类型是 array 类型的请求参数,如果其数组元素不是 array 和 struct 类型,则支持以下两种参数格式:
["abc", "def"]
[1, 2, 3]
[1.2, 4.5, 6.89]
[true, false]
["2022-01-01", "2023-01-01"]
警告
"gre,en,red"
(数组实际包括gre,en
red
两个元素),与 json 格式 ["gre", "en", "red"]
同义(解析后数组实际包括gre
en
red
三个元素)。" green , red "
(预期数组包括green
red
两个元素),与 json 格式 [" green ", " red "]
同义(解析后数组实际包括green
red
两个元素,前后都带空格)。"abc,def"
,与 json 格式 ["abc", "def"]
同义;"1,2,3"
,与 json 格式 [1, 2, 3]
同义;"1.2,4.5,6.89"
,与 json 格式 [1.2, 4.5, 6.89]
同义;"true,false"
,与 json 格式 [true, false]
同义;"2022-01-01,2023-01-01"
,与 json 格式 ["2022-01-01", "2023-01-01"]
同义。返回结果:
请求参数配置完成后,单击右下角测试按钮,开始 API 测试。
测试的返回结果栏中,包含结果信息、请求日志、请求参数体等返回信息:
返回信息 | 说明 |
---|---|
结果信息 | API 查询结果返回:
|
请求日志 | 查看详细的请求日志,展现具体的 SQL 查询逻辑,支持全屏查看。 |
请求参数体 | 以 JSON 格式展现请求的参数体。 |
查询状态 | 返回查询的状态码:成功/失败;以及查询耗时、大小等信息。 |
API 测试完成后,您可单击下方“同步参数至调用信息”按钮,将以上配置参数保存为 API 详情页中的接口请求/返回代码,和请求/返回参数示例。
原生模式测试 API 时,您可进行以下操作:
数据服务 API 测试无误后,您可将 API 发布至线上环境和测试环境:
发布配置参数说明:
说明
预计审批流程、发布线上环境通知人配置项,仅发布至线上环境时才需配置。
配置 | 说明 |
---|---|
发布版本 | 显示当前发布的 API 是第几个版本,显示版本序号。 |
选择发布环境 | 您可选择发布环境为线上环境或测试环境, 发布至哪个环境,在指定环境中才可以调研该 API,否则调用会显示异常。必选项。 |
预计审批流程 | 发布审核流程预览,仅对需要审核的 API 展示。 |
发布线上环境通知人 | 支持手动配置通知接收用户,系统自动通知下游应用负责人。 |
发布线上环境原因 | 填写本次 API 发布的原因。 |
API 的基本配置,打开 API 配置界面,单击右侧导航栏中的基本信息按钮,可对 API 基本信息进行修改:
配置项 | 说明 |
---|---|
API 名称 | 显示当前 API 的名称信息,您可对其进行相应的修改。 |
负责人 | 调整 API 负责人为项目下其他成员。 |
最大 QPS | 设置 API 的最大 QPS,您可根据实际情况,自定义设置调用 API 时最大的 QPS。 |
安全等级 | 设置 API 的安全等级,支持设置 L1-公开、L2-内部、L3-秘密、L4-机密 4 种安全等级。 |
最大 limit | 设置 API 查询的最大 limit 数量。 |
描述 | 输入 API 的描述信息,方便后续维护管理。 |
标签 | 您可以对 API 进行添加自定义标签,用于标识某一类 API,以便快速搜索过滤,操作即时生效,无需重新上线任务。
标签添加操作详见标签管理。 |
在 API 配置界面,单击右侧导航栏中的版本信息按钮,进入 API 历史版本信息界面,展现了当前 API 的版本更新记录情况。
展示当前 API 的版本信息列表,您可单击每个版本号,查看每个版本 API 的配置详情。
在版本列表中,您也可查看 API 每个版本的发布情况与发布环境,同时可下线或删除某个版本,更多操作如下:
操作项 | 说明 |
---|---|
下线 | 当 API 已发布时,单击操作列中的下线按钮,进入下线 API 界面:
|
删除 | 当 API 处于未发布状态时,单击操作列中的删除按钮,便可将当前未发布的 API 进行删除操作。 |
发布 | API 信息配置完成,保存操作后,您也可在版本信息界面,单击操作列中的发布按钮,将 API 草稿版本进行发布。 |
版本对比 | 当 API 有比较多的历史版本记录时,您可同时勾选两个版本的 API,单击版本对比按钮,进行不同版本 API 的对比操作,您可在版本对比中,查看不同版本中不同的配置参数情况。 |
数据服务 API,需要小范围灰度某个版本,其余版本线上不受影响时,此时您可开启 API 灰度策略,灰度某个 API 版本。
单击 API 名称,进入 API 开发配置页面 > 版本信息界面。
在版本信息界面右侧,单击新建策略按钮,进入策略配置界面:
注意
若为线上环境配置灰度流量,并开启灰度策略,会影响线上调用 API,您需谨慎操作开启。
配置项 | 说明 |
---|---|
基础信息 | |
名称 | 输入灰度策略的名称信息。 |
描述 | 填写灰度策略描述信息,方便后续维护和查看。 |
策略配置 | |
灰度版本 | 下拉选择需要切流的版本。 |
灰度状态 | 选择当前策略的开启状态,您可根据实际情况,在合适的时机进行开启或关闭操作。 |
灰度策略 | 目前默认只支持流量灰度的策略。 |
灰度比例 | 设置灰度的 API 版本,需要切流的比例大小。 |
灰度策略参数配置完成后,单击确定按钮,完成灰度策略新建。
在 API 配置界面,单击右侧导航栏中的 API 详情按钮,进入 API 详情信息界面,展现了当前 API 的详细配置信息,包含调用信息说明、授权管理、报警配置、调用监控等。API 详情界面说明及操作详见 API 运维。