
# 批量发布或下线API
#### 功能介绍
将多个API发布到一个指定的环境，或将多个API从指定的环境下线。
#### URI
HTTP/HTTPS请求方法以及URI如下表所示。
表1HTTP/HTTPS请求方法以及URI 
| 请求方法 | URI                                 |
|:---|:---|
| POST | /v1.0/apigw/apis/publish\[?action\] |
   
URI中的参数说明如下表所示。
表2参数说明 
| 名称     | 是否必选 | 类型     | 说明                                                                         |
|:---|:---|:---|:---|
| action | 否    | String | online：发布 offline：下线 |
   
#### 请求消息
表3参数说明 
| 参数     | 是否必选 | 类型           | 说明                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| apis   | 是    | String Array | 需要发布或下线的API ID列表                                                                                                                                                                                                                 |
| env_id | 是    | String       | 环境ID                                                                                                                                                                                                                             |
| remark | 否    | String       | 对本次发布的描述信息 字符长度不超过255 说明： 中文字符必须为UTF-8或者unicode编码。 |
   
请求消息样例：
```
{
"apis": ["81efcfd94b8747a0b21e8c04144a4e8c","7addcd00cfab433984b1d8bf2fe08aaa"],
"env_id": "DEFAULT_ENVIRONMENT_RELEASE_ID",
"remark": "发布到生产环境"
}
```
#### 响应消息
表4参数说明 
| 名称      | 类型    | 说明               |
|:---|:---|:---|
| success | Array | 发布或下线成功的信息       |
| failure | Array | 发布或下线失败的API及错误信息 |
   
表5success参数说明（批量发布） 
| 名称           | 类型        | 说明          |
|:---|:---|:---|
| publish_id   | String    | 发布记录的ID     |
| api_id       | String    | 发布成功的API ID |
| api_name     | String    | 发布成功的APi名称  |
| env_id       | String    | 发布环境的ID     |
| remark       | String    | 发布描述信息      |
| publish_time | Timestamp | 发布时间        |
| version_id   | String    | 版本号         |
   
表6success参数说明（批量下线） 
| 名称       | 类型     | 说明          |
|:---|:---|:---|
| api_id   | String | 下线成功的API ID |
| api_name | String | 下线成功的API名称  |
   
表7failure参数说明 
| 名称         | 类型     | 说明             |
|:---|:---|:---|
| api_id     | String | 发布或下线失败的API ID |
| api_name   | String | 发布或下线失败的API名称  |
| error_code | String | 发布或下线失败的错误码    |
| error_msg  | String | 发布或下线失败的错误信息   |
   
响应消息样例：
```
{
"success": [{
"publish_id": "5b729aa252764739be2c37ef0d66dc63",
"api_id": "7addcd00cfab433984b1d8bf2fe08aaa",
                "api_name": "testApi",
"env_id": "DEFAULT_ENVIRONMENT_RELEASE_ID",
"version_id": "3d9dcb733ba34352b0d02f85fd16b026",
"remark": "string",
"publish_time": "2018-07-26T13:18:04.1079916Z"
}],
"failure": [{
"api_id": "81efcfd94b8747a0b21e8c04144a4e8c",
"error_code": "APIG.3002",
"error_msg": "api with id 81efcfd94b8747a0b21e8c04144a4e8c not found"
}]
}
```
#### 状态码
表8返回消息说明 
| 状态码 | 说明                    |
|:---|:---|
| 200 | OK                    |
| 400 | Bad Request           |
| 401 | Unauthorized          |
| 403 | Forbidden             |
| 404 | Not Found             |
| 500 | Server Internal Error |
   
