
# 码表逆向 - ExecuteReverseDesignCodeTable
#### 功能介绍
码表管理接口码表逆向
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-dataartsstudio/making_request.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-dataartsstudio/abcd.html)。
- 如果使用身份策略授权，当前API调用无需身份策略权限。
 
#### URI
POST /v1/{project_id}/code-tables/database
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                    |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID，获取方法请参见[项目ID和账号ID](https://support.huaweicloud.com/api-dataartsstudio/projectid_accountid.html)。 |
   
表2Query参数 
| 参数           | 是否必选 | 参数类型   | 描述          |
|:---|:---|:---|:---|
| directory_id | 否    | String | 目录ID，ID字符串。 |
   
#### 请求参数
表3请求Body参数 
| 参数             | 是否必选 | 参数类型             | 描述                                                                                       |
|:---|:---|:---|:---|
| dw_type        | 是    | String           | 数据连接类型，对应表所在的数仓类型，取值可以为DWS、MRS_HIVE、POSTGRESQL、MRS_SPARK、CLICKHOUSE、MYSQL、ORACLE和DORIS等。 |
| dw_id          | 是    | String           | 管理中心配置的数据连接id。                                                                           |
| dw_name        | 是    | String           | 管理中心配置的数据连接名称。                                                                           |
| db_name        | 是    | String           | 对应表所在的数据库。                                                                               |
| queue_name     | 否    | String           | dli数据连接执行sql所需的队列，数据连接类型为DLI时必须。                                                         |
| schema         | 否    | String           | 数据连接类型为DWS、POSTGRESQL时，对应表所在的schema。                                                     |
| reverse_type   | 否    | String           | 是否有搜索条件。                                                                                 |
| page_number    | 否    | Integer          | 全库分页逆向当前页码。                                                                              |
| page_size      | 否    | Integer          | 全库分页逆向每页条数。                                                                              |
| key_word       | 否    | String           | 逆向搜索表的关键字 1、最大支持2000个字符。 2、多条件搜索为精确查询，搜索条件用英文分号隔开。 3、单条件（无分号）为模糊查询。 4、搜索时最多返回5000张表信息。   |
| tb_names       | 否    | Array of strings | 表名数组。                                                                                    |
| biz_catalog_id | 否    | String           | 归属的业务分类的id。                                                                              |
| update_exist   | 否    | Boolean          | 是否更新已存在的表。                                                                               |
| catalog_path   | 否    | String           | 逆向逻辑实体、物理表、维度表、事实表、汇总表时，归属的主题的路径 {"l1Id":"","l2Id":"","l3Id":""}                         |
| data_involve   | 否    | String           | 逆向表数据：不逆向;覆盖;                                                                            |
| name_origin    | 否    | String           | 表中文名称来源：表的注释;表的英文名;                                                                      |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数   | 参数类型                                                         | 描述       |
|:---|:---|:---|
| data | [data] object | 接口返回的数据。 |
   
 表5data 
| 参数    | 参数类型   | 描述     |
|:---|:---|:---|
| value | String | sql信息。 |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述                   |
|:---|:---|:---|
| error_code | String | 错误码，如DS.6000，请求处理失败。 |
| error_msg  | String | 错误信息。                |
| data       | Object | 返回的数据信息。             |
   
**状态码：401**
表7响应Body参数 
| 参数         | 参数类型   | 描述                   |
|:---|:---|:---|
| error_code | String | 错误码，如DS.6000，请求处理失败。 |
| error_msg  | String | 错误信息。                |
| data       | Object | 返回的数据信息。             |
   
**状态码：403**
表8响应Body参数 
| 参数         | 参数类型   | 描述                   |
|:---|:---|:---|
| error_code | String | 错误码，如DS.6000，请求处理失败。 |
| error_msg  | String | 错误信息。                |
| data       | Object | 返回的数据信息。             |
   
#### 请求示例
根据请求体参数，指定数据表逆向码表到指定目录。
```
POST https://{endpoint}/v1/{project_id}/code-tables/database?directory_id=1046095008471683072
{
  "dw_type" : "HIVE",
  "dw_id" : "8259af52bd294f98920ebce75a426391",
  "dw_name" : "hive",
  "db_name" : "default",
  "queue_name" : null,
  "schema" : null,
  "reverse_type" : "PART",
  "tb_names" : [ "aaa_new" ],
  "update_exist" : true,
  "name_origin" : "DESCRIPTION",
  "page_number" : null,
  "page_size" : null,
  "data_involve" : "OVERWRITE"
}
```
#### 响应示例
**状态码：200**
Success，返回data数据是 ddl
```
{
  "data" : {
    "value" : {
      "id" : "1396947579547328513",
      "tenant_id" : "0833a5737480d53b2f25c010dc1a7b88-workspace-eeb055e69c624311b6b9cfee89a4ec70",
      "group_id" : "1396947579547328512",
      "biz_name" : null,
      "biz_id" : null,
      "operation_status" : "RUNNING",
      "operation_type" : "CODETABLE_REVERSE_DB",
      "biz_info" : null,
      "create_by" : "test_user",
      "remark" : null,
      "total" : 0,
      "success" : 0,
      "failed" : 0,
      "rate" : null,
      "logs" : null,
      "groups" : [ ]
    }
  }
}
```
**状态码：400**
BadRequest
```
{
  "error_code" : "DS.60xx",
  "error_msg" : "The user request is illegal."
}
```
**状态码：401**
Unauthorized
```
{
  "error_code" : "DS.60xx",
  "error_msg" : "User authentication failed."
}
```
**状态码：403**
Forbidden
```
{
  "error_code" : "DS.60xx",
  "error_msg" : "The user does not have permission to call this API."
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | Success，返回data数据是 ddl |
| 400 | BadRequest            |
| 401 | Unauthorized          |
| 403 | Forbidden             |
   
