Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2023-03-29 GMT+08:00

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}

Tabla 1 Parámetros de path

Parámetro

Obligatorio

Tipo

Descripción

project_id

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

String

Gateway ID, que se puede obtener de la información de gateway en la consola APIG.

api_id

String

ID de API.

Parámetros de solicitud

Tabla 2 Parámetros de encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

X-Auth-Token

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.

Tabla 3 Parámetros de body de solicitud

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:

  • Contiene letras, dígitos, puntos (.) o guiones (-).

  • Comienza con una letra, con un máximo de 32 bytes.

  • Insensible a mayúsculas y minúsculas y no puede comenzar con X-Apig- o X-Sdk-.

  • Insensible a mayúsculas y minúsculas y no puede ser X-Stage.

  • Insensible a mayúsculas y minúsculas y no puede ser X-Auth-Token o Autorización cuando el modo se establece en MARKET o CONSUMER.

NOTA:

Cada nombre de encabezado se normaliza antes de su uso. Por ejemplo, x-MY-hEaDer se normaliza como X-My-Header.

method

String

Método de solicitud de API.

Valores de enumeración:

  • GET

  • POST

  • PUT

  • DELETE

  • HEAD

  • PATCH

  • OPTIONS

mode

String

Modo de depuración:

  • DEVELOPER: Depura las definiciones de una API que no se ha publicado.

  • CONSUMER: Depurar las definiciones de una API que se ha publicado en un entorno específico.

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

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:

  • Contiene letras, dígitos, puntos (.), guiones (-) o guiones bajos (_).

  • Comienza con una letra, con un máximo de 32 bytes.

  • Insensible a mayúsculas y minúsculas y no puede comenzar con X-Apig- o X-Sdk-.

  • Insensible a mayúsculas y minúsculas y no puede ser X-Stage.

scheme

String

Solicitud de protocolo.

  • HTTP

  • HTTPS

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:

  • DEVELOPER: Se usará el nombre de subdominio del grupo API.

  • MARKET: Este parámetro no se utiliza actualmente.

  • CONSUMER: Se usará el nombre de subdominio del grupo API.

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:

  • CONSUMER RELEASE

Parámetros de respuesta

Código de estado: 200

Tabla 4 Parámetros de body de respuesta

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

Tabla 5 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 401

Tabla 6 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 403

Tabla 7 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 404

Tabla 8 Parámetros de body de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Código de estado: 500

Tabla 9 Parámetros de body de respuesta

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.