Articles

Idempotent

Un método HTTP es idempotente si se puede realizar una solicitud idéntica una o varias veces seguidas con el mismo efecto mientras se deja el servidor en el mismo estado. En otras palabras, un método idempotente no debe tener ningún efecto secundario (excepto para mantener estadísticas). Aplicado correctamente, el GETHEADPUT y DELETE métodos son idempotente, pero no el POST método. Todos los métodos seguros también son idempotentes.

Para ser idempotente, el back-end de estado del servidor, el código de estado devuelto por cada solicitud puede variar: la primera llamada de un DELETE probablemente retornará un 200, mientras que las sucesivas probablemente retornará un 404. Otra implicación de que DELETE sea idempotente es que los desarrolladores no deben implementar API RESTful con una funcionalidad de eliminar última entrada utilizando el método DELETE.

Tenga en cuenta que el servidor no garantiza la idempotencia de un método y que algunas aplicaciones pueden romper incorrectamente la restricción de idempotencia.

GET /pageX HTTP/1.1 es idempotente. Llamó varias veces en una fila, el cliente obtiene los mismos resultados:

GET /pageX HTTP/1.1GET /pageX HTTP/1.1GET /pageX HTTP/1.1GET /pageX HTTP/1.1
POST /add_row HTTP/1.1 no es idempotente; si es llamado varias veces, se agrega varias filas:

POST /add_row HTTP/1.1POST /add_row HTTP/1.1 -> Adds a 2nd rowPOST /add_row HTTP/1.1 -> Adds a 3rd row
DELETE /idX/delete HTTP/1.1 es idempotente, incluso si el código de estado devuelto puede cambiar entre las solicitudes:

DELETE /idX/delete HTTP/1.1 -> Returns 200 if idX existsDELETE /idX/delete HTTP/1.1 -> Returns 404 as it just got deletedDELETE /idX/delete HTTP/1.1 -> Returns 404

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *