Sobes.tech
Middle

¿Todos los métodos HTTP son idempotentes?

sobes.tech AI

Respuesta de la IA

No, no todos los métodos HTTP son idempotentes.

La idempotencia significa que si se realiza la misma solicitud varias veces con los mismos parámetros, el resultado en el lado del servidor no cambiará después de la primera ejecución exitosa.

Los principales métodos HTTP y su idempotencia:

Método ¿Es idempotente? Propósito
GET Obtener datos
HEAD Obtener encabezados de respuesta
PUT Crear o reemplazar completamente un recurso
DELETE Eliminar un recurso
POST No Enviar datos para crear un recurso o realizar una acción
PATCH No Actualización parcial de un recurso

POST y PATCH no son idempotentes porque cada ejecución puede llevar a la creación de un nuevo recurso o a cambiar el estado del recurso dependiendo de la implementación, lo cual no es único después de la primera ejecución exitosa. Por ejemplo, ejecutar varias veces una solicitud POST para crear un usuario generalmente resultará en la creación de varios usuarios.

Ejemplo de un POST no idempotente:

{
  "username": "testuser"
}

Enviar esta solicitud POST puede crear un nuevo usuario con username: "testuser" en cada llamada.

Ejemplo de un PUT idempotente:

{
  "id": 123,
  "status": "completed"
}

Enviar esta solicitud PUT al recurso con ID 123 establecerá su estado en "completed". La ejecución repetida no cambiará el estado si ya está en "completed".