
# 使用ROMA Connect的APIC开放API
#### 概述
ROMA Connect支持将API、数据源和自定义函数封装成标准的RESTful API，并对外开放。ROMA Connect为API提供了完整的生命周期管理和多层的安全防护管理。
本章节通过完成一个使用ROMA Connect开放API的配置样例，帮助您快速熟悉使用ROMA Connect APIC集成服务的过程。
使用ROMA Connect集成服务的步骤如下所示：
- [步骤一：创建API分组]
- [步骤二：创建API]
- [步骤三：调试API]
- [步骤四：发布API]
- [步骤五：调用API]
 
#### 准备工作
在开始操作前，您需要提前完成以下准备工作。
- 已准备ROMA Connect实例且已绑定弹性IP，且本地PC所在网络与弹性IP的网络互通。
- 账号至少具备ROMA Connect服务普通用户权限，其角色为ROMA CommonOperations。
- 已在本地PC上下载并安装[Postman](https://www.postman.com/downloads/)工具。
 
 #### 步骤一：创建API分组
每个开放的API都要归属到某一个API分组下，在创建API前应提前创建API分组。
1. 登录[ROMA Connect控制台](https://console.huaweicloud.com/roma3)，在左侧导航栏选择"资源管理"，在实例页面单击实例，进入实例控制台。
2. 创建集成应用。
   1. 在左侧的导航栏选择"集成应用"，单击页面右上角的"创建集成应用"。
   
   2. 在创建集成应用弹窗中填写集成应用的"名称"，然后单击"确认"。
    
3. 在左侧的导航栏选择"服务集成 APIC \> API分组"，在页面右上角单击"创建API分组 \> 直接创建"。
4. 在创建分组弹窗中填写API分组相关配置信息，然后单击"确定"，创建API分组。
   图1创建API分组   
   ![](https://support.huaweicloud.com/qs-roma/zh-cn_image_0000001488594554.png "点击放大")
   表1API分组配置 
   | 参数   | 配置说明                                                                            |
   |:---|:---|
   | 分组名称 | 填写API分组的名称，根据规划自定义。建议您按照一定的命名规则填写API分组名称，方便您快速识别和查找。                            |
   | 可见范围 | 选择API分组的可见范围，此处选择"集成应用"。                                                        |
   | 集成应用 | 选择[2]中创建的集成应用。若没有可用的集成应用，可单击右侧的"新建集成应用"，创建一个集成应用。 |
   | 描述   | 填写API分组的描述信息。                                                                   |
      
   
 
 #### 步骤二：创建API
在ROMA Connect中创建一个用于对外开放的API，并与后端服务进行关联。
1. 在实例控制台的左侧导航栏选择"服务集成 APIC \> API列表"，在页面右上角单击"创建API"。
2. 在创建API页面配置API的前端请求信息。
   图2前端请求信息   
   ![](https://support.huaweicloud.com/qs-roma/zh-cn_image_0000001488844174.png "点击放大")
   表2前端请求信息 
   | 参数          | 配置说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   |:---|:---|
   | API名称       | 填写API的名称，根据规划自定义。建议您按照一定的命名规则填写API名称，方便您快速识别和查找。                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 集成应用        | 选择[步骤一：创建API分组]中创建的集成应用。若没有可用的集成应用，可单击右侧的"新建集成应用"，创建一个集成应用。                                                                                                                                                                                                                                                                                                                                                                         |
   | 所属分组        | 选择[步骤一：创建API分组]中创建的API分组。                                                                                                                                                                                                                                                                                                                                                                                                           |
   | URL         | 配置API的URL。 - 请求方法：选择API的请求方法，此处选择"GET"。  - 请求协议：选择API使用的请求协议，此处选择使用"HTTPS"。  - 路径：填写API的请求路径，格式如：/getUserInfo/{userId}，此处以"/test"为例。                                                                       |
   | 匹配模式        | 选择API请求路径的匹配模式。为简单起见，此处选择"绝对匹配"。                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   | 标签          | 为简单起见，不设置标签。                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 描述          | 为简单起见，不填写描述信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 内容格式类型      | **仅当"请求方法"选择"POST"、"PUT"或"ANY"时可配置。** 是否指定API请求的内容格式类型，支持选择"application/json"、"application/xml"、"text/plain"和"multipart/form-data"。                                                                                                                                                                                                                                                                                                      |
   | 请求体内容描述     | **仅当"请求方法"选择"POST"、"PUT"、"PATCH"或"ANY"时可配置。** 填写API请求中请求体的描述信息，用于帮助API调用者理解如何正确封装API请求。                                                                                                                                                                                                                                                                                                                                                  |
   | 请求体Base64编码 | 对与FunctionGraph交互场景的Body体进行Base64编码，默认开启。**仅当满足以下任意条件时，Base64编码才生效：** - **自定义认证**  - **后端配置为FunctionGraph类型**  - **绑定断路器策略，且断路器后端降级策略** **FunctionGraph类型**   如需关闭Base64编码，仅当内容格式类型为"application/json"时才可关闭。 |
      
   
3. 配置API的安全配置信息。
   图3安全配置信息   
   ![](https://support.huaweicloud.com/qs-roma/zh-cn_image_0000001488842942.png "点击放大")
   表3安全配置信息 
   | 参数       | 配置说明                                                                                    |
   |:---|:---|
   | 类型       | 选择是否允许API上架到云市场，"公开"为表示允许。本配置样例中不涉及上架操作，此处保持默认设置即可。                                     |
   | 安全认证     | 选择API使用的安全认证方式。为简单起见，此处选择使用"无认证"。 Site实例中创建API不支持华为IAM认证。 |
   | 支持跨域CORS | 选择API是否支持跨域访问。本配置样例中不涉及跨域访问，此处不开启。                                                      |
      
   
4. 配置API的请求参数。为简单起见，此处不定义请求参数，直接单击"下一步"。
5. 选择"后端服务类型"，本配置样例中选择"Mock"类型后端服务，固定返回指定响应结果。
6. 配置API的后端配置信息。
   图4后端配置信息   
   ![](https://support.huaweicloud.com/qs-roma/zh-cn_image_0000001539619389.png "点击放大")
   表4后端配置信息 
   | 参数         | 配置说明                                                                |
   |:---|:---|
   | Mock自定义返回码 | 选择API响应的HTTP状态码，此处选择"200"。                                          |
   | Mock返回结果   | 填写API的响应结果，此处填写为"ROMA TEST!"，即用户在调用该API时，API固定返回"ROMA TEST!"作为响应结果。 |
   | 后端认证       | 选择是否使用自定义安全认证。为简单起见，此处不开启。                                          |
   | 添加header参数 | 自定义API响应的header参数。为简单起见，此处不设置。                                      |
      
   
7. 配置返回结果的响应示例，用于帮助API调用者了解API请求的响应信息。
   图5返回结果信息   
   ![](https://support.huaweicloud.com/qs-roma/zh-cn_image_0000001539491765.png "点击放大")
   表5返回结果信息 
   | 参数     | 配置说明                                          |
   |:---|:---|
   | 成功响应示例 | 根据后端服务的成功响应消息来设置响应示例。此处成功响应示例设置为"ROMA TEST!"。 |
   | 失败响应示例 | 调用API失败时系统返回的失败消息示例。为简单起见，此处不设置。              |
      
   
8. 完成后单击"完成"。API创建成功后，自动跳转到API运行页面，可查看API的详细信息。
 
 #### 步骤三：调试API
在完成API创建后，可以先对API进行调试，确保API的功能正常。
1. 在"API运行"页面中，在左侧选择[步骤二：创建API]创建的API，然后单击右上角的"调试"。
2. 因为该API未定义请求参数，在调试API页面中直接单击API URL右侧的"调试"，进行API调用测试。
3. 在页面下方可查看调用API发送的请求消息及响应消息。
   若调用成功，则会返回成功响应消息体。此处的成功响应消息应为"ROMA TEST!"。
   图6API调试   
   ![](https://support.huaweicloud.com/qs-roma/zh-cn_image_0000001490489424.png "点击放大") 
4. 调试完成后，单击"调试"按钮右侧的"![](https://support.huaweicloud.com/qs-roma/zh-cn_image_0000001490558436.png)"，返回API的详情信息页面。
 
 #### 步骤四：发布API
API功能测试正常后，需要把API发布到环境，API只有在发布到环境后，才能被外部用户调用。
1. 在"API运行"页面中，单击右上角的"发布"。
2. 在发布API弹窗中，"发布环境"选择"RELEASE"，即API的正式发布环境，然后单击"确定"，把API发布到环境。
   图7发布API   
   ![](https://support.huaweicloud.com/qs-roma/zh-cn_image_0241610592.png "点击放大") 
 
 #### 步骤五：调用API
为简单起见，此处使用Postman工具来实现对API的调用。
1. 获取API的请求信息。
   在"API运行"页面中，查看API的调用信息，包括请求方法和URL。
   图8API请求信息   
   ![](https://support.huaweicloud.com/qs-roma/zh-cn_image_0000001490559520.png "点击放大") 
2. 调用开放的API。 使用Postman工具调用[1]中获取的API。
   调用成功后，查看响应消息是否跟[步骤三：调试API]的测试结果一致。
   图9调用API响应   
   ![](https://support.huaweicloud.com/qs-roma/zh-cn_image_0000001490814674.png "点击放大") 
 
