调试API - DebugApiV2
功能介绍
调试一个API在指定运行环境下的定义,接口调用者需要具有操作该API的权限。
调用方法
请参见如何调用API。
授权信息
账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权,具体权限要求请参见权限和授权项。
- 如果使用身份策略授权,需具备如下身份策略权限。
授权项
访问级别
资源类型(*为必须)
条件键
别名
依赖的授权项
apig:api:debug
Write
instance *
g:ResourceTag/<tag-key>
- apig:apis:debug
- apig:instance:get
- apig:apiGroup:get
URI
POST /v2/{project_id}/apigw/instances/{instance_id}/apis/debug/{api_id}
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
project_id | 是 | String | 项目ID,获取方式请参见获取项目ID。 |
instance_id | 是 | String | 实例ID,在API网关控制台的“实例信息”中获取。 |
api_id | 是 | String | API的编号 |
请求参数
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
X-Auth-Token | 是 | String | 用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
body | 否 | String | 请求消息体,最长2097152字节 |
header | 否 | Map<String,Array<String>> | 头域参数,每个参数值为字符串数组,每个参数名称有如下约束:
说明: 头域名称在使用前会被规范化,如:"x-MY-hEaDer"会被规范化为"X-My-Header" |
method | 是 | String | API的请求方法 |
mode | 是 | String | 调试模式
说明: DEVELOPER模式,接口调用者必须是API拥有者。 MARKET模式,接口调用者必须是API购买者或拥有者。 CONSUMER模式,接口调用者必须有API在指定环境上的授权信息或是API拥有者。 |
path | 是 | String | API的请求路径,需以"/"开头,最大长度1024 说明: 须符合路径规范,百分号编码格式可被正确解码 |
query | 否 | Map<String,Array<String>> | 查询参数,每个参数值为字符串数组,每个参数名称有如下约束:
|
scheme | 是 | String | API的请求协议
|
app_key | 否 | String | 调试请求使用的APP凭据的key |
app_secret | 否 | String | 调试请求使用的APP凭据的密钥 |
domain | 否 | String | API的访问域名,如果使用自定义入方向端口的特性时,需要带上端口信息,用冒号分隔,例如test.com:8080。 API的访问域名未提供时根据mode的取值使用如下默认值:
|
stage | 否 | String | 调试请求指定的运行环境,仅在mode为CONSUMER时有效,未提供时有如下默认值:
|
响应参数
状态码:200
参数 | 参数类型 | 描述 |
|---|---|---|
request | String | 调试请求报文内容 |
response | String | 调试响应报文内容,响应消息体最大支持2097152字节,超过部分会被截断 说明: 响应消息体超过限制长度时,超过部分会被截断,并追加"[TRUNCATED]"信息。 |
latency | Integer | 调试耗时,单位:毫秒 |
log | String | 调试过程日志 |
状态码: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进行调试
{
"mode" : "DEVELOPER",
"scheme" : "HTTPS",
"method" : "GET",
"path" : "/test/mock"
} 响应示例
状态码:200
OK
{
"request" : "GET /test/mock HTTP/1.1\nHost: c77f5e81d9cb4424bf704ef2b0ac7600.apic.****.com\nUser-Agent: APIGatewayDebugClient/1.0\nX-Apig-Mode: debug\n\n",
"response" : "HTTP/1.1 200 OK\nTransfer-Encoding: chunked\nConnection: keep-alive\nContent-Type: application/json\nDate: Mon, 03 Aug 2020 02:51:22 GMT\nServer: api-gateway\nX-Apig-Latency: 0\nX-Apig-Ratelimit-Api: remain:99,limit:100,time:1 minute\nX-Apig-Ratelimit-Api-Allenv: remain:14999,limit:15000,time:1 second\nX-Request-Id: d4ec6e33148bdeffe8f55b43472d1251\n\nmock success",
"latency" : 5,
"log" : ""
} 状态码:400
Bad Request
{
"error_code" : "APIG.2011",
"error_msg" : "Invalid parameter value,parameterName:mode. 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.3002",
"error_msg" : "API 3a955b791bd24b1c9cd94c745f8d1aad does not exist"
} 状态码:500
Internal Server Error
{
"error_code" : "APIG.9999",
"error_msg" : "System error"
} 状态码
状态码 | 描述 |
|---|---|
200 | OK |
400 | Bad Request |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
500 | Internal Server Error |
错误码
请参见错误码。

