# 测试连接 - TestLink
#### 功能介绍
测试连接接口。根据传入的连接配置测试连通性，不修改已保存的连接。请求时需携带query参数validate=true和user.name=用户名。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-cdm/making_request.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-cdm/abcd.html)。
#### URI
PUT /v1.1/{project_id}/clusters/{cluster_id}/cdm/link/{link_name}
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                         |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID，获取方法请参见[项目ID和账号ID](https://support.huaweicloud.com/api-cdm/projectid_accountid.html)。 |
| cluster_id | 是    | String | 集群ID，获取方法请参见[获取集群列表](https://support.huaweicloud.com/api-cdm/ListClusters.html)。           |
| link_name  | 是    | String | 连接名称。                                                                                      |
   
表2Query参数 
| 参数       | 是否必选 | 参数类型   | 描述                                                                            |
|:---|:---|:---|:---|
| validate | 是    | String | 是否只执行参数校验。为"true"时，此API仅校验连接配置是否正确，不修改已保存的连接，用于测试连接连通性。为"false"或不传时，会校验并修改连接。 |
   
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                            |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token，使用[Token认证](https://support.huaweicloud.com/api-cdm/dataartsstudio_02_0010.html)时必选。通过调用IAM服务的"获取用户Token"接口获取响应消息头中X-Subject-Token的值。 |
   
表4请求Body参数 
| 参数    | 是否必选 | 参数类型                                               | 描述    |
|:---|:---|:---|:---|
| links | 是    | Array of [links] objects | 连接列表。 |
   
 表5links 
| 参数                 | 是否必选 | 参数类型                                                               | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| link-config-values | 是    | [link-config-values] object | 连接参数配置。                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| creation-user      | 否    | String                                                             | 创建连接的用户。                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| name               | 是    | String                                                             | 连接名称。只能包含数字、字母、中划线、下划线，且首字符不能是中划线，长度不能超过240个字符。                                                                                                                                                                                                                                                                                                                                                                                           |
| id                 | 否    | Integer                                                            | 连接ID。                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| creation-date      | 否    | Long                                                               | 创建连接的时间，单位：毫秒。                                                                                                                                                                                                                                                                                                                                                                                                                            |
| connector-name     | 是    | String                                                             | 连接器名称，对应的连接参数如下：generic-jdbc-connector：关系数据库连接。obs-connector：OBS连接。hdfs-connector：HDFS连接。hbase-connector：HBase连接、CloudTable连接。hive-connector：Hive连接。ftp-connector/sftp-connector：FTP/SFTP连接。mongodb-connector：MongoDB连接。redis-connector：Redis/DCS连接。kafka-connector：Kafka连接。dis-connector：DIS连接。elasticsearch-connector：Elasticsearch/云搜索服务连接。dli-connector：DLI连接。 http-connector：HTTP/HTTPS连接，该连接暂无连接参数。dms-kafka-connector：DMS Kafka连接。 |
| update-date        | 否    | Long                                                               | 更新连接的时间。                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| enabled            | 否    | Boolean                                                            | 是否激活连接，默认为"true"。                                                                                                                                                                                                                                                                                                                                                                                                                         |
| update-user        | 否    | String                                                             | 更新连接的用户。                                                                                                                                                                                                                                                                                                                                                                                                                                  |
   
 表6link-config-values 
| 参数               | 是否必选 | 参数类型                                                           | 描述                      |
|:---|:---|:---|:---|
| configs          | 是    | Array of [configs] objects         | 连接配置参数数据结构。             |
| extended-configs | 否    | [extended-configs] object | 扩展配置。扩展配置暂不对外开放，用户无需填写。 |
| validators       | 否    | Array of strings                                               | 校验器。校验器配置暂不对外开放，用户无需填写  |
   
 表7configs 
| 参数     | 是否必选 | 参数类型                                               | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| inputs | 是    | Array of [Input] objects | 输入参数列表，列表中的每个参数为"name,value"结构。在"from-config-values"数据结构中，不同的源连接类型有不同的"inputs"参数列表，请参见[源端作业参数说明](https://support.huaweicloud.com/api-cdm/source_job_parameters.html)下的章节。在"to-config-values"数据结构中，不同的目的连接类型有不同的"inputs"参数列表，请参见[目的端作业参数说明](https://support.huaweicloud.com/api-cdm/destination_job_parameters.html)下面的子章节。在"driver-config-values"数据结构中，"inputs"具体参数请参见[作业任务参数说明](https://support.huaweicloud.com/api-cdm/job_parameter.html)。 |
| name   | 是    | String                                             | 配置名称：源端作业的配置名称为"fromJobConfig"。目的端作业的配置名称为"toJobConfig"，连接的配置名称固定为"linkConfig"。                                                                                                                                                                                                                                                                                                                                                               |
| id     | 否    | Integer                                            | 配置ID，由系统生成，用户无需填写。                                                                                                                                                                                                                                                                                                                                                                                                                            |
| type   | 否    | String                                             | 配置类型，由系统生成，用户无需填写。值为LINK或者JOB，如果是连接管理API，则为LINK；如果是作业管理API，则为JOB。                                                                                                                                                                                                                                                                                                                                                                             |
   
 表8Input 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| name  | 是    | String | 参数名: - 如果是连接管理API，则以"linkConfig."开头，对于不同连接类型有不同的参数，具体可参见[连接参数说明](https://support.huaweicloud.com/api-cdm/link_parameter.html)下相应连接的参数说明。   - 如果是作业管理API，对于源端连接参数，则以"fromJobConfig."开头，具体可参见[源端作业参数说明](https://support.huaweicloud.com/api-cdm/source_job_parameters.html)下相应的源端参数说明；对于目的端连接参数，则以"toJobConfig."开头，具体可参见[目的端作业参数说明](https://support.huaweicloud.com/api-cdm/destination_job_parameters.html)下相应的目的端参数说明；对于作业任务参数，请参见[作业任务参数说明](https://support.huaweicloud.com/api-cdm/job_parameter.html)下相应的任务参数说明。    |
| value | 是    | Object | 参数值，参数名对应的值，必须填写为字符串。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| type  | 否    | String | 值类型，如STRING、INTEGER，由系统设定，用户无需填写。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
 表9extended-configs 
| 参数    | 是否必选 | 参数类型   | 描述    |
|:---|:---|:---|:---|
| name  | 否    | String | 配置名称。 |
| value | 否    | String | 配置值。  |
   
#### 响应参数
**状态码：200**
表10响应Body参数 
| 参数                | 参数类型                                                                      | 描述                                          |
|:---|:---|:---|
| validation-result | Array of [validationResult] objects | 校验连接结果列表。如果更新连接失败，将返回失败原因。如果更新连接成功，返回空对象列表。 |
   
 表11validationResult 
| 参数         | 参数类型                                                                              | 描述           |
|:---|:---|:---|
| linkConfig | Array of [validationLinkConfig] objects | 创建或更新连接校验结果。 |
   
 表12validationLinkConfig 
| 参数      | 参数类型   | 描述                    |
|:---|:---|:---|
| message | String | 错误描述。                 |
| status  | String | 错误级别，如：ERROR、WARNING。 |
   
**状态码：500**
表13响应Body参数 
| 参数      | 参数类型   | 描述                    |
|:---|:---|:---|
| message | String | 错误描述。                 |
| status  | String | 错误级别，如：ERROR、WARNING。 |
   
#### 请求示例
测试一个名为mysql_link的数据连接连通性。
```
PUT /v1.1/1551c7f6c808414d8e9f3c514a170f2e/clusters/6ec9a0a4-76be-4262-8697-e7af1fac7920/cdm/link/rdb_link?validate=true&user.name=test_user
{
  "links" : [ {
    "link-config-values" : {
      "configs" : [ {
        "inputs" : [ {
          "name" : "linkConfig.databaseType",
          "value" : "MYSQL"
        }, {
          "name" : "linkConfig.host",
          "value" : "100.94.8.163"
        }, {
          "name" : "linkConfig.port",
          "value" : "3306"
        }, {
          "name" : "linkConfig.database",
          "value" : "DB_name"
        }, {
          "name" : "linkConfig.username",
          "value" : "username"
        }, {
          "name" : "linkConfig.password",
          "value" : "DB_password"
        }, {
          "name" : "linkConfig.fetchSize",
          "value" : "100000"
        }, {
          "name" : "linkConfig.usingNative",
          "value" : "false"
        } ],
        "name" : "linkConfig"
      } ]
    },
    "name" : "mysql_link",
    "creation-date" : 1496654788622,
    "connector-name" : "generic-jdbc-connector",
    "update-date" : 1496654788622,
    "enabled" : true
  } ]
}
```
#### 响应示例
**状态码：200**
```
{
  "validation-result" : [ { } ]
}
```
**状态码：500**
```
{
  "validation-result" : [ {
    "linkConfig" : [ {
      "message" : "Can''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''t connect to the database with given credentials: The authentication type 12 is not supported. Check that you have configured the pg_hba.conf file to include the client''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''s IP address or subnet, and that it is using an authentication scheme supported by the driver.",
      "status" : "ERROR"
    } ]
  } ]
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | OK。                   |
| 400 | 请求错误。                 |
| 401 | 鉴权失败。                 |
| 403 | 没有操作权限。               |
| 404 | 找不到资源。                |
| 500 | 服务内部错误，具体返回错误码请参考错误码。 |
| 503 | 服务不可用。                |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-cdm/ErrorCode.html)。
