更新时间:2023-09-27 GMT+08:00

获取Rest Client节点返回值教程

Rest Client节点可以执行华为云内的RESTful请求。

本教程主要介绍如何获取Rest Client的返回值,包含以下两个使用场景举例。

通过“响应消息体解析为传递参数定义”获取返回值

图1所示,第一个Rest Client调用了MRS服务查询集群列表的API,图2为API返回值的JSON消息体。

  • 使用场景:需要获取集群列表中第一个集群的cluster Id,然后作为参数传递给后面的节点使用。
  • 关键配置:在第一个Rest Client的“响应消息体解析为传递参数定义”配置中,配置clusterId=clusters[0].clusterId,后续的Rest Client节点就可以用${clusterId}的方式引用到集群列表中的第一个集群的cluster Id。

    响应消息体解析为参数传递定义时,传递的参数名(例如clusterId)在该作业的所有节点参数中需要保持唯一性,避免和其他参数同名。

图1 Rest Clien作业样例1

图2 JSON消息体

通过EL表达式获取返回值

Rest Client算子可与EL表达式相配合,根据具体的场景选择不同的EL表达式来实现更丰富的用法。您可以参考本教程,根据您的实际业务需要,开发您自己的作业。EL表达式用法可参考EL表达式

图3所示,Rest Client调用了MRS服务查询集群列表的API,然后执行Kafka Client发送消息。

  • 使用场景:Kafka Client发送字符串消息,消息内容为集群列表中第一个集群的cluster Id。
  • 关键配置:在Kafka Client中使用如下EL表达式获取Rest API返回消息体中的特定字段:#{JSONUtil.toString(JSONUtil.path(Job.getNodeOutput("Rest_Client_4901"),"clusters[0].clusterId"))}
图3 Rest Client作业样例2