基于已开发好的API,将多个API通过服务编排的方式创建API。本文为您介绍如何通过服务编排的方式创建API。
步骤一:选择生成API的方式
在Dataphin首页,选择服务 > 开发。
选择服务项目,再单击左侧导航栏的API,在API页面单击+新建API按钮。
在API创建方式选择对话框中,选择组合API,单击确定。
步骤二:配置API的参数信息
在新建API页面配置参数。
参数
描述
API基础信息配置
API名称
API名称命名规则如下:
只能包含汉字、字母、数字或下划线(_)。
长度为4~42个字符。
以字母开头。
全局唯一。
请求方式
API请求方式仅支持GET:
GET:请求服务器获取指定的某个资源。
API分组
选择当前项目下配置的API分组,如需创建,请参见创建服务分组。
描述
填写对API的简单描述。128个字符以内。
协议
仅支持HTTP。HTTP即超文本传输协议(HyperText Transfer Protocol),是应用最广泛的网络协议。
若网关配置为阿里公有云API网关(专享实例或共享实例)时,支持勾选HTTPS协议,请确保独立域名的SSL证书有效,避免无法正常调用。请通过选择平台管理网络配置,在网络配置页面,进行SSL证书配置。
超时时间
超时时间用于监控API调用的时长。调用API过程中如果超过了设定的超时时间,则调用API时会报错,便于您及时发现并处理调用API的异常情况。异常情况查看,详情请参见查看及管理运维监控API。
缓存设置
支持开启或关闭。开启后需配置缓存时长。默认300秒,支持设置60~1000000之间的正整数。
版本号
请填写API的版本号,每份配置信息会有所属版本号,以便和上个版本信息对比。64字符以内。该API下版本号唯一。
返回类型
默认JSON。
API服务编排
API参考
可查看子API的参数信息,便于编辑服务编排脚本。可以在API参考弹框点击API测试,对引用的子API进行测试。
按照下图操作指引,可快捷为脚本添加返回参数。
说明组合API支持引用的条件为:
需要申请该API的个人使用权限才能应用该API,详情请参见管理API权限。
该API为非API组合类型(直连API、逻辑表API、注册API)。
API的请求方式为GET且已发布。
编排脚本
在编辑框中根据系统提示信息编辑脚本,编写脚本内容后,需点击参数解析按钮,进行语法校验、解析引用子API的请求参数;若修改了脚本,需重新解析。
脚本试运行
单击SQL试运行,在请求参数输入对话框中,输入试运行的值,然后单击确认。您可以在运行日志查看SQL试运行实际执行的SQL语句。
语法说明
支持AviatorScript 5.0版本,编写脚本时请参考5.0版本的编程指南。
AviatorScript仅支持以##开头进行单行注释,如果需要对多行代码进行注释,可连续使用##对相应行代码进行注释。
AviatorScript中变量定义时需要给参数进行赋值。
a = 1;
let p = 2;
编写业务处理逻辑引用子API时,通过
API_APIID.返回参数名
指定子API的返回参数;引用组合API的请求参数需要用${参数名}
定义,且组合API的请求参数名不能以API_
开头。c1 = ${API_APIID.c1};
c2 = ${API_APIID.c2};
c3 = c1 + c2 + ${p3};
定义组合API返回的字段并以return返回,其中
f1,f2
为返回字段名c1,c2
为返回字段的取值变量。let result = seq.map("f1", c1, "f2", c2);
return result;
脚本说明
场景1:调用多个API,并将多个API的结果统一返回:
## 根据业务需求,编写计算脚本,通过“API_APIID.返回参数名”指定子API的返回参数 c1 =${API_00001.c1} c2 = ${API_00002.c1} let result = seq.map("f1", c1, "f2", c2); return result;
场景2:根据判断,调用不同的API:
## 编写处理逻辑:根据条件判断,调用不同API,获取不同的返回结果; c1=''; if (${p3} == "linlin"){ ## 调用API_00001返回的number值作为组合API的返回参数; c1=${ API_00001.number}; } else { ## 调用API_00002返回的number值作为组合API的返回参数; c1= ${API_00002.number}; } let result = seq.map("f1", c1); return result;
场景3:调用多个API,并对API返回的值做计算处理:
##编写处理逻辑:将多个API返回值进行求和、求均值处理; ## API_00001与API_00002返回的number求和,结果作为组合API的返回参数; total = ${API_00001.number} + ${API_00002.number}; ## API_00001与API_00002返回的number求均值,结果作为组合API的返回参数; average = (${API_00001.number} + ${API_00002.number}) / 2; let result = seq.map("f1", total,"f2",average); return result;
请求参数
参数名
对外开放的参数,即用户访问API时直接使用的参数。不支持以API_开头,128个字符以内。
参数类型
支持选择参数类型为Array(int)、Array(string)、DOUBLE、FlOAT、STRING、DATE(yyyy-MM-dd HH:mm:ss)、BOOLEAN、INT、LONG、SHORT、BIGDECIMAL,需选择参数名对应的绑定字段的参数类型。
示例
填写请求参数值的示例,便于开发者理解。
描述
填写对请求参数的简单描述。
是否必填
必填参数,若在调用API时不传参数值,则API调用失败。
请求参数映射关系
解析脚本中引用的子API,返回脚本中引用的子API以及请求参数。在调用子API时,根据映射关系,将组合API的入参值传给子API的请求参数进行调用。如果子API请求参数为必填时,必须配置映射。
请求参数映射关系
配置子API请求参数与组合API请求参数的映射关系。
返回参数
参数名
返回参数名必须与脚本中定义的返回字段名相同,否则取法获取对应的字段返回值。
参数类型
返回参数类型包括DOUBLE、FlOAT、STRING、DATE(yyyy-MM-dd HH:mm:ss)、BOOLEAN、INT、LONG、SHORT、BIGDECIMAL、Array(int)、Array(string),需选择参数名对应的绑定字段的参数类型。
示例
填写返回参数值的示例,便于开发者理解。支持输入不超过50个字符。
描述
填写对返回参数的简单描述。支持输入不超过100个字符。
单击提交,即可完成API的生成。