
# 注册API
本文将为您介绍如何将已有的后端服务API，借助数据服务统一注册发布到API网关，与通过数据服务生成的API进行统一管理。
目前数据服务共享版支持Restful风格的API注册，包含GET/POST常见请求方式。
#### 配置API基本信息
1. [登录DataArts Studio管理控制台](https://console.huaweicloud.com/dayu/)。
   详情请参考[访问DataArts Studio实例控制台](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0001.html)。
   
2. 在DataArts Studio控制台首页，选择对应工作空间的"数据服务"模块，进入数据服务页面。

3. 在左侧导航栏选择"共享版"，进入总览页。
4. 进入"开发API \> API管理"页面，单击"注册现有API"，填写API基本信息。
   表1API基本信息 
   | 配置      | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   |:---|:---|
   | API名称   | 支持中文、英文、数字、下划线，且只能以英文或中文开头，3-64个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | API目录   | 一个特定功能或场景的API集合，是数据服务中API的最小组织单元，也是API网关中的最小管理单元。 您可单击"新建"进行新建，也可选择[新建API目录](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0305.html#dataartsstudio_01_0305__zh-cn_topic_0180012632_section18624154416414)已创建的API分组。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 请求Path  | 资源路径，也即API访问路径。 示例：/v2/{project_id}/streams                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 协议      | 用于传输请求的协议，支持HTTP和HTTPS协议。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   | 请求方式    | HTTP请求方法（也称为操作或动词），它告诉服务你正在请求什么类型的操作。 GET：请求服务器返回指定资源。 POST：请求服务器新增资源或执行特殊操作，注册API时推荐使用。POST请求当前不支持body体，而是直接透传。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 描述      | 对API进行简要描述。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   | 标签      | 用户自定义输入，只能包含中文、英文字母、数字和下划线，且不能以下划线开头。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 审核人     | 拥有API的审核权限。 单击"新建"，进入"审核中心 \> 审核人管理"页面，新建审核人。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   | 安全认证    | 创建API时，有如下几种安全认证方式可选。这些方式的区别在于认证方式和调用方法不同，推荐使用安全性更高的APP认证。 - APP认证：将APP认证方式的API授权给应用后，使用应用的密钥对（AppKey和AppSecret）进行安全认证，支持通过SDK或API调用工具调用，安全级别高，推荐使用。  - IAM认证：将IAM认证方式的API授权给当前账号或其他账号后，借助从IAM服务获取的用户Token进行安全认证。支持通过API调用工具调用，安全级别中等。  - 无认证：不需要认证，所有用户均可访问，建议仅在测试接口时使用，不推荐正式使用。使用无认证方式时，无需鉴权认证信息，安全级别低，通过API调用工具或浏览器即可直接调用。                                                                                                                                                                                                                                                                                                                                                                                                             |
   | 服务目录可见性 | 发布后，所选范围内的用户均可以在服务目录中看到此API。 - 当前工作空间可见  - 当前项目可见  - 当前租户可见                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   | 访问日志    | 勾选，则此API的查询结果将会产生记录并被保留7天，可以在"运营管理 \> 访问日志"处查看。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   | 最低保留期限  | API解绑前预留的最低期限。API进行停用/下线/取消授权时，会通知已授权用户，并为用户预留至少X小时，直到所有授权用户均完成解除或处理，或者到达截止时间，API才会停用/下线/取消授权。0表示不设限制。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   | 入参定义    | 配置API请求中的参数，包含资源路径中的动态参数，请求URI中的查询参数和Header参数。 以配置资源路径中的动态参数为例进行说明，例如资源路径（请求Path）设置为： /v2/{project_id}/streams，资源路径中的{project_id}为动态参数，需要在此进行配置。 1. 单击"添加"，参数名配置为project_id。  2. 参数位置选择PATH。  3. 类型设置为STRING。  4. 选择性配置示例值和描述。   |
      
   
5. 配置好API基本信息后，单击"下一步"，即可进入API取数逻辑页面。
 
#### 配置API参数
配置API基本信息后，即可配置API参数。这里将配置API的后端服务和请求参数。
表2API参数配置说明 
| 配置       | 说明                                                                                                                                                                                                                                                      |
|:---|:---|
| 协议       | 用于传输请求的协议，支持HTTP和HTTPS协议。 用于数据服务模块向待注册API服务传输请求。                                                                                                                                         |
| 请求方式     | HTTP请求方法（也称为操作或动词），它告诉服务你正在请求什么类型的操作。用于数据服务模块向待注册API服务传输请求。 GET：请求服务器返回指定资源。 POST：请求服务器新增资源或执行特殊操作。 |
| 后端服务HOST | 待注册API服务所在的Host，不能以http://或https://开头，并且不包含Path。                                                                                                                                                                                                        |
| 后端服务PATH | 待注册API服务所在的Path，Path中支持参数，参数要放在{}中，如/user/{userid}。                                                                                                                                                                                                     |
| 后端超时（ms） | 设置后端超时时间。                                                                                                                                                                                                                                               |
| 后端服务参数   | 请求参数位置支持Path、Header、Query，不同的请求方式所支持的可选参数位置不一样，请根据产品上提供的可选项按需选择。                                                                                                                                                                                        |
| 常量参数     | 常量参数即参数值是固定的参数，对调用者不可见，API调用时不需传入常量参数，但后台服务始终接收这里定义好的常量参数及参数值。适用于当您希望把API的某个参数的取值固定为某个值以及要对调用者隐藏参数的场景。                                                                                                                                                  |
   
#### API测试
完成API参数的配置并保存后，单击左下角的"开始测试"，可进入API测试环节。
填写参数值，单击"开始测试"，即可在线发送API请求，在右侧可以看到API请求详情及返回内容。
- 测试过程中，如果数据服务API查询及返回数据的总时长超过默认60秒，会报超时错误。
- 如果测试失败，请查看错误提示并做相应的修改重新测试。
 
完成API测试之后，单击"确定"，即完成注册数据API。
