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.
Centro de ayuda/ API Gateway/ Guía del usuario/ API Opening/ Gestión de grupo API/ Adición de una respuesta de puerta de enlace
Actualización más reciente 2023-11-30 GMT+08:00

Adición de una respuesta de puerta de enlace

Escenario

Se muestra una respuesta de gateway si API Gateway no puede procesar una solicitud de API. API Gateway proporciona un conjunto de respuestas predeterminadas y también le permite crear respuestas de gateway con códigos de estado y contenido personalizados, en la página API Groups. El contenido de la respuesta debe estar en formato JSON.

Por ejemplo, el contenido de una respuesta de puerta de enlace predeterminada es el siguiente:

{"error_code": "$context.error.code", "error_msg": "$context.error.message", "request_id": "$context.requestId"}

Puede agregar una respuesta con el siguiente contenido:

{"errorcode": "$context.error.code", "errormsg": "$context.error.message", "requestid": "$context.requestId","apiId":"$context.apiId"}

Puede agregar más campos o eliminar campos existentes del cuerpo de JSON.

  • Las respuestas predeterminadas de la puerta de enlace proporcionadas por API Gateway se pueden editar.
  • Puede crear respuestas de puerta de enlace y configurar diferentes respuestas para las API en el mismo grupo de API.
  • No se puede cambiar el tipo de respuesta de puerta de enlace. Para más detalles, consulte Tipos de respuesta.
  • Las respuestas de la puerta de enlace pueden contener las variables de contexto de la puerta de enlace de la API (comenzando con $context). Para más detalles, consulte Variables de contexto de API Gateway.

Prerrequisitos

Ha creado un grupo de API.

Procedimiento

  1. Inicie sesión en la consola de gestión.
  2. Haga clic en en la esquina superior izquierda y seleccione una región.
  3. Haz clic en en la esquina superior izquierda y elige API Gateway.
  4. Elija un tipo de puerta de enlace en el panel de navegación.

    • Shared Gateway: Puede crear y gestionar API de inmediato. Se le facturará en función del número de llamadas API.
    • Dedicated Gateways: puede crear y gestionar API después de comprar una puerta de enlace. Se le facturará en función de la duración del uso del gateway.

  5. En el panel de navegación, elija API Publishing > API Groups.
  6. Busque el grupo de API para el que desea crear o modificar una respuesta de puerta de enlace y haga clic en el nombre del grupo para ir a la página de detalles del grupo de API.
  7. Haga clic en la pestaña Gateway Responses y cree una respuesta de puerta de enlace.

    • Para editar una respuesta, haga clic en el botón Edit en la esquina superior derecha y modifique el código de estado y el contenido de la respuesta.
    • Sólo puede modificar el código de estado y el contenido de una respuesta de puerta de enlace predeterminada o personalizada, y no puede cambiar el tipo de respuesta.
    • La información de error y otros detalles de respuesta se pueden obtener usando variables. Para obtener más información sobre las variables admitidas, consulte Tabla 2.

Tipos de respuesta

Tabla 1 enumera los tipos de respuesta admitidos por API Gateway. Puede definir códigos de estado de las respuestas para cumplir con sus requisitos de servicio.

Tabla 1 Tipos de respuesta de error compatibles con API Gateway

Nombre de la respuesta

Código de estado predeterminado

Descripción

Access Denied

403

Acceso denegado. Por ejemplo, se activa la política de control de acceso o se detecta un ataque.

Authorizer Configuration Error

500

Se ha producido un error de autorizador personalizado. Por ejemplo, la comunicación falló o se devolvió una respuesta de error.

Authorizer Failed

500

Error en la autorización personalizada.

Incorrect Identity Source

401

Falta la fuente de identidad del autorizador personalizado o no es válida.

Authentication Failure

401

Error en la autenticación de IAM o de la aplicación.

Identity Source Not Found

401

No se ha especificado ningún origen de identidad.

Backend Timeout

504

Se agotó el tiempo de espera de la comunicación con el servicio backend.

Backend Unavailable

502

El servicio de backend no está disponible debido a un error de comunicación.

Default 4XX

-

Ocurrió otro error 4XX.

Default 5XX

-

Ocurrió otro error 5XX.

No API Found

404

No se encuentra ninguna API.

Incorrect Request Parameters

400

Los parámetros de solicitud son incorrectos o el método HTTP no es compatible.

Request Throttled

429

La solicitud fue rechazada debido a la limitación de la solicitud.

Unauthorized App

401

La aplicación que está usando no tiene autorización para llamar a la API.

Variables de contexto de API Gateway

Tabla 2 Variables que se pueden usar en el cuerpo del mensaje de respuesta

Variable

Descripción

$context.apiId

ID de API.

$context.appId

ID de la aplicación que llama a la API.

$context.requestId

ID de solicitud generado cuando se llama a la API.

$context.stage

Entorno de implementación en el que se llama a la API.

$context.sourceIp

Dirección IP de origen del llamador API.

$context.authorizer.frontend.property

Valores de los pares de valor-atributo especificados asignados al contexto en la respuesta del autorizador personalizado de frontend

$context.authorizer.backend.property

Valores de los pares de valor-atributo especificados asignados al contexto en la respuesta del autorizador personalizado de back-end

$context.error.message

Mensaje de error.

$context.error.code

Código de error.

$context.error.type

Tipo de error.