Depuración de una API
Función
Esta API se utiliza para depurar una API en un entorno especificado. El llamante de la API debe tener los permisos necesarios para acceder a esta API.
URI
POST /v2/{project_id}/apigw/instances/{instance_id}/apis/debug/{api_id}
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
project_id |
Sí |
String |
ID del proyecto. Para obtener detalles sobre cómo obtener un ID de proyecto, consulte "Apéndice" > "Obtención de un ID de proyecto" en este documento. |
instance_id |
Sí |
String |
Gateway ID, que se puede obtener de la información de gateway en la consola APIG. |
api_id |
Sí |
String |
ID de API. |
Parámetros de solicitud
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
X-Auth-Token |
Sí |
String |
Token de usuario. Se puede obtener llamando a la API de IAM utilizada para obtener un token de usuario. El valor de X-Subject-Token en el encabezado de respuesta es un token. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
body |
No |
String |
Cuerpo del mensaje, con un máximo de 2,097,152 bytes. |
header |
No |
Map<String,String> |
Parámetros de encabezado, siendo cada valor una matriz de cadenas de caracteres. Cada nombre de parámetro debe cumplir los siguientes requisitos:
NOTA:
Cada nombre de encabezado se normaliza antes de su uso. Por ejemplo, x-MY-hEaDer se normaliza como X-My-Header. |
method |
Sí |
String |
Método de solicitud de API. Valores de enumeración:
|
mode |
Sí |
String |
Modo de depuración:
NOTA:
En el modo DEVELOPER, el llamante de la API debe ser el proveedor de la API. En el modo CONSUMER, el llamante de la API debe ser el proveedor de la API o ha sido autorizado para acceder a la API en un entorno específico. |
path |
Sí |
String |
Ruta de solicitud de la API, comenzando con una barra diagonal (/) y que contiene hasta 1024 caracteres.
NOTA:
La ruta de solicitud debe cumplir los requisitos para que pueda decodificarse correctamente después de la codificación porcentual. |
query |
No |
Map<String,String> |
Cadenas de consulta, siendo cada valor una matriz de cadenas de caracteres. Cada nombre de parámetro debe cumplir los siguientes requisitos:
|
scheme |
Sí |
String |
Solicitud de protocolo.
|
app_key |
No |
String |
AppKey utilizado en la solicitud de depuración. |
app_secret |
No |
String |
AppSecret utilizado en la solicitud de depuración. |
domain |
No |
String |
Nombre de dominio de acceso de la API. Si no se especifica ningún valor, se utilizará uno de los siguientes valores predeterminados según el modo:
|
stage |
No |
String |
Entorno de ejecución especificado por la solicitud de depuración. Este parámetro sólo es válido cuando el modo se establece en CONSUMER. Si no se especifica este parámetro, se utiliza el siguiente valor predeterminado:
|
Parámetros de respuesta
Código de estado: 200
Parámetro |
Tipo |
Descripción |
---|---|---|
request |
String |
Cuerpo de la solicitud de depuración. |
response |
String |
Cuerpo de la respuesta de depuración, con un máximo de 2,097,152 bytes. Cualquier contenido que supere este umbral se truncará.
NOTA:
Cualquier contenido que supere el límite de longitud se truncará y el texto [TRUNCATED] se añadirá al cuerpo de la respuesta. |
latency |
Integer |
Duración de la depuración en milisegundos. |
log |
String |
Logs de depuración. |
Código de estado: 400
Parámetro |
Tipo |
Descripción |
---|---|---|
error_code |
String |
Código de error. |
error_msg |
String |
Mensaje de error. |
Código de estado: 401
Parámetro |
Tipo |
Descripción |
---|---|---|
error_code |
String |
Código de error. |
error_msg |
String |
Mensaje de error. |
Código de estado: 403
Parámetro |
Tipo |
Descripción |
---|---|---|
error_code |
String |
Código de error. |
error_msg |
String |
Mensaje de error. |
Código de estado: 404
Parámetro |
Tipo |
Descripción |
---|---|---|
error_code |
String |
Código de error. |
error_msg |
String |
Mensaje de error. |
Código de estado: 500
Parámetro |
Tipo |
Descripción |
---|---|---|
error_code |
String |
Código de error. |
error_msg |
String |
Mensaje de error. |
Solicitudes de ejemplo
{ "mode" : "DEVELOPER", "scheme" : "HTTPS", "method" : "GET", "path" : "/test/mock" }
Ejemplo de respuestas
Código de estado: 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" : "" }
Código de estado: 400
Bad Request
{ "error_code" : "APIG.2011", "error_msg" : "Invalid parameter value,parameterName:mode. Please refer to the support documentation" }
Código de estado: 401
Unauthorized
{ "error_code" : "APIG.1002", "error_msg" : "Incorrect token or token resolution failed" }
Código de estado: 403
Forbidden
{ "error_code" : "APIG.1005", "error_msg" : "No permissions to request this method" }
Código de estado: 404
Not Found
{ "error_code" : "APIG.3002", "error_msg" : "API 3a955b791bd24b1c9cd94c745f8d1aad does not exist" }
Código de estado: 500
Internal Server Error
{ "error_code" : "APIG.9999", "error_msg" : "System error" }
Códigos de estado
Código de estado |
Descripción |
---|---|
200 |
OK |
400 |
Bad Request |
401 |
Unauthorized |
403 |
Forbidden |
404 |
Not Found |
500 |
Internal Server Error |
Códigos de error
Consulte Códigos de error.