Saltar al contenido

¿Es REST DELETE realmente idempotente?

Luego de investigar en varios repositorios y sitios de internet finalmente hemos hallado la solución que te compartimos aquí.

Solución:

La idempotencia se refiere al estado del sistema después de que se haya completado la solicitud.

En todos los casos (aparte de los problemas de error, consulte a continuación), la cuenta ya no existe.

De aquí

“Los métodos también pueden tener la propiedad de “idempotencia” en que (Aparte de los problemas de error o caducidad.) los efectos secundarios de N > 0 solicitudes idénticas son los mismos que para una sola solicitud. Los métodos GET, HEAD, PUT y DELETE comparten esta propiedad. Además, los métodos OPTIONS y TRACE NO DEBEN tener efectos secundarios, por lo que son intrínsecamente idempotentes. “

los key poco hay el Los efectos secundarios de N > 0 solicitudes idénticas son los mismos que para una sola solicitud.

Sería correcto esperar que el código de estado fuera diferente, pero esto no afecta el concepto central de idempotencia: puede enviar la solicitud más de una vez sin cambios adicionales en el estado del servidor.

idempotente se trata del efecto de la solicitud, no del código de respuesta que obtiene.

http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html#sec9.1.2 dice:

Los métodos también pueden tener la propiedad de “idempotencia” en el sentido de que (aparte de los problemas de error o caducidad) los efectos secundarios de N > 0 solicitudes idénticas son los mismos que para una sola solicitud.

Si bien es posible que obtenga un código de respuesta diferente, el efecto de enviar N+1 solicitudes DELETE al mismo recurso puede considerarse lo mismo.

La distinción importante es que idempotente se refiere a efectos secundariosno todos-efectos o respuestas. si haces un DELETE http://example.com/account/123 entonces el efecto es que la cuenta 123 ahora se elimina del servidor. Ese es el único efecto, el único cambio al estado del servidor. Ahora digamos que haces lo mismo DELETE http://example.com/account/123 solicitud de nuevo, el servidor responderá de manera diferente, pero su estado es el mismo.

No es como si la solicitud DELETE decidiera cambiar el estado del servidor de una manera diferente porque faltaba la cuenta, como eliminar otra cuenta o dejar un registro de errores. No, podría llamar a la misma solicitud DELETE un millón de veces y puede estar seguro de que el servidor está en el mismo estado que la primera vez que lo llamó.

Te invitamos a añadir valor a nuestro contenido informacional dando tu veteranía en los comentarios.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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