Clicked Gallery

¿Qué significa una API idempotente?

Subrayado en un documento técnico real. Explicado por Clicked.

Usado en una frase

Engineering Notes · AI Systems

The payment gateway endpoint must be fully idempotent to ensure multiple clicks don’t double-charge the card.

El lector subrayó una palabra en la documentación. Clicked explicó el término técnico «idempotent» en lenguaje sencillo:

Explicado en tres niveles

Los mismos datos, otro rollo — Modo jerga 😎

El método Clicked

●○○

Overview

Un endpoint de API idempotente produce el mismo resultado tanto si lo llamas una vez como diez, porque las peticiones idénticas repetidas no crean efectos duplicados. Es la propiedad que impide que un doble clic se convierta en un doble cargo.
●○○

Overview

Idempotente significa "machaca el botón lo que quieras, solo cuenta una vez". Llámalo una vez y la tarjeta se cobra; llámalo diez porque el wifi hipó y la tarjeta se cobra igualmente una vez. Es la diferencia entre una API que puedes reintentar y una API a la que temes. 😎

Una idea rápida — muchas veces es todo lo que necesitas.

●●○

Detail

El problema que resuelve es que las redes fallan a mitad de la petición. Si una llamada de pago expira, el cliente no puede saber si el servidor la procesó, así que reintenta. Sin idempotencia ese reintento podría cobrar la tarjeta dos veces, y con ella reintentar es siempre seguro. La implementación estándar es una clave de idempotencia: el cliente añade un identificador único a la petición, el servidor registra el resultado de la primera ejecución bajo esa clave, y cualquier repetición con la misma clave recibe la respuesta guardada en vez de ejecutarse otra vez. Algunos métodos HTTP son idempotentes por definición, ya que borrar algo dos veces lo deja igual de borrado, mientras que POST no lo es, y por eso las APIs de pago le acoplan claves. Cada aviso de "no pulses enviar dos veces" en una página de pago es un sistema admitiendo que se saltó esto.
●●○

Detail

Por qué existe: internet es inestable. La petición expira, ¿y ha pasado o no? Nadie lo sabe. Así que los clientes reintentan, y los reintentos tienen que ser inofensivos. La jugada: envía una clave de idempotencia única con la petición, y el servidor hace el trabajo una vez, guarda el recibo bajo esa clave y le entrega a cada duplicado ese mismo recibo. Curiosidad de la especificación: GET, PUT y DELETE son idempotentes por contrato, mientras que POST famosamente no lo es, y por eso los proveedores de pago te obligan a mandar claves con él. Cada aviso de "¡no hagas doble clic en enviar!" que has visto es una confesión. 😎

¿Quieres más? Un clic profundiza.

●●●

Analogy

El botón del ascensor. Púlsalo una vez o púlsalo siete veces suspirando, y viene un ascensor, porque la petición se registra una vez y cada repetición se asigna al mismo resultado. Un ascensor que enviara siete cabinas sería un endpoint de pago sin idempotencia.
●●●

Analogy

Es confirmar la asistencia a una boda cinco veces porque estás nervioso. Los novios no ponen cinco platos, porque es un asiento por muchas confirmaciones que mandes. Una API de pago debería tratar tus clics de pánico exactamente igual que ese anfitrión.

¿Concepto nuevo? Un ejemplo cotidiano lo hace clic — nuevas analogías cuando quieras.

Las explicaciones de IA pueden contener errores · No es asesoramiento profesional

Definición formal — El mismo término, explicado de la forma habitual

La idempotencia es la propiedad por la cual múltiples invocaciones idénticas de una operación producen el mismo estado del sistema y la misma respuesta que una única invocación. En la semántica HTTP, GET, PUT y DELETE se definen como idempotentes mientras que POST no lo es; los servicios suelen implementar idempotencia para operaciones no idempotentes mediante claves de idempotencia aportadas por el cliente, bajo las cuales se persiste el resultado de la primera ejecución y se devuelve ante peticiones duplicadas, haciendo seguros los reintentos frente a fallos de red.

¿Quieres que Clicked te explique términos como «idempotent» directamente en tu navegador, incluso en PDFs?

Añadir a Chrome — Gratis

50 Explicaciones gratis · Sin tarjeta de crédito