对接华为云ROMA Connect
背景信息
应用与数据集成平台(ROMA Connect)是一个全栈式的服务平台,聚焦应用和数据连接,提供数据(跨机房、跨数据中心、跨云的数据)、服务API(将数据和后端服务以API形式开放)、消息(为企业提供跨网络访问的安全、标准化消息通道)和设备信息(使用MQTT标准协议连接设备,帮助企业快速、简单地实现设备云端管理)集成能力,帮助企业快速联接云上云下,消除数字鸿沟,实现数字化转型。
AstroZero通过连接器和ROMA Connect对接后,可调用ROMA Connect的API,从而集成服务。
AstroZero提供了默认对接的ROMA Connect服务器,也支持对接通过华为云开通的自有ROMA Connect实例控制台,即参考配置ROMA Connect中操作,在AstroZero管理中心配置对接信息,并请从华为云控制台登录自有ROMA Connect实例。
前提条件
本章节以AstroZero对接自有ROMA Connect为例进行说明,默认对接的ROMA Connect服务器配置类似。
- 已在ROMA Connect平台上完成应用创建(创建时,应用的“Key”字符长度必须小于60,否则后续向AstroZero同步时会失败)、函数API创建、API分组创建、API创建、调试、发布和授权操作。关于ROMA Connect的具体操作,请参见使用ROMA Connect集成服务与配置API授权。
如图1所示,已在ROMA Connect平台创建“人员管理”应用。如图2所示,已发布“获取人员信息”API,且该API已授权给“人员管理”应用。
- 已在ROMA Connect平台上,设置“app_secret”和“app_route”值为“on”。
修改方法:在ROMA Connect实例控制台的“实例信息”页面,选择“配置参数”。修改“app_secret”和“app_route”的“参数运行值”为“on”。
在AstroZero上调用ROMA Connect的API
在ROMA Connect上创建的应用和发布的API,可以直接同步到AstroZero。通过AstroZero的ROMA Connect类型连接器,可在服务编排或脚本中调用ROMA Connect的API。
- 查看ROMA Connect侧创建的应用Key值是否带有前缀,如果带有前缀,则需要在AstroZero新建系统参数。
- 在ROMA Connect实例控制台左侧的导航栏中,选择“集成应用”,单击应用名,即图4中应用名“人员管理”,进入概览页面查看Key值。
- 新建系统参数。
- 登录AstroZero经典版环境配置。
- 在左侧导航栏中,选择“系统管理 > 系统参数”。
- 单击“新建”,创建系统参数“roma_app_prefix”,配置参数值为此前缀取值“test__”,AstroZero在后续同步API和调用API时会主动拼上此前缀。
图3 创建系统参数
- 在连接器中同步ROMA Connect应用和API,并查看具体API。
- 参考创建连接器入口中操作,进入创建连接器页面。
- 在左侧列表中,选择“HTTP > ROMA连接器”。
- 单击“同步应用”,将ROMA Connect平台上注册的应用直接同步到平台。
同步后,可在ROMA Connect连接器列表中,查看到“人员管理”应用。
图5 查看人员管理应用
ROMA Connect连接器中的应用,可以由ROMA Connect同步而来,也可以通过安装包导入。通过安装包导入的ROMA Connect连接器中的应用,在ROMA Connect平台并不存在。需要将ROMA Connect资产导入到ROMA Connect平台,用户才可正常使用ROMA Connect连接器。
- 单击“人员管理”对应的连接器名称,在右侧“API接口”页签单击“同步API”,将ROMA Connect平台上发布并授权的API直接同步到平台。
同步后,在“API接口”页签中,可查看到“获取人员信息”API。
图6 获取人员信息API
- 单击API名称,可查看API具体信息,包括基本信息、消息头入参、输入和输出参数。
如果ROMA Connect平台上该API有更新,请在ROMA Connect平台重新发布并授权API,然后在平台重新同步应用和API。
图7 查看API具体信息
API参数说明,如表1所示。
表1 API参数说明 参数类别
参数名称
说明
消息头入参
X-HW-APPKEY
X-HW-APPKEY:ROMA应用的请求密钥,用于私钥认证。
- 登录ROMA Connect实例控制台。
- 在左侧导航栏中,选择“集成应用”。
- 单击应用名,即2.c中应用名“人员管理”,进入概览页面。
- 单击Secret右侧的,即可查看Secret信息。
X-HW-ID
ROMA应用的Key值。
- 登录ROMA Connect实例控制台。
- 在左侧导航栏中,选择“集成应用”。
- 单击应用名,即2.c中应用名“人员管理”,进入概览页面。
- 在概览页,查看Key值。
Accept
接收类型,默认值“application/json”。
输入参数
userID
用户ID,为自定义输入参数。
输出参数
retCode
结果码。
retJSON
接收JSON格式化的ROMA Connect返回数据。
$out
接收非格式化的ROMA Connect返回数据。
须知:对于POST请求类型,输入参数会有“$body”,通过此入参传递body结构体。可使用出参“$out”接收非格式化的ROMA Connect返回数据,$out为结构体类型。
如果业务需要在API中,增加其他消息头入参或输入参数,需要在ROMA Connect的API管理侧重新编辑API,定义好入参,重新发布并授权API,然后在AstroZero重新同步该API。
图8 ROMA Connect的API管理侧编辑API
图9 添加入参
在服务编排中调用ROMA Connect的API
- 参考如何开发服务编排中操作,创建一个服务编排。
- 在服务编排设计页面左侧,选择“连接器 > ROMA”,拖拽“人员管理”(连接器名称为ROMA应用名称)图元至画布中。
图10 拖拽连接器图元到画布中
- 参考表1,设置变量和服务编排的输入输出参数。
- 选中开始图元,在服务编排设计页面右侧,选择。
- 在私有结构体页面,单击“新增”。
- 新增一个空的私有结构体“retJson”,不用设置结构体成员。
图12 新建私有结构体
- 在服务编排设计页面右侧,选择。
- 在全局上下文页面,单击“对象变量”后的加号。
图13 添加对象变量
- 选择“私有结构体”,设置页面参数,名称为“retJson”,结构体选择已创建的私有结构体“retJson”。
图14 配置私有结构体变量
- 参照上述操作,新增“out”私有结构体变量,结构体选择创建的私有结构体“out”。
图15 对象out对象变量
- 在服务编排设计页面右侧,选择。
- 在全局上下文页面,单击“变量”后的加号,新增图17中两个变量。
图16 创建变量
- 单击工作区域开始图元或空白区域,在服务编排设计页面右侧,选择,设置该服务编排的入参和出参。
图18 设置服务编排的入参和出参
- 参考配置系统参数中操作,新建系统参数“appkey”,值填写为ROMA应用的请求密钥。
由于“X-HW-APPKEY”为ROMA应用的请求密钥,可能发生变化,您可以新建系统参数,加密存储此入参,并通过公式引用。当请求密钥变化时,修改系统参数即可。
图19 新建系统参数appkey
- 在服务编排设计页面右侧,选择。
- 在全局上下文页面,单击“公式”后的加号,新建公式变量“appkey”,表达式为“SYSPARAMETER("appkey")”。
图20 新建公式变量
- 在“连接器”页面进行配置,“动作”选择具体调用的API,例如“获取人员信息”,根据表1配置入参和出参,并连接图元。
图21 设置动作连接图元
- 动作:具体调用的API,API选项由2.d同步而来。
- 输入参数:调用API的输入参数。
- 输出参数:调用API的输出参数。
- 单击服务编排页面上方的,保存服务编排。
- 保存成功后,单击编辑器页面上方的,执行服务编排。
- 设置如下输入参数,单击“运行”。
输入参数样例如下:
{ "userid": "001" }
若显示如下信息,表示成功调用ROMA Connect的API。
{ "interviewId": "002N000000cOeh5XCDrc", "outputs": { "out": { "retCode": "0", "retJSON": { "result": { "employ_name": "zhangsan", "employ_no": "00xxxxxx" } } }, "retCode": "0", "retJson": { "result": { "employ_name": "zhangsan", "employ_no": "00xxxxxx" } } } }