
# 提取数据水印 - ShowDataWaterMark
#### 功能介绍
提取请求数据中水印内容
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-dsc/dsc_02_0008.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-dsc/dsc_02_0031.html)。
- 如果使用身份策略授权，当前API调用无需身份策略权限。
 
#### URI
POST /v1/{project_id}/sdg/database/watermark/extract
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述   |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                        |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。通过调用IAM服务"获取用户Token接口"获取（响应消息头中X-Subject-Token的值） |
   
表3请求Body参数 
| 参数            | 是否必选 | 参数类型                                                            | 描述                                                                    |
|:---|:---|:---|:---|
| watermark_key | 是    | String                                                          | 水印密钥                                                                  |
| columns       | 是    | Array of [Columns] objects | 字段类型列表，最大长度100。使用时，要包含嵌入时所有"primary_key"为true的字段，和至少一个为false的字段用来提取水印 |
| data          | 是    | Array of Map\<String,Object\> objects                           | 水印数据，数据条数不超过30,000条                                                   |
   
 表4Columns 
| 参数          | 是否必选 | 参数类型    | 描述                                                                                  |
|:---|:---|:---|:---|
| name        | 是    | String  | 数据的字段名称，最大支持长度256                                                                   |
| type        | 是    | String  | 数据的字段类型                                                                             |
| primary_key | 是    | Boolean | 标记该字段是否为主键。true为主键，表示用来定位水印位置；false为非主键，将在该列嵌入/提取水印内容。字段类型列表中可同时包含多个为true或为false的字段 |
   
#### 响应参数
**状态码：200**
表5响应Body参数 
| 参数         | 参数类型             | 描述                                                     |
|:---|:---|:---|
| watermarks | Array of strings | 提取水印内容列表。上传数据中不同列可能包含不同水印，返回时将所有提取到的水印返回，列表中水印个数不超过100 |
   
**状态码：400**
表6响应Body参数 
| 参数         | 参数类型   | 描述   |
|:---|:---|:---|
| error_code | String | 错误码  |
| error_msg  | String | 错误信息 |
   
#### 请求示例
提取数据库水印，水印密钥是key，字段类型列表中数据的字段名称为col，该字段为非主键。
```
POST https://{endpoint}/v1/{project_id}/sdg/database/watermark/extract
{
  "watermark_key" : "key",
  "columns" : [ {
    "name" : "col",
    "type" : "INTEGER",
    "primary_key" : false
  } ],
  "data" : [ {
    "col" : {
      "a" : 0.1
    }
  } ]
}
```
#### 响应示例
**状态码：200**
请求成功
```
{
  "watermarks" : [ "watermark" ]
}
```
**状态码：400**
参数错误
```
{
  "error_code" : "DSC.00000004",
  "error_msg" : "Invalid parameter"
}
```
#### 状态码
| 状态码 | 描述   |
|:---|:---|
| 200 | 请求成功 |
| 400 | 参数错误 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-dsc/ErrorCode.html)。
