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 2025-12-22 GMT+08:00

Creación de una política de limitación de solicitudes

Función

Después de que una API se conecte, el sistema le adjunta una política de limitación de solicitudes de forma predeterminada. El proveedor de API puede cambiar la política de limitación de solicitudes en función de las capacidades de servicio y la carga de la API.

Una política de limitación de solicitudes restringe el número máximo de veces que se puede invocar a una API dentro de un período especificado.

Método de invocación

Para obtener más información, véase invocación de API.

URI

POST /v2/{project_id}/apigw/instances/{instance_id}/throttles

Tabla 1 Parámetros de ruta

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

ID del proyecto. Para obtener más información sobre cómo obtenerlo, véase Obtención de un ID de proyecto.

instance_id

String

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

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 invocando 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 del cuerpo de solicitud

Parámetro

Obligatorio

Tipo

Descripción

app_call_limits

No

Integer

Número máximo de veces que una aplicación puede acceder a la API dentro del mismo período. El valor de este parámetro no puede exceder el límite de invocaciones de usuario. El valor máximo es de 2,147,483,647. Ingrese un número entero positivo.

name

String

Nombre de la política de limitación de solicitud. Puede contener de 3 a 64 caracteres, comenzando con una letra. Solo se permiten letras, dígitos y guiones bajos (_).

time_unit

String

Unidad de tiempo para limitar el número de invocaciones de API.

remark

No

String

Descripción de la política de limitación de solicitudes, que puede contener un máximo de 255 caracteres.

api_call_limits

Integer

Número máximo de veces que se puede acceder a una API dentro de un período especificado. El valor de este parámetro no puede exceder el límite predeterminado de 200 TPS. Puede cambiar el límite predeterminado para cumplir con los requisitos de servicio. El valor máximo es de 2,147,483,647. Ingrese un número entero positivo.

type

No

Integer

Tipo de la política de limitación de solicitud.

  • 1: basado en API, limitando el número máximo de veces que se puede invocar a una única API vinculada a la política dentro del período especificado.

  • 2: API compartida, limitando el número máximo de veces que se pueden invocar a todas las API vinculadas a la política dentro del período especificado.

enable_adaptive_control

No

String

Indica si se activa la limitación dinámica de solicitudes.

  • TRUE

  • FALSE

Actualmente, este parámetro no es compatible.

user_call_limits

No

Integer

Número máximo de veces que un usuario puede acceder a la API dentro del mismo período. El valor de este parámetro no puede exceder el valor máximo. Solicitudes de API. El valor máximo es de 2,147,483,647. Ingrese un número entero positivo.

time_interval

Integer

Período de tiempo para limitar el número de invocaciones a la API. Este parámetro se aplica con cada límite de invocaciones a la API. El valor máximo es de 2,147,483,647. Ingrese un número entero positivo.

ip_call_limits

No

Integer

Número máximo de veces que se puede acceder a la API mediante una dirección IP dentro del mismo período. El valor de este parámetro no puede exceder el límite de invocaciones de API. El valor máximo es de 2,147,483,647. Ingrese un número entero positivo.

Parámetros de respuesta

Código de estado: 201

Tabla 4 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

app_call_limits

Integer

Número máximo de veces que una aplicación puede acceder a la API dentro del mismo período. El valor de este parámetro no puede exceder el límite de invocaciones de usuario. El valor máximo es de 2,147,483,647. Ingrese un número entero positivo.

name

String

Nombre de la política de limitación de solicitud. Puede contener de 3 a 64 caracteres, comenzando con una letra. Solo se permiten letras, dígitos y guiones bajos (_).

time_unit

String

Unidad de tiempo para limitar el número de invocaciones de API.

remark

String

Descripción de la política de limitación de solicitudes, que puede contener un máximo de 255 caracteres.

api_call_limits

Integer

Número máximo de veces que se puede acceder a una API dentro de un período especificado. El valor de este parámetro no puede exceder el límite predeterminado de 200 TPS. Puede cambiar el límite predeterminado para cumplir con los requisitos de servicio. El valor máximo es de 2,147,483,647. Ingrese un número entero positivo.

