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.
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 a project ID, see "Appendix" > "Obtaining a Project ID" in this document.  | 
     
| 
        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
{
  "mode" : "DEVELOPER",
  "scheme" : "HTTPS",
  "method" : "GET",
  "path" : "/test/mock"
}
 Example Responses
Status code: 200
OK
{
  "request" : "GET /test/mock HTTP/1.1\r\nHost: c77f5e81d9cb4424bf704ef2b0ac7600.apic.****.com\r\nUser-Agent: APIGatewayDebugClient/1.0\r\nX-Apig-Mode: debug\r\n\r\n",
  "response" : "HTTP/1.1 200 OK\r\nTransfer-Encoding: chunked\r\nConnection: keep-alive\r\nContent-Type: application/json\r\nDate: Mon, 03 Aug 2020 02:51:22 GMT\r\nServer: api-gateway\r\nX-Apig-Latency: 0\r\nX-Apig-Ratelimit-Api: remain:99,limit:100,time:1 minute\r\nX-Apig-Ratelimit-Api-Allenv: remain:14999,limit:15000,time:1 second\r\nX-Request-Id: d4ec6e33148bdeffe8f55b43472d1251\r\n\r\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.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.