通过服务编排的方式创建API

基于已开发好的API,将多个API通过服务编排的方式创建API。本文为您介绍如何通过服务编排的方式创建API。

步骤一:选择生成API的方式

  1. 在Dataphin首页,选择服务 > 开发

  2. 选择服务项目,再单击左侧导航栏的API,在API页面单击+新建API按钮。

  3. API创建方式选择对话框中,选择组合API,单击确定

步骤二:配置API的参数信息

  1. 新建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进行测试。

    按照下图操作指引,可快捷为脚本添加返回参数。

    image.png

    说明

    组合API支持引用的条件为:

    • 需要申请该API的个人使用权限才能应用该API,详情请参见管理API权限

    • 该API为非API组合类型(直连API、逻辑表API、注册API)。

    • API的请求方式为GET且已发布。

    编排脚本

    在编辑框中根据系统提示信息编辑脚本,编写脚本内容后,需点击参数解析按钮,进行语法校验、解析引用子API的请求参数;若修改了脚本,需重新解析。

    脚本试运行

    单击SQL试运行,在请求参数输入对话框中,输入试运行的值,然后单击确认。您可以在运行日志查看SQL试运行实际执行的SQL语句。

    image.png

    语法说明

    • 支持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)DOUBLEFlOATSTRINGDATE(yyyy-MM-dd HH:mm:ss)BOOLEANINTLONGSHORTBIGDECIMAL,需选择参数名对应的绑定字段的参数类型。

    示例

    填写请求参数值的示例,便于开发者理解。

    描述

    填写对请求参数的简单描述。

    是否必填

    必填参数,若在调用API时不传参数值,则API调用失败。

    请求参数映射关系

    解析脚本中引用的子API,返回脚本中引用的子API以及请求参数。在调用子API时,根据映射关系,将组合API的入参值传给子API的请求参数进行调用。如果子API请求参数为必填时,必须配置映射。

    请求参数映射关系

    配置子API请求参数与组合API请求参数的映射关系。

    返回参数

    参数名

    返回参数名必须与脚本中定义的返回字段名相同,否则取法获取对应的字段返回值。

    参数类型

    返回参数类型包括DOUBLEFlOATSTRINGDATE(yyyy-MM-dd HH:mm:ss)BOOLEANINTLONGSHORTBIGDECIMALArray(int)Array(string),需选择参数名对应的绑定字段的参数类型。

    示例

    填写返回参数值的示例,便于开发者理解。支持输入不超过50个字符。

    描述

    填写对返回参数的简单描述。支持输入不超过100个字符。

  2. 单击提交,即可完成API的生成。

后续步骤

  • 生成API后,需要对API进行测试并发布至数据服务市场,便于后续应用可以调用API。具体操作,请参见测试与发布API

  • 若需要对API进行删除、版本管理、转让负责人等操作,请参见查看及管理API