更新时间:2023-12-14 GMT+08:00

调试API

功能介绍

调试一个API在指定运行环境下的定义,接口调用者需要具有操作该API的权限。

调用方法

请参见如何调用API

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/apis/debug/{api_id}

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方式请参见获取项目ID

instance_id

String

实例ID,在API网关控制台的“实例信息”中获取。

api_id

String

API的编号

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表3 请求Body参数

参数

是否必选

参数类型

描述

body

String

请求消息体,最长2097152字节

header

Map<String,Array<String>>

头域参数,每个参数值为字符串数组,每个参数名称有如下约束:

  • 英文字母、数字、点、中连线组成
  • 必须以英文字母开头,最长32字节
  • 不支持以"X-Apig-"或"X-Sdk-"开头,不区分大小写
  • 不支持取值为"X-Stage",不区分大小写
  • mode为MARKET或CONSUMER时,不支持取值为"X-Auth-Token"和"Authorization",不区分大小写
说明:

头域名称在使用前会被规范化,如:"x-MY-hEaDer"会被规范化为"X-My-Header"

method

String

API的请求方法

枚举值:

  • GET
  • POST
  • PUT
  • DELETE
  • HEAD
  • PATCH
  • OPTIONS

mode

String

调试模式

  • DEVELOPER 调试尚未发布的API定义
  • MARKET 暂未使用
  • CONSUMER 调试指定运行环境下的API定义
说明:

DEVELOPER模式,接口调用者必须是API拥有者。

CONSUMER模式,接口调用者必须有API在指定环境上的授权信息或是API拥有者。

path

String

API的请求路径,需以"/"开头,最大长度1024

说明:

须符合路径规范,百分号编码格式可被正确解码

query

Map<String,Array<String>>

查询参数,每个参数值为字符串数组,每个参数名称有如下约束:

  • 英文字母、数字、点、下划线、中连线组成
  • 必须以英文字母开头,最长32字节
  • 不支持以"X-Apig-"或"X-Sdk-"开头,不区分大小写
  • 不支持取值为"X-Stage",不区分大小写

scheme

String

API的请求协议

  • HTTP
  • HTTPS

app_key

String

调试请求使用的APP的key

app_secret

String

调试请求使用的APP的密钥

domain

String

API的访问域名,未提供时根据mode的取值使用如下默认值:

  • DEVELOPER API分组的子域名
  • MARKET 暂未使用
  • CONSUMER API分组的子域名

stage

String

调试请求指定的运行环境,仅在mode为CONSUMER时有效,未提供时有如下默认值:

  • CONSUMER RELEASE

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

request

String

调试请求报文内容

response

String

调试响应报文内容,响应消息体最大支持2097152字节,超过部分会被截断

说明:

响应消息体超过限制长度时,超过部分会被截断,并追加"[TRUNCATED]"信息。

latency

Integer

调试耗时,单位:毫秒

log

String

调试过程日志

状态码: 400

表5 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 401

表6 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 403

表7 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 404

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码

error_msg

String

错误描述

状态码: 500

表9 响应Body参数

参数

参数类型

描述

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

错误码

请参见错误码