
# 连接器RESTful接口规范
#### 数据读取接口
**接口规范定义**
- 接口URI POST /reader
  
- 接口请求
  ```
  {
      "job_name": "job_name",
      "datasource": {
          "para1": "******",
          "para2": "******",
           ...
      },
      "params": {
          "extend": {
              "ex_para1": "******",
              "ex_para2": "******",
               ...
          },
          "pagination": {
              "offset": 1,
              "limit": "10"
          },
          "migration": {
              "begin": **********,
              "end": **********
          }
      }
  }
  ```
  
- 接口响应
  ```
  {
      "datas": [
          {
              "para1": "******",
              "para2": "******",
               ...
          },
          {
              "para1": "******",
              "para2": "******",
               ...
          },
          ...
      ]
  }
  ```
  
**接口参数说明**
- 请求参数
  表1请求参数 
  | 参数         | 是否必选 | 参数类型                                       | 描述                                   |
  |:---|:---|:---|:---|
  | job_name   | 是    | String                                     | 任务名称。由英文字母、数字、下划线、中划线组成，长度为4\~64字符。  |
  | datasource | 是    | Object                                     | 数据源参数对象。包括连接器接数据库依赖的参数，所有参数组成的Json体。 |
  | params     | 是    | [Params] | 连接器所需参数对象。                           |
     
   表2Params说明 
  | 参数         | 是否必选 | 参数类型                                           | 描述                            |
  |:---|:---|:---|:---|
  | pagination | 否    | [Pagination] | 分页对象。                         |
  | migration  | 否    | [Migration]  | 增量迁移对象。                       |
  | extend     | 否    | Object                                         | 连接器所属的扩展参数，其值为各个扩展参数组成的Json体。 |
     
   表3Pagination说明 
  | 参数     | 是否必选 | 参数类型    | 描述                    |
  |:---|:---|:---|:---|
  | offset | 否    | Integer | 分页查询的偏移量，表示从此偏移量开始查询。 |
  | limit  | 否    | Integer | 每页显示的数据记录数。           |
     
   表4Migration说明 
  | 参数    | 是否必选 | 参数类型 | 描述        |
  |:---|:---|:---|:---|
  | begin | 否    | Date | 迁移数据开始时间。 |
  | end   | 否    | Date | 迁移数据结束时间。 |
     
  
- 响应参数
  表5响应参数 
  | 参数    | 参数类型           | 描述                                                 |
  |:---|:---|:---|
  | datas | List\<Object\> | 读取数据组成的列表。该字段要求满足Json Array的格式，里面的字段由连接器侧根据实际情况而定。 |
     
  
 
#### 数据写入接口
**接口规范定义**
- 接口URI POST /writer
  
- 接口请求
  ```
  {
      "job_name": "job_name",
      "datasource": {
          "para1": "******",
          "para2": "******",
           ...
      },
      "params": {
          "extend": {
              "ex_para1": "******",
              "ex_para2": "******",
               ...
          }
      },
      "meta-data": [
          {
              "name": "id",
              "type": "String",
              "format": "",
              "path": "datas[i].id"
          },
          {
              "name": "company",
              "type": "String",
              "format": "",
              "path": "datas[i].company"
          },
          ...
      ],
      "datas": [
          {
              "data1": "******",
              "data2": "******",
               ...
          },
          {
              "data1": "******",
              "data2": "******",
               ...
          },
          ...
      ]
  }
  ```
  
- 接口响应
  ```
  {
      "num_success": "2",
      "num_fail": "0",
      "fail_datas": [
          {}
      ]
  }
  ```
  
**接口参数说明**
- 请求参数
  表6请求参数 
  | 参数         | 是否必选 | 参数类型                                                    | 描述                                   |
  |:---|:---|:---|:---|
  | job_name   | 是    | String                                                  | 任务名称。由英文字母、数字、下划线、中划线组成，长度为4\~64字符。  |
  | datasource | 是    | Object                                                  | 数据源参数对象。包括连接器接数据库依赖的参数，所有参数组成的Json体。 |
  | params     | 是    | [Params]             | 连接器所需参数对象。                           |
  | meta-data  | 是    | List\<[Meta-data]\> | 元数据参数列表。                             |
  | datas      | 是    | List\<Object\>                                          | 连接器处理的数据列表。                          |
     
   表7Params说明 
  | 参数     | 是否必选 | 参数类型   | 描述                            |
  |:---|:---|:---|:---|
  | extend | 否    | Object | 连接器所属的扩展参数，其值为各个扩展参数组成的Json体。 |
     
   表8Meta-data说明 
  | 参数     | 是否必选 | 参数类型   | 描述                                        |
  |:---|:---|:---|:---|
  | name   | 是    | String | 数据字段名称。                                   |
  | type   | 是    | String | 字段值类型。支持的类型有：String，Integer，Date和Long。    |
  | format | 否    | String | 数据的格式化字符串。当字段值为Date类型时，需要填写该值，用于描述字符串的格式。 |
  | path   | 是    | String | 字段在源数据中的获取路径。                             |
     
  
- 响应参数
  表9响应参数 
  | 参数          | 参数类型           | 描述         |
  |:---|:---|:---|
  | num_success | Integer        | 数据写入成功数。   |
  | num_fail    | Integer        | 数据写入失败数。   |
  | fail_datas  | List\<Object\> | 处理失败的数据列表。 |
     
  
 
