在 REST stage 中使用示例 DataStage
在本文件中,您可找到四个使用 REST stage 的示例 DataStage® :
下面提供几个示例,帮助您快速构建和配置API调用。 这些示例包括如何进行分页调用、使用变量、链式请求以及获取认证令牌的演示。 要使用示例,请点击 REST stage 编辑器标题栏中的 “导入示例 ”,然后选择一个示例。 导入后,根据具体示例需求设置变量值并添加输出列以处理数据。 您可以在那里找到以下示例:
- 获取项目
- 获取 DataStage 流
- 按项目标识获取 DataStage 流
- 按项目名称获取 DataStage 流
- 按项目名称获取 DataStage 数据资产
- 按项目名称获取 DataStage 作业
示例1:执行单次呼叫
通过在 中使用 REST stage 和 DataStage Peek stage 进行单次调用:
- 创建或打开项目。 将 REST stage 和 Peek stage 拖动到画布上。 通过将 REST stage 作为源文件,将两个阶段连接起来。
- 双击 REST stage。 在 “阶段 ”选项卡中转到 “请求 ”选项卡,将端点方法设置为 GET ,并将 URL 地址粘贴到框架中您选择的API处。
- 转到 “请求 ”下的 “设置 ”选项卡,确保启用SSL并接受自签名证书。
- 转到 “输出 ”选项卡。 点击两次 “添加列”。
- 将第一列名称更改为
code。 在 “推导 ”下,点击 “编辑表达式 ”图标以打开表达式构建器。 在内置变量下找到并双击code。 你会看到以下表达式:RESPONSE_BODY["code"]点击应用并返回。 将数据类型更改为
VARCHAR. - 将第二列名称更改为
json。 转到表达式构建器,在函数查找下,双击toJson(object)。 你会看到以下表达式:JSON.toJson(%object%)选择
%object%,在内置变量下找到并双击RESPONSE_BODY。 点击应用并返回。 - 点击编译 ,然后点击运行。
示例 2:调用下一页链接(分页)
通过 REST stage 和 Peek stage 调用Next-link: DataStage
- 创建或打开项目。 将 REST stage 和 Peek stage 拖动到画布上。 通过将 REST stage 作为源文件,将两个阶段连接起来。
- 双击 REST stage。 在 “阶段 ”选项卡中转到 “请求 ”选项卡,将端点方法设置为 GET ,并将 URL 地址粘贴到框架中您选择的API处。
- 转到 “请求 ”下的 “设置 ”选项卡,确保启用SSL并接受自签名证书。
- 转到 “控制 ”选项卡并启用分页功能。 勾选 “使用表达式 ”选项,然后点击图标按钮以打开表达式构建器。 在分页模板中双击 “下一页”链接。 您应该看到以下表达式:
ITERATION == 1 ? %first_url% : %next_url%选择%first_url%并粘贴 URL。 选择%next_url%并用 替换RESPONSE_BODY.next它。 你应该以以下表达式结束:ITERATION == 1 ? 'https://api.example.com/items' : RESPONSE_BODY.next点击应用并返回。 在分页条件中提供以下表达式:RESPONSE_BODY.next != null - 转到 “输出 ”选项卡。 点击两次 “添加列”。
- 将第一列名称更改为
code。 在 “推导 ”下,点击 “编辑表达式 ”图标以打开表达式构建器。 在内置变量下找到并双击code。 你会看到以下表达式:RESPONSE_BODY["code"]点击应用并返回。 将数据类型更改为
VARCHAR. - 将第二列名称更改为
json。 转到表达式构建器,在函数查找下,双击toJson(object)。 你会看到以下表达式:JSON.toJson(%object%)选择
%object%,在内置变量下找到并双击RESPONSE_BODY。 点击应用并返回。 - 点击编译 ,然后点击运行。
示例 3:调用偏移量(分页)
通过调用 REST stage 和 DataStagePeek stage 进行抵消:
- 创建或打开项目。 将 REST stage 和 Peek stage 拖动到画布上。 通过将 REST stage 作为源文件,将两个阶段连接起来。
- 双击 REST stage。 在 “阶段 ”选项卡中转到 “请求 ”选项卡,将端点方法设置为 GET ,并将 URL 地址粘贴到框架中您选择的API处。
- 转到 “请求 ”下的 “设置 ”选项卡,确保启用SSL并接受自签名证书。
- 转到 “控制 ”选项卡并启用分页功能。 勾选 “使用表达式 ”选项,然后点击图标按钮以打开表达式构建器。 在分页模板中双击偏移量。 您应该看到以下表达式:
'%url%?limit=' + %limit% + '&offset=' + (ITERATION - 1) * %limit%选择'%url%?limit='并粘贴 API URL。 将%limit%替换为任意值。 你应该以以下表达式结束:'https://api.example.com/items' + 100 + '&offset=' + (ITERATION - 1) * 100点击应用并返回。 在分页条件中提供以下表达式:RESPONSE_BODY['resources'].size() == 100 - 转到 “输出 ”选项卡。 点击两次 “添加列”。
- 将第一列名称更改为
code。 在 “推导 ”下,点击 “编辑表达式 ”图标以打开表达式构建器。 在内置变量下找到并双击code。 你会看到以下表达式:RESPONSE_BODY["code"]点击应用并返回。 将数据类型更改为
VARCHAR. - 将第二列名称更改为
json。 转到表达式构建器,在函数查找下,双击toJson(object)。 你会看到以下表达式:JSON.toJson(%object%)选择
%object%,在内置变量下找到并双击RESPONSE_BODY。 点击应用并返回。 - 点击编译 ,然后点击运行。
示例 4:向多个请求发起调用
您可以使用 REST stage 向支持参数的多请求进行 DataStage API 调用。 此示例由三个请求构建而成:
- 创建或打开项目。 将 REST stage 和 Peek stage 拖动到画布上。 通过将 REST stage 作为源文件,将两个阶段连接起来。
- 从主项目菜单中点击 “添加参数 ”并选择“创建参数 ”。 在此示例中,您应为所选的 URL API添加以下参数,并将其设为默认值:
表 1. 已用参数 名称 类型 缺省值(可选) 控制台网址 字符串 https://console.com 平台网址 字符串 https://platform.com 用户名 字符串 cpdadmin 密码 加密 password123 项目限制 整数 30 点击返回画布。
- 双击 REST stage。 在 “阶段 ”选项卡中转到 “请求 ”选项卡,将端点方法设置为 POST ,并启用 “使用表达式 ”选项。 打开表达式构建器,在其中输入:
console_url + '/idprovider/v1/auth/identitytoken' - 转到 “请求 ”选项卡 > “自定义标头 ”,然后点击两次 “添加标头 ”。 使用以下参数:
表 2. 标头 键 缺省值 内容类型 x-www-表单-URL编码 字符集 UTF-8 切换到正文选项卡并选择raw选项。 选择application/x-www-form-urlencoded作为内容类型,Text作为源,并在文本选项卡中选择使用表达式选项。 点击该按钮即可打开表达式构建器。 输入以下表达式:'grant-type=password&username-${username}&password-${password}&scope=openid'点击应用并返回。
- 转到 “请求 ”下的 “设置 ”选项卡,确保启用SSL并接受自签名证书。
- 转到 “请求 ”下的 “控制 ”选项卡,确保禁用 “每次迭代写入输出记录 ”选项。
- 点击加号图标添加另一个请求。 将端点方法设置为GET ,并启用使用表达式选项。 打开表达式构建器,在其中输入:
platform_url + '/v1/preauth/validateAuth' - 转到 “请求 ”选项卡 > “自定义标头 ”,然后点击两次 “添加标头 ”。 使用以下参数:
表 3. 标头 键 推导(使用表达式构建器) 用户名 点击参数 ,然后点击 username。目标代币 写出下列表达式: RESPONSE_BODIES[0]['access_token']点击应用并返回。
- 转到 “请求 ”下的 “设置 ”选项卡,确保启用SSL并接受自签名证书。
- 转到 “请求 ”下的 “控制 ”选项卡,确保禁用 “每次迭代写入输出记录 ”选项。
- 点击加号图标添加另一个请求。 将端点方法设置为GET ,并启用使用表达式选项。 打开表达式构建器,在其中输入:
platform_url + '/v2/projects?limit=' + project_limit + '&skip=' + (iteration - 1) * project_limit - 点击 “身份验证 ”选项卡,并将身份验证方法更改为 “承载令牌 ”。 打开表达式构建器,并输入以下语句:
RESPONSE_BODIES[1]['accessToken'] - 转到 “请求 ”选项卡 > “自定义标头 ”,然后点击 “添加标头 ”。 在密钥类型下
Content-Type,在派生类型下application/json。点击应用并返回。
- 转到 “请求 ”下的 “设置 ”选项卡,确保启用SSL并接受自签名证书。
- 转到 “请求 ”下的 “控制 ”选项卡,确保启用分页功能,并在表达式构建器中输入:
RESPONSE_BODIES[2]['resources'].size() == project_limit请确保在此请求中已启用 “每次迭代写入输出记录 ”选项。
- 转到 “输出 ”选项卡。 点击两次 “添加列”。
- 将第一列名称更改为
code。 在 “推导 ”下,点击 “编辑表达式 ”图标以打开表达式构建器。 在内置变量下找到并双击code。 你会看到以下表达式:RESPONSE_STATUS["code"]点击应用并返回。 将数据类型更改为
VARCHAR. - 将第二列名称更改为
json。 转到表达式构建器,在函数查找下,双击toJson(object)。 你会看到以下表达式:JSON.toJson(%object%)选择
%object%,在内置变量下找到并双击RESPONSE_BODIES。 点击应用并返回。 - 点击编译 ,然后点击运行。