type

Integer

Tipo de la política de limitación de solicitud.

  • 1: basado en API, limitando el número máximo de veces que se puede invocar a una única API vinculada a la política dentro del período especificado.

  • 2: API compartida, limitando el número máximo de veces que se pueden invocar a todas las API vinculadas a la política dentro del período especificado.

enable_adaptive_control

String

Indica si se activa la limitación dinámica de solicitudes.

  • TRUE

  • FALSE

Actualmente, este parámetro no es compatible.

user_call_limits

Integer

Número máximo de veces que un usuario puede acceder a la API dentro del mismo período. El valor de este parámetro no puede exceder el valor máximo. Solicitudes de API. El valor máximo es de 2,147,483,647. Ingrese un número entero positivo.

time_interval

Integer

Período de tiempo para limitar el número de invocaciones a la API. Este parámetro se aplica con cada límite de invocaciones a la API. El valor máximo es de 2,147,483,647. Ingrese un número entero positivo.

ip_call_limits

Integer

Número máximo de veces que se puede acceder a la API mediante una dirección IP dentro del mismo período. El valor de este parámetro no puede exceder el límite de invocaciones de API. El valor máximo es de 2,147,483,647. Ingrese un número entero positivo.

id

String

ID de política de limitación de solicitud.

bind_num

Integer

Número de API a las que se ha enlazado la política de limitación de solicitudes.

is_inclu_special_throttle

Integer

Indica si se ha creado una configuración de limitación de solicitud excluida.

  • 1: sí

  • 2: no

create_time

String

Tiempo de creación.

Código de estado: 400

Tabla 5 Parámetros del cuerpo 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 del cuerpo 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 del cuerpo 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 8 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error_code

String

Código de error.

error_msg

String

Mensaje de error.

Ejemplo de las solicitudes

Creación de una política de limitación de solicitudes (máximo de solicitudes de API: 800; máximo de solicitudes de usuarios: 500; máximo de solicitudes de aplicaciones: 300; máximo de solicitudes de direcciones IP: 600; período: 1 s)

{
  "api_call_limits" : 800,
  "app_call_limits" : 300,
  "enable_adaptive_control" : "FALSE",
  "ip_call_limits" : 600,
  "name" : "throttle_demo",
  "remark" : "Total: 800 calls/second; user: 500 calls/second; app: 300 calls/second; IP address: 600 calls/second",
  "time_interval" : 1,
  "time_unit" : "SECOND",
  "type" : 1,
  "user_call_limits" : 500
}

Ejemplo de respuestas

Código de estado: 201

Creado

{
  "name" : "throttle_demo",
  "create_time" : "2020-07-31T08:44:02.205366118Z",
  "remark" : "Total: 800 calls/second; user: 500 calls/second; app: 300 calls/second; IP address: 600 calls/second",
  "type" : 1,
  "time_interval" : 1,
  "ip_call_limits" : 600,
  "app_call_limits" : 300,
  "time_unit" : "SECOND",
  "api_call_limits" : 800,
  "id" : "3437448ad06f4e0c91a224183116e965",
  "user_call_limits" : 500,
  "enable_adaptive_control" : "FALSE",
  "bind_num" : 0,
  "is_inclu_special_throttle" : 2
}

Código de estado: 400

Error en la solicitud

{
  "error_code" : "APIG.2011",
  "error_msg" : "Invalid parameter value,parameterName:name. Please refer to the support documentation"
}

Código de estado: 401

Sin autorización

{
  "error_code" : "APIG.1002",
  "error_msg" : "Incorrect token or token resolution failed"
}

Código de estado: 403

Prohibido

{
  "error_code" : "APIG.1005",
  "error_msg" : "No permissions to request this method"
}

Código de estado: 500

Error del servidor interno

{
  "error_code" : "APIG.9999",
  "error_msg" : "System error"
}

Códigos de estado

Código de estado

Descripción

201

Creado

400

Error en la solicitud

401

Sin autorización

403

Prohibido

500

Error del servidor interno

Códigos de error

Consulte Códigos de error.