
# 绑定签名密钥
#### 功能介绍
签名密钥创建后，需要绑定到API才能生效。将签名密钥绑定到API后，则API网关请求后端服务时就会使用这个签名密钥进行加密签名，后端服务可以校验这个签名来验证请求来源。
将指定的签名密钥绑定到一个或多个已发布的API上。
同一个API发布到不同的环境可以绑定不同的签名密钥；一个API在发布到特定环境后只能绑定一个签名密钥。
#### URI
HTTP/HTTPS请求方法以及URI如下表所示。
表1HTTP/HTTPS请求方法 
| 请求方法 | URI                       |
|:---|:---|
| POST | /v1.0/apigw/sign-bindings |
   
#### 请求消息
表2参数说明 
| 名称          | 是否必选 | 类型               | 说明         |
|:---|:---|:---|:---|
| sign_id     | 是    | String           | 签名密钥编号     |
| publish_ids | 是    | Array of strings | API的发布记录编号 |
   
请求参数样例：
```
{
  "sign_id": "3a793b65a9034bdfae08924f149bfb4a",
  "publish_ids": [
    "374a6d5a-20c7-4ea1-82e1-19fce4556956",
    "65e6fe53-1ac3-4481-ba36-9f0bc6f22057"
  ]
}
```
#### 响应消息
表3参数说明 
| 名称 | 类型     | 说明              |
|:---|:---|:---|
| -  | 字典数据类型 | API与签名密钥的绑定关系列表 |
   
表4字典类型响应参数 
| 名称           | 类型        | 说明         |
|:---|:---|:---|
| id           | String    | 绑定关系的ID    |
| api_id       | String    | API编号      |
| api_name     | String    | API名称      |
| api_remark   | String    | API描述      |
| group_name   | String    | API所属分组的名称 |
| api_type     | Integer   | API类型      |
| sign_id      | String    | 签名密钥的编号    |
| sign_name    | String    | 签名密钥的名称    |
| sign_key     | String    | 签名密钥的key   |
| sign_secret  | String    | 签名密钥的密钥    |
| env_id       | String    | API所属环境的编号 |
| env_name     | String    | API所属环境的名称 |
| binding_time | Timestamp | 绑定时间       |
| publish_id   | String    | API发布ID    |
   
响应消息样例：
```
[
  {
    "id": "d8426fb090e442c4a56a35e451bea085",
    "api_id": "3c6769c6-ec61-4b45-b478-c60310dbaa1b",
    "api_name": "bbb",
    "api_remark": "",
    "group_name": "asd",
    "api_type": 1,
    "sign_id": "3a793b65a9034bdfae08924f149bfb4a",
    "sign_name": "signature01",
    "sign_key": "abcd_1234",
    "sign_secret": "******",
    "env_id": "DEFAULT_ENVIRONMENT_RELEASE_ID",
    "env_name": "RELEASE",
    "binding_time": "2018-02-07T03:17:26.396039456Z",
    "publish_id": "23234202f5834ab69113fc1b790b6bed"
  },
  {
    "id": "97952732e6d7452d99de02db99acce27",
    "api_id": "d85c502a-f916-47e8-bba0-50537a2d1af2",
    "api_name": "aaa",
    "api_remark": "",
    "group_name": "asd",
    "api_type": 1,
    "sign_id": "3a793b65a9034bdfae08924f149bfb4a",
    "sign_name": "signature01",
    "sign_key": "abcd_1234",
    "sign_secret": "******",
    "env_id": "DEFAULT_ENVIRONMENT_RELEASE_ID",
    "env_name": "RELEASE",
    "binding_time": "2018-02-07T03:17:26.39803282Z",
    "publish_id": "6581f68efddc4ff0815e156ec6ecfb52"
  }
]
```
#### 状态码
表5返回消息说明 
| 状态码 | 说明                    |
|:---|:---|
| 201 | Created               |
| 400 | Bad Request           |
| 401 | Unauthorized          |
| 403 | Forbidden             |
| 404 | Not Found             |
| 500 | Server Internal Error |
   
