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 2024-06-06 GMT+08:00

Solicitudes Idempotentes

La Idempotencia es importante en las API porque un recurso puede invocarse varias veces si una operación se agota o encuentra otros problemas del servidor antes de que se complete. Si la solicitud original y los reintentos posteriores tienen éxito, la operación se completa varias veces. Esto significa que puede crear más recursos de los que pretendía.

Para resolver este problema, se introducen identificadores de solicitud idempotentes para distinguir el primer intento de intentos posteriores. Con una solicitud idempotente, si la solicitud original se completa con éxito, cualquier reintento posterior se completa con éxito sin realizar ninguna acción adicional.

Actualmente, idempotency solo está disponible para la API para crear instancias únicas y primarias/en espera de RDS for MySQL en Creación de una instancia de base de datos.

Idempotencia

Una operación idempotente produce el mismo resultado incluso cuando la operación se repite muchas veces.

Idempotencia en las API de RDS

Al enviar una solicitud, el cliente puede agregar X-Client-Token al encabezado HTTP como el identificador de idempotencia. Para obtener más información, véase Tabla 1.

Tabla 1 Encabezado de mensaje de identificador de potencia

Parámetro

Descripción

Obligatorio

Valor de ejemplo

X-Client-Token

Identificador que garantiza la idempotencia de las solicitudes del cliente.

Es un UUID que contiene 32 dígitos hexadecimales y es generado por el cliente. El valor debe ser único.

No

46436810-d999-454c-bd85-e515fd258600

Generalmente, el cliente reenvía la solicitud solo cuando el código de estado de respuesta es 5xx debido a una excepción interna del servidor o tiempo de espera de conexión o cuando no se puede obtener el resultado de la respuesta. Si la solicitud de reintento utiliza el mismo identificador idempotent y parámetros de solicitud, el servidor devolverá el mismo resultado que la solicitud original.

Descripción acerca de los identificadores de idempotencia:

  • Un identificador de idempotencia es un UUID sensible a mayúsculas y minúsculas que contiene 32 dígitos hexadecimales. Está en el formato de xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxxxxx (8-4-4-4-12), donde cada x es un dígito hexadecimal que va desde de 0 a 9 o de a a f. Si proporciona un identificador que no está en formato UUID, el servidor devuelve el código de error DBS.280497.
  • Los identificadores de identidad deben ser únicos. Si reutiliza un identificador con parámetros diferentes, el servidor devuelve el código de error DBS.280495.
  • Los identificadores impotentes siguen siendo válidos durante ocho horas. Si un identificador ha caducado, el servidor devuelve el código de error DBS.280498.
  • Después de utilizar un identificador de idempotencia:
    • Si el código de estado devuelto es 2xx, los reintentos posteriores devolverán el mismo resultado que el original sin afectar el estado del servidor.
    • Si el código de estado devuelto es 4xx, los intentos posteriores fallarán. Es necesario corregir el error basado en la información de error y volver a intentar la solicitud.

API Idempotente

La siguiente API es idempotente con X-Client-Token: