Debugging an API
Function
This API is used to debug an API in a specified environment. The API caller must have the permissions required for accessing this API.
Calling Method
For details, see Calling APIs.
URI
POST /v2/{project_id}/apigw/instances/{instance_id}/apis/debug/{api_id}
Parameter | Mandatory | Type | Description |
---|---|---|---|
project_id | Yes | String | Project ID. For details about how to obtain it, see Obtaining a Project ID. |
instance_id | Yes | String | Gateway ID, which can be obtained from the gateway information on the APIG console. |
api_id | Yes | String | API ID. |
Request Parameters
Parameter | Mandatory | Type | Description |
---|---|---|---|
X-Auth-Token | Yes | String | User token. It can be obtained by calling the IAM API used to obtain a user token. The value of X-Subject-Token in the response header is a token. |
Parameter | Mandatory | Type | Description |
---|---|---|---|
body | No | String | Message body, with a maximum of 2,097,152 bytes. |
header | No | Map<String,Array<String>> | Header parameters, with each value being a character string array. Each parameter name must meet the following requirements:
NOTE: Each header name is normalized before use. For example, x-MY-hEaDer is normalized as X-My-Header. |
method | Yes | String | API request method. Enumeration values:
|
mode | Yes | String | Debugging mode:
NOTE: In DEVELOPER mode, the API caller must be the API provider. In CONSUMER mode, the API caller must be the API provider or has been authorized to access the API in a specific environment. |
path | Yes | String | Request path of the API, starting with a slash (/) and containing up to 1024 characters. NOTE: The request path must meet the requirements so that it can be correctly decoded after percent-encoding. |
query | No | Map<String,Array<String>> | Query strings, with each value being a character string array. Each parameter name must meet the following requirements:
|
scheme | Yes | String | Request protocol.
|
app_key | No | String | AppKey used in the debugging request. |
app_secret | No | String | AppSecret used in the debugging request. |
domain | No | String | Access domain name of the API. If no value is specified, one of the following default values will be used based on the mode:
|
stage | No | String | Running environment specified by the debugging request. This parameter is valid only when mode is set to CONSUMER. If this parameter is not specified, the following default value is used:
|
Response Parameters
Status code: 200
Parameter | Type | Description |
---|---|---|
request | String | Body of the debugging request. |
response | String | Body of the debugging response, with a maximum of 2,097,152 bytes. Any content beyond this threshold will be truncated. NOTE: Any content beyond the length limit will be truncated, and text [TRUNCATED] will be added to the response body. |
latency | Integer | Debugging duration in milliseconds. |
log | String | Debugging logs. |
Status code: 400
Parameter | Type | Description |
---|---|---|
error_code | String | Error code. |
error_msg | String | Error message. |
Status code: 401
Parameter | Type | Description |
---|---|---|
error_code | String | Error code. |
error_msg | String | Error message. |
Status code: 403
Parameter | Type | Description |
---|---|---|
error_code | String | Error code. |
error_msg | String | Error message. |
Status code: 404
Parameter | Type | Description |
---|---|---|
error_code | String | Error code. |
error_msg | String | Error message. |
Status code: 500
Parameter | Type | Description |
---|---|---|
error_code | String | Error code. |
error_msg | String | Error message. |
Example Requests
Debugging an API
{"mode" : "DEVELOPER","scheme" : "HTTPS","method" : "GET","path" : "/test/mock"}
Example Responses
Status code: 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" : ""}
Status code: 400
Bad Request
{"error_code" : "APIG.2011","error_msg" : "Invalid parameter value,parameterName:mode. Please refer to the support documentation"}
Status code: 401
Unauthorized
{"error_code" : "APIG.1002","error_msg" : "Incorrect token or token resolution failed"}
Status code: 403
Forbidden
{"error_code" : "APIG.1005","error_msg" : "No permissions to request this method"}
Status code: 404
Not Found
{"error_code" : "APIG.3002","error_msg" : "API 3a955b791bd24b1c9cd94c745f8d1aad does not exist"}
Status code: 500
Internal Server Error
{"error_code" : "APIG.9999","error_msg" : "System error"}
Status Codes
Status Code | Description |
---|---|
200 | OK |
400 | Bad Request |
401 | Unauthorized |
403 | Forbidden |
404 | Not Found |
500 | Internal Server Error |
Error Codes
See Error Codes.
- Calling Method
- URI