
# 创建并开放数据API
#### 概述
通过创建数据API，把停车场管理系统中的车位状态数据开放给第三方应用，供车主、城市管理者了解停车场车位情况。
#### 操作步骤
1. 创建后端。
   1. 在左侧的导航栏选择"服务集成 APIC \> 自定义后端"，在"后端列表"页签中单击"创建后端"。
   
   2. 在创建后端页面填写后端相关配置信息，完成后单击"立即创建"。
      表1后端配置 
      | 参数     | 配置说明                                                                                                |
      |:---|:---|
      | 后端名称   | 填写后端的名称，自定义。                                                                                        |
      | 集成应用   | 选择[在ROMA Connect注册设备](https://support.huaweicloud.com/bestpractice-roma/roma_05_0002.html)中创建的集成应用。 |
      | 后端请求方法 | 选择后端的请求方法，此处选择"GET"。                                                                                |
      | 后端请求路径 | 填写后端的请求路径，格式如：/serviceName/interfaceName。                                                           |
      | 后端安全认证 | 选择后端的安全认证方式。本实践中开放的API与后端服务在同一实例内，此处选择"无认证"。                                                        |
      | 描述     | 填写后端的描述信息。                                                                                          |
      | 高级设置   | 高级设置保持默认设置。                                                                                         |
         
      后端创建完成后，页面自动跳转到该后端的编辑器页面，后端类型默认为数据后端。
      
    
2. 配置和部署数据后端。
   1. 在编辑器页面左侧单击"添加数据源"。
   
   2. 在添加数据源弹窗中配置数据源信息，完成后单击"立即添加"。
      表2数据源配置 
      | 参数       | 配置说明                                                                                                 |
      |:---|:---|
      | 选择数据源    | 选择[创建MQS到数据库的集成任务](https://support.huaweicloud.com/bestpractice-roma/roma_05_0004.html)中接入的MySQL数据源。 |
      | 选择执行语句类型 | 选择执行语句的类型，此处选择"SQL"。                                                                                 |
      | 高级设置     | 高级设置保持默认设置。                                                                                          |
         
      
   
   3. 添加数据源后，在编辑器左侧选择数据源，然后您可以在右侧的语句编辑框中为数据源添加如下执行语句，从数据库中获取当前空余车位数量。
      假设MySQL数据库中存储车位信息和车位状态信息的数据表名为"ParkingData"，表中车位状态字段为"Status"。
      ```
      SELECT COUNT(Status) AS FreeNo FROM ParkingData WHERE Status="0";
      ```
      
   
   4. 完成后在页面右上角单击"保存"，保存数据后端配置。
   
   5. 在页面右上角单击"测试"，然后在下方的测试窗口中单击"立即测试"。 在"执行结果"栏查看后端的响应结果是否为如下JSON数据，其中xxx为统计返回的空余车位数量值。
      ```
      {"default":[{"FreeNo":xxx}]}
      ```
      
   
   6. 后端测试完成后，在页面右上角单击"部署"，然后在弹窗中单击"确定"，部署数据后端。
    
3. 发布数据API。
   1. 后端部署完成后，在页面右上角单击"发布"。
   
   2. 在发布弹窗中填写发布相关参数，完成后单击"立即发布"，为该后端创建一个对应的前端API，并发布到环境上。
      API发布完成后，自动跳转到对应前端API的API运行页面。
      表3发布后端 
      | 参数         | 配置说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
      |:---|:---|
      | 所属分组       | 选择前端API所属的API分组。若没有可用的API分组，可单击右侧的"创建分组"，创建一个API分组。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
      | 发布环境       | 选择默认的"RELEASE"环境                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
      | 前端安全认证     | 选择前端API的安全认证方式，推荐使用APP认证方式。 - APP认证：表示由ROMA Connect对API请求进行安全认证。用户调用API时，使用集成应用的Key和Secret进行API请求的安全认证。  - 华为IAM认证：表示由IAM对API请求进行安全认证。用户调用API时，使用Token或AK/SK进行API请求的安全认证。  - 自定义认证：表示使用自定义的函数API对API请求进行安全认证。  - 无认证：表示API请求不需要认证。   |
      | 自定义认证      | **仅当"前端安全认证"选择"自定义认证"时需要配置。** 选择已创建的前端类型自定义认证。                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
      | 前端请求协议     | 选择前端API使用的请求协议，可选择"HTTP"、"HTTPS"和"HTTP\&HTTPS"，传输重要或敏感数据时推荐使用HTTPS。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
      | 后端超时 (ms)  | 后端服务请求的超时时间，默认为60000ms。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
      | 重试次数       | ROMA Connect调用后端服务失败后的重试次数。 - 值为-1时，表示不开启重试功能。  - 值为0-10时，表示开启重试功能，并根据设置的值执行重试。                                                                                                                                                                                                                                                                          |
      | 高级设置                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   ||
      | 前端请求方法     | 选择前端API的请求方法。"ANY"表示该API支持任意请求方法。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
      | 前端请求路径     | 填写前端API的请求路径，格式如：/getUserInfo/userId。 请求路径中的内容区分大小写。                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
      | 支持跨域(CORS) | 是否支持跨域访问API，此处选择不启用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
         
      
    
4. 为数据API绑定独立域名。
   1. 在页面左上角选择"分组信息"，在"域名管理"下单击"绑定独立域名"。
   
   2. 在绑定独立域名弹窗中填写域名配置信息，完成后单击"确定"。
      表4独立域名配置 
      | 参数                   | 配置说明                                                                                                                                                                                                                             |
      |:---|:---|
      | 域名                   | 填写要绑定的域名。                                                                                                                                                                                                                        |
      | 支持最小TLS版本            | 选择域名访问所使用的最小TLS版本。                                                                                                                                                                                                               |
      | 支持http to https自动重定向 | 是否支持HTTP到HTTPS的重定向。 仅当API的请求协议选择"HTTPS"或"HTTP\&HTTPS"，且独立域名已绑定SSL证书时重定向生效。 说明： 由于浏览器限制，非GET或非HEAD方法的重定向可能导致数据丢失，因此API请求方法限定为GET或HEAD。 |
         
      
   
   3. （可选）如果数据API支持HTTPS请求协议，则需要为独立域名绑定SSL证书。否则跳过此步骤。
      1. 在已绑定的独立域名右侧单击"选择SSL证书"。
      
      2. 在选择SSL证书弹窗中勾选要绑定的SSL证书，完成后单击"确定"，完成SSL证书的绑定。 若证书列表中无可用的SSL证书，可单击"创建SSL证书"，新增SSL证书。
         
       
    
5. 在页面左上角选择"API运行"，在页面中获取数据API的请求方法和URL，并提供给第三方应用使用。
 
