
# 添加数据 V2-RunAddData
#### 功能介绍
添加数据到用户指定的服务实例中。
![](https://support.huaweicloud.com/api-imagesearch/public_sys-resources/note_3.0-zh-cn.png)
服务实例需要用户在图像搜索服务管理控制台上创建。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/ImageSearch/doc?api=RunAddData)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
POST /v2/{project_id}/mms/{service_name}/data/add
表1路径参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| project_id   | 是    | String | **参数解释：** 用户的项目ID。获取方法请参见[获取项目ID和名称](https://support.huaweicloud.com/api-imagesearch/imagesearch_02_0035.html)。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母和数字组成，且长度为\[1-64\]个字符。 **默认取值：** 不涉及。 |
| service_name | 是    | String | **参数解释：** 服务实例的名称，用户创建服务实例时设置的实例名称。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                |
   
#### 请求参数
表2请求Body参数 
| 参数              | 是否必选 | 参数类型                                                                              | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| force           | 否    | Boolean                                                                           | **参数解释：** 是否强制添加数据。 **约束限制：** 不涉及。 **取值范围：** - false: 数据已存在则不进行添加。  - true: 数据已存在仍然覆盖添加。   **默认取值：** 默认为false。                                                                                                                                     |
| item_id         | 是    | String                                                                            | **参数解释：** 数据的服务实例级唯一标识。 **约束限制：** 不涉及。 **取值范围：** 字符长度范围为\[1, 256\]。 **默认取值：** 默认为false。                                                                                                                                                                                                                                                                                                                         |
| desc            | 否    | String                                                                            | **参数解释：** 数据的描述信息。 **约束限制：** 不涉及。 **取值范围：** 字符长度范围为\[1, 2048\]。 **默认取值：** 默认为false。                                                                                                                                                                                                                                                                                                                       |
| custom_tags     | 否    | Map\<String,String\>                                                              | **参数解释：** 数据的自定义字符标签，用于进行条件过滤。格式为键值对{key:value}。 **约束限制：** - key: 必须为服务实例custom_tags中已存在的key，可在创建服务实例时进行配置，或在更新服务实例时进行新增。  - value: 类型为字符串。   **取值范围：** value: 字符长度范围为\[1, 64\]。 **默认取值：** 不涉及。                                                   |
| custom_num_tags | 否    | Map\<String,Number\>                                                              | **参数解释：** 数据的自定义数值标签，用于进行条件过滤。格式为键值对{key:value}。 **约束限制：** - key: 必须为服务实例custom_num_tags中已存在的key，可在创建服务实例时进行配置，或在更新服务实例时进行新增。  - value: 类型为数值，格式为double。   **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                            |
| image_base64    | 否    | String                                                                            | **参数解释：** 图像文件的base64字符串，图像入库时，与image_url二选一。 **约束限制：** 目前仅支持JPEG/JPG/PNG/BMP/WEBP格式的图像。 图片中不能包含旋转信息。 **取值范围：** - 图像文件大小要求不超过5M。  - 默认情况下，要求图像的最短边大于64px，最长边小于4096px。部分服务类型有特殊要求，可参见服务类型说明。   **默认取值：** 不涉及。 |
| image_url       | 否    | String                                                                            | **参数解释：** 图片的URL路径，目前支持公网http:/https url，图像入库时，与image_base64二选一。 注意：接口响应时间依赖于图片的下载时间，如果图片下载时间过长，会返回接口调用失败。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                           |
| keywords        | 否    | Array of strings                                                                  | **参数解释：** 关键词列表。 支持关键词搜索的服务实例添加数据时，如给定此参数，则直接使用给定的keywords作为关键词，否则会自动生成对应的keywords。 **约束限制：** 不涉及。 **取值范围：** 关键词数量范围为\[1, 100\]，关键词字符长度范围为\[1, 64\]。 **默认取值：** 不涉及。                                                                                                                                                                                                 |
| optional_params | 否    | [AddDataOptionalParam] object | **参数解释：** 添加数据的可选参数，具体可参见[表3]。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                  |
   
 表3AddDataOptionalParam 
| 参数       | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| do_det   | 否    | Boolean | **参数解释：** 是否进行目标检测。 **约束限制：** 不涉及。 **取值范围：** true或者false。 **默认取值：** 默认为true。                                                                                                                                                                                                                                                                                                                                            |
| box      | 否    | String  | **参数解释：** 目标矩形框坐标。如给定则不进行目标检测，直接使用该box作为目标。格式为"x1,y1,x2,y2"（无空格），x1/y1为目标左上角坐标，x2/y2为目标右下角坐标。 **约束限制：** - 0 \<= x1 \< x2 \<= width，默认要求x2-x1 \>= 15，具体可参考服务类型说明。  - 0 \<= y1 \< y2 \<= height，默认要求y2-y1 \>= 15，具体可参考服务类型说明。   **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
| do_cls   | 否    | Boolean | **参数解释：** 是否进行对象分类。 **约束限制：** 不涉及。 **取值范围：** true或者false。 **默认取值：** 默认为true。                                                                                                                                                                                                                                                                                                                                                     |
| category | 否    | Integer | **参数解释：** 对象类目，如给定则不进行对象分类，直接使用该category作为类目。具体类目信息可参见对应的服务类型说明。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                                                                                                                                                                                                                                         |
   
#### 响应参数
**状态码： 200**
表4响应Body参数 
| 参数     | 参数类型                                                                     | 描述                                                                                                                                                            |
|:---|:---|:---|
| result | String                                                                   | **参数解释：** 添加数据完成返回success。 **取值范围：** 不涉及。 |
| data   | [AddDataRestInfo] object | **参数解释：** 添加数据的相关信息。 **取值范围：** 不涉及。        |
   
 表5AddDataRestInfo 
| 参数         | 参数类型                                                           | 描述                                                                                                                                                                               |
|:---|:---|:---|
| image_info | [image_info] object | **参数解释：** 添加图像数据的相关信息，不同服务类型返回信息不同，具体可参见服务类型说明。 **取值范围：** 不涉及。 |
   
 表6image_info 
| 参数      | 参数类型                                                               | 描述                                                                                                                                                   |
|:---|:---|:---|
| objects | Array of [objects] objects | **参数解释：** 添加的主体列表。 **取值范围：** 不涉及。 |
   
 表7objects 
| 参数            | 参数类型    | 描述                                                                                                                                                   |
|:---|:---|:---|
| box           | String  | **参数解释：** 主体目标框。 **取值范围：** 不涉及。    |
| category      | Integer | **参数解释：** 主体类目序号。 **取值范围：** 不涉及。   |
| category_name | String  | **参数解释：** 主体类目名称。 **取值范围：** 不涉及。 |
   
**状态码： 400**
表8响应Body参数 
| 参数         | 参数类型   | 描述                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|
| error_code | String | **参数解释：** 调用失败时的错误码，具体请参见[错误码](https://support.huaweicloud.com/api-imagesearch/imagesearch_02_0043.html)。 调用成功时无此字段。 **取值范围：** 不涉及。 |
| error_msg  | String | **参数解释：** 调用失败时的错误信息。 调用成功时无此字段。 **取值范围：** 不涉及。                                                                                      |
   
#### 请求示例
添加商品图像数据，使用图像BASE64编码
```
POST https://{endpoint}/v2/{project_id}/mms/{service_name}/data/add
{
  "item_id" : "electronics_01",
  "image_base64" : "/9j/4AAQSkZJRgABAgEASABIAAD/4RFZRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAA...",
  "desc" : "天地纵横自然",
  "custom_tags" : {
    "brand" : "HUAWEI"
  },
  "custom_num_tags" : {
    "year" : 2022
  }
}
```
#### 响应示例
**状态码： 200**
响应成功示例
```
{
  "result" : "success",
  "data" : {
    "image_info" : {
      "objects" : [ {
        "box" : "26,223,771,704",
        "category" : 11,
        "category_name" : "electronics"
      } ]
    }
  }
}
```
**状态码： 400**
响应失败示例
```
{
  "error_code" : "MMS.0003",
  "error_msg" : "Invalid parameter: item_id"
}
```
#### 状态码
| 状态码 | 描述      |
|:---|:---|
| 200 | 成功响应示例。 |
| 400 | 失败响应示例。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-imagesearch/imagesearch_02_0043.html)。
