绑定签名密钥
功能介绍
签名密钥创建后,需要绑定到API才能生效。
将签名密钥绑定到API后,则API网关请求后端服务时就会使用这个签名密钥进行加密签名,后端服务可以校验这个签名来验证请求来源。
将指定的签名密钥绑定到一个或多个已发布的API上。同一个API发布到不同的环境可以绑定不同的签名密钥;一个API在发布到特定环境后只能绑定一个签名密钥。
调用方法
请参见如何调用API。
URI
POST /v2/{project_id}/apigw/instances/{instance_id}/sign-bindings
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID,获取方式请参见获取项目ID。 |
instance_id |
是 |
String |
实例ID,在API网关控制台的“实例信息”中获取。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
sign_id |
是 |
String |
签名密钥编号 |
publish_ids |
是 |
Array of strings |
API的发布记录编号 |
响应参数
状态码: 201
参数 |
参数类型 |
描述 |
---|---|---|
bindings |
Array of SignApiBindingInfo objects |
API与签名密钥的绑定关系列表 |
参数 |
参数类型 |
描述 |
---|---|---|
publish_id |
String |
API的发布编号 |
api_id |
String |
API编号 |
group_name |
String |
API所属分组的名称 |
binding_time |
String |
绑定时间 |
env_id |
String |
API所属环境的编号 |
env_name |
String |
API所属环境的名称 |
api_type |
Integer |
API类型 |
api_name |
String |
API名称 |
id |
String |
绑定关系的ID |
api_remark |
String |
API描述 |
sign_id |
String |
签名密钥的编号 |
sign_name |
String |
签名密钥的名称。支持汉字,英文,数字,下划线,且只能以英文和汉字开头,3 ~ 64字符。
说明:
中文字符必须为UTF-8或者unicode编码。 |
req_method |
String |
API请求方法 枚举值:
|
sign_key |
String |
签名密钥的key。
|
sign_secret |
String |
签名密钥的密钥。
|
sign_type |
String |
签名密钥类型:
basic类型需要实例升级到对应版本,若不存在可联系技术工程师升级。 public_key类型开启实例配置public_key才可使用,实例特性配置详情请参考“附录 > 实例支持的APIG特性”,如确认实例不存在public_key配置可联系技术工程师开启。 aes类型需要实例升级到对应版本,若不存在可联系技术工程师升级。 枚举值:
|
状态码: 400
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
状态码: 401
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
状态码: 403
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
状态码: 404
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
状态码: 500
参数 |
参数类型 |
描述 |
---|---|---|
error_code |
String |
错误码 |
error_msg |
String |
错误描述 |
请求示例
将指定的签名密钥绑定到已发布的API上
{ "sign_id" : "0b0e8f456b8742218af75f945307173c", "publish_ids" : [ "40e7162dc6b94bbbbb1a60d2a24b1b0c" ] }
响应示例
状态码: 201
Created
{ "bindings" : [ { "api_id" : "5f918d104dc84480a75166ba99efff21", "sign_secret" : "dc0************2b3", "group_name" : "api_group_001", "sign_id" : "0b0e8f456b8742218af75f945307173c", "sign_key" : "a071a20d460a4f639a636c3d7e3d8163", "binding_time" : "2020-08-03T04:00:11.638167852Z", "env_id" : "DEFAULT_ENVIRONMENT_RELEASE_ID", "env_name" : "RELEASE", "sign_name" : "signature_demo", "api_type" : 1, "api_name" : "Api_http", "id" : "25082bd52f74442bb1d273993d567938", "api_remark" : "Web backend API" } ] }
状态码: 400
Bad Request
{ "error_code" : "APIG.2012", "error_msg" : "Invalid parameter value,parameterName:sign_id. Please refer to the support documentation" }
状态码: 401
Unauthorized
{ "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" }
状态码: 403
Forbidden
{ "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" }
状态码: 404
Not Found
{ "error_code" : "APIG.3017", "error_msg" : "Signature key 0b0e8f456b8742218af75f945307173c does not exist" }
状态码: 500
Internal Server Error
{ "error_code" : "APIG.9999", "error_msg" : "System error" }
状态码
状态码 |
描述 |
---|---|
201 |
Created |
400 |
Bad Request |
401 |
Unauthorized |
403 |
Forbidden |
404 |
Not Found |
500 |
Internal Server Error |
错误码
请参见错误码。