Sobes.tech
Junior — Middle

Explique las diferencias entre los métodos HTTP PUT y PATCH al actualizar recursos.

sobes.tech AI

Respuesta de la IA

Las principales diferencias entre los métodos HTTP PUT y PATCH al actualizar recursos:

  • PUT — se utiliza para una actualización completa del recurso. El cliente envía una representación completa del recurso, y el servidor reemplaza el recurso existente con esta nueva.
  • PATCH — se utiliza para una actualización parcial del recurso. El cliente envía solo los campos que desea modificar, y el servidor actualiza solo esos campos, dejando los demás sin cambios.

Ejemplo:

Si tienes un objeto de usuario con los campos name y email:

  • Con una solicitud PUT, debes enviar ambos campos, de lo contrario, los que no envíes serán eliminados o restablecidos.
  • Con una solicitud PATCH, puedes enviar solo email, y el servidor solo actualizará ese campo.

En C# Web API, los métodos pueden verse así:

[HttpPut("users/{id}")]
public IActionResult UpdateUser(int id, User user) {
    // Actualización completa del usuario
}

[HttpPatch("users/{id}")]
public IActionResult PatchUser(int id, JsonPatchDocument<User> patchDoc) {
    // Actualización parcial del usuario
}

Por lo tanto, PUT es un método idempotente para reemplazo completo, PATCH para cambios parciales.