
# 对接华为云ROMA Connect
#### 背景信息
应用与数据集成平台（ROMA Connect）是一个全栈式的服务平台，聚焦应用和数据连接，提供数据（跨机房、跨数据中心、跨云的数据）、服务API（将数据和后端服务以API形式开放）、消息（为企业提供跨网络访问的安全、标准化消息通道）和设备信息（使用MQTT标准协议连接设备，帮助企业快速、简单地实现设备云端管理）集成能力，帮助企业快速联接云上云下，消除数字鸿沟，实现数字化转型。
AstroZero通过连接器和ROMA Connect对接后，可调用ROMA Connect的API，从而集成服务。
AstroZero提供了默认对接的ROMA Connect服务器，也支持对接通过华为云开通的自有ROMA Connect实例控制台，即参考[配置ROMA Connect](https://support.huaweicloud.com/usermanual-astrozero/astrozero_06_0032.html)中操作，在AstroZero管理中心配置对接信息，并请从华为云控制台登录自有ROMA Connect实例。
#### 前提条件
本章节以AstroZero对接自有ROMA Connect为例进行说明，默认对接的ROMA Connect服务器配置类似。
- 已在ROMA Connect平台上完成应用创建（创建时，应用的"Key"字符长度必须小于60，否则后续向AstroZero同步时会失败）、函数API创建、API分组创建、API创建、调试、发布和授权操作。关于ROMA Connect的具体操作，请参见[使用ROMA Connect集成服务](https://support.huaweicloud.com/qs-roma/roma_02_0003.html)与[配置API授权](https://support.huaweicloud.com/usermanual-roma/roma_03_2110.html)。
  如[图1]所示，已在ROMA Connect平台创建"人员管理"应用。如[图2]所示，已发布"获取人员信息"API，且该API已授权给"人员管理"应用。
  图1集成应用   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960125449.png "点击放大")
  图2授权API   
  ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960285361.png "点击放大") 
- 已在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。
1. 查看ROMA Connect侧创建的应用Key值是否带有前缀，如果带有前缀，则需要在AstroZero新建系统参数。 
   1. 在ROMA Connect实例控制台左侧的导航栏中，选择"集成应用"，单击应用名，即[图4]中应用名"人员管理"，进入概览页面查看Key值。
      - 如果Key值带有前缀，例如为"test__com.appcube.user"，带有前缀"test__"，则需要执行[1.b]。
      
      - 如果Key值不带前缀，例如为"com.appcube.user"，则执行[2]。
       
   
   2. 新建系统参数。
      1. 登录AstroZero经典版环境配置。
      
      2. 在左侧导航栏中，选择"系统管理 \> 系统参数"。
      
      3. 单击"新建"，创建系统参数"roma_app_prefix"，配置参数值为此前缀取值"test__"，AstroZero在后续同步API和调用API时会主动拼上此前缀。
         图3创建系统参数   
         ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046196.png "点击放大") 
       
   
   
   
   
2. 在连接器中同步ROMA Connect应用和API，并查看具体API。
   
   1. 参考[创建连接器入口](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0653.html#astrozero_05_0653__section54416265268)中操作，进入创建连接器页面。
   
   2. 在左侧列表中，选择"HTTP \> ROMA连接器"。
   
   3. 单击"同步应用"，将ROMA Connect平台上注册的应用直接同步到平台。
      图4单击"同步应用"   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932886784.png "点击放大")
      同步后，可在ROMA Connect连接器列表中，查看到"人员管理"应用。
      图5查看人员管理应用   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932886780.png "点击放大")
      ![](https://support.huaweicloud.com/usermanual-astrozero/public_sys-resources/note_3.0-zh-cn.png)
      ROMA Connect连接器中的应用，可以由ROMA Connect同步而来，也可以通过安装包导入。通过安装包导入的ROMA Connect连接器中的应用，在ROMA Connect平台并不存在。需要将ROMA Connect资产导入到ROMA Connect平台，用户才可正常使用ROMA Connect连接器。
      
   
   4. 单击"人员管理"对应的连接器名称，在右侧"API接口"页签单击"同步API"，将ROMA Connect平台上发布并授权的API直接同步到平台。
      同步后，在"API接口"页签中，可查看到"获取人员信息"API。
      图6获取人员信息API   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960285313.png "点击放大") 
   
   5. 单击API名称，可查看API具体信息，包括基本信息、消息头入参、输入和输出参数。
      ![](https://support.huaweicloud.com/usermanual-astrozero/public_sys-resources/note_3.0-zh-cn.png)
      如果ROMA Connect平台上该API有更新，请在ROMA Connect平台重新发布并授权API，然后在平台重新同步应用和API。
      图7查看API具体信息   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932886844.png "点击放大")
      API参数说明，如[表1]所示。
       表1API参数说明 
      | 参数类别  | 参数名称        | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
      |:---|:---|:---|
      | 消息头入参 | X-HW-APPKEY | X-HW-APPKEY：ROMA应用的请求密钥，用于私钥认证。 1. 在ROMA Connect实例控制台的左侧导航栏中，选择"集成应用"。  2. 单击应用名，即[2.c]中应用名"人员管理"，进入概览页面。  3. 单击Secret右侧的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932886772.png)，即可查看Secret信息。   |
      | 消息头入参 | X-HW-ID     | ROMA应用的Key值。 1. 在ROMA Connect实例控制台的左侧导航栏中，选择"集成应用"。  2. 单击应用名，即[2.c]中应用名"人员管理"，进入概览页面。  3. 在概览页，查看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。
      图8ROMA Connect的API管理侧编辑API   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046248.png "点击放大")
      图9添加入参   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046204.png "点击放大") 
   
   
   
   
