
# RestApi数据源
RestApi是一种用于构建和发送HTTP请求的工具，能够方便地与各种基于REST架构风格的网络服务进行交互，具有易用性高、灵活性强、可扩展性好等特点，广泛应用于不同系统之间的数据交互与集成场景。本数据集成服务支持 RestApi，可实现对多种数据源（包括结构化数据源、半结构化数据源等）的灵活访问与数据读取，进而将数据进行高效迁移与写入，满足复杂的数据集成需求。
#### 使用前准备及限制
**网络要求**
RestApi数据源必须与CDM网络进行通讯，以确保数据传输的顺畅性。详情请参见[网络打通](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_7765.html)。
#### 支持的迁移场景
数据集成离线同步支持以下三种同步方式，以满足不同数据迁移场景的需求：
- **单表同步**
  适用于数据入湖和数据上云场景下，表或文件级别的数据同步。
  
- **分库分表同步**
  适用于数据入湖和数据上云场景下，多库多表同步场景。
  
- **整库迁移**
  适用于数据入湖和数据上云场景下，离线或自建数据库整体同步场景。
  
需要注意的是，分库分表与整库迁移能力会根据不同region的上线支持情况有所不同，具体支持情况以页面为准。以下是针对RestApi的支持迁移场景概览：
| 支持迁移场景 | 单表读取 | 单表写入 | 分库分表读取 | 分库分表写入 | 整库读取 | 整库写入 |
|:---|:---|:---|:---|:---|:---|:---|
| 是否支持   | √    | x    | x      | x      | x    | x    |
   
#### 核心能力速览
- **连接配置**
  
  | 配置项    | 支持情况                                                                                                                                                                  | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
  |:---|:---|:---|
  | 支持请求类型 | GET POST                                                                                                                      | 支持两种最常见的 HTTP 请求类型。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
  | 认证类型   | NONE BASIC_AUTH TOKEN_AUTH OAUTH_CODE_GRANT | - NONE：无认证。  - BASIC_AUTH：基础验证。 如果数据源API支持用户名和密码的方式进行验证，您可选择此种验证方式，并在选择完成后配置用于验证的用户名和密码，后续数据集成过程中对接数据源时，通过Basic Auth协议传递给RESTful地址，完成验证。格式：{"Authorization":"Basic base64(username:password)"}   - TOKEN_AUTH：Token验证（token为静态token，永不过期，否则token过期会导致作业失败）。 如果数据源API支持Token的方式进行验证，您可选择此种验证方式，并在选择完成后配置用于验证的固定Token值，后续数据集成过程中对接数据源时，通过传入header中进行验证，格式：{"Authorization":"Bearer \<token\>"}。   - OAUTH_CODE_GRANT Oauth 2.0（Authorization Code）：Oauth2.0认证。 Oauth2.0授权码模式，使用账号密码换取accessToken，再使用获取的accessToken访问接口。    |
     
  
- **读取能力**
  
  | 配置项      | 支持情况 | 说明                                                   |
  |:---|:---|:---|
  | 增量读取     | √    | 支持通过修改url或body条件进行增量读取能力。                            |
  | 并发读取     | √    | 支持通过page分页做水平分片，多线程并行抽取，显著提升吞吐效率。                    |
  | json嵌套解析 | √    | 支持解析响应体的JSON数据结构，能够正确处理包含多层嵌套字段的JSON数据，确保数据的完整性和准确性。 |
     
  
 
#### 创建数据源
在DataArts Studio管理中心新建相应的数据源，详情请参见[创建DataArts Studio数据连接](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0009.html)。
#### 创建数据集成离线作业
在DataArts Studio数据开发中新建RestApi集成作业，详情请参见[新建离线处理集成作业](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1458.html)。