#### 在服务编排中调用ROMA Connect的API
1. 参考[如何开发服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_0601.html)中操作，创建一个服务编排。
2. 在服务编排设计页面左侧，选择"连接器 \> ROMA"，拖拽"人员管理"（连接器名称为ROMA应用名称）图元至画布中。 
   图10拖拽连接器图元到画布中   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046124.png "点击放大")
   
   
3. 参考[表1]，设置变量和服务编排的输入输出参数。
   
   1. 选中开始图元，在服务编排设计页面右侧，选择![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960285317.png)。
   
   2. 在私有结构体页面，单击"新增"。
      创建输出参数结构体类型变量前，首先需要创建私有结构体类型。
      图11添加私有结构体类型   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960125557.png "点击放大") 
   
   3. 新增一个空的私有结构体"retJson"，不用设置结构体成员。
      图12新建私有结构体   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932886756.png "点击放大") 
   
   4. 在服务编排设计页面右侧，选择![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960125517.png)。
   
   5. 在全局上下文页面，单击"对象变量"后的加号。
      图13添加对象变量   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960125533.png "点击放大") 
   
   6. 选择"私有结构体"，设置页面参数，名称为"retJson"，结构体选择已创建的私有结构体"retJson"。
      图14配置私有结构体变量   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932886776.png "点击放大")
      
      
   
   7. 参照上述操作，新增"out"私有结构体变量，结构体选择创建的私有结构体"out"。
      图15对象out对象变量   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932886852.png "点击放大") 
   
   8. 在服务编排设计页面右侧，选择![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960285357.png)。
   
   9. 在全局上下文页面，单击"变量"后的加号，新增[图17]中两个变量。
      图16创建变量   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960125525.png "点击放大")
      图17添加两个变量   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960285349.png "点击放大") 
   
   10. 单击工作区域开始图元或空白区域，在服务编排设计页面右侧，选择![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960285337.png)，设置该服务编排的入参和出参。
       图18设置服务编排的入参和出参   
       ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960285353.png "点击放大") 
   
   11. 参考[配置系统参数](https://support.huaweicloud.com/usermanual-astrozero/astrozero_06_0022.html)中操作，新建系统参数"appkey"，值填写为ROMA应用的请求密钥。
       由于"X-HW-APPKEY"为ROMA应用的请求密钥，可能发生变化，您可以新建系统参数，加密存储此入参，并通过公式引用。当请求密钥变化时，修改系统参数即可。
       图19新建系统参数appkey   
       ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046244.png) 
   
   12. 在服务编排设计页面右侧，选择![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001932886732.png)。
   
   13. 在全局上下文页面，单击"公式"后的加号，新建公式变量"appkey"，表达式为"SYSPARAMETER("appkey")"。
       图20新建公式变量   
       ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001933046184.png "点击放大") 
   
   
   
   
4. 在"连接器"页面进行配置，"动作"选择具体调用的API，例如"获取人员信息"，根据[表1]配置入参和出参，并连接图元。
   
   图21设置动作连接图元   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960125501.png "点击放大")
   - 动作：具体调用的API，API选项由[2.d]同步而来。
   
   - 输入参数：调用API的输入参数。
   
   - 输出参数：调用API的输出参数。
   
   
   
   
5. 单击服务编排页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960285345.png)，保存服务编排。
6. 保存成功后，单击编辑器页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001960285245.png)，执行服务编排。
7. 设置如下输入参数，单击"运行"。 
   输入参数样例如下：
   ```
   {
       "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"
         }
       }
     }
   }
   ```
   
   
 
