Método PUT para actualizar usuarios con ID automático

Clase 5 de 35Curso de Backend con NestJS

Resumen

Actualizar usuarios correctamente es fundamental para cualquier API moderna. Aquí aprenderás, paso a paso, a implementar el método PUT siguiendo principios de un CRUD, garantizando una gestión robusta y flexible de los datos.

¿Qué es el método put y cómo completa el ciclo CRUD?

Todo CRUD efectivo incluye crear, leer, actualizar y eliminar. Put es el método que permite la actualización. Al implementar “put” en los endpoints, logras que los recursos sean modificables según lo necesite la lógica de negocio. Puedes replicarlo para usuarios, perfiles, grupos o compañías según lo necesites.

  • Put utiliza el parámetro ID para identificar qué recurso actualizar.
  • Es indispensable enviar el ID para realizar la actualización.
  • Permite recibir datos en el “body”, igual que un “post”, para aplicar cambios específicos.

¿Cómo automatizar el ID al crear nuevos usuarios?

Al automatizar un ID, evitas errores y garantizas unicidad:

  • Inicialmente puedes asignar el ID como el tamaño del array más uno, convertido siempre a string.
  • Es preferible sobrescribir cualquier ID que el usuario envíe desde el backend, garantizando así la validez.
  • Para evitar duplicados tras eliminar usuarios, puedes usar un ID basado en el timestamp:
const newUser = {
  ...body,
  id: new Date().getTime().toString(),
}
  • Esta solución es temporal hasta usar una base de datos real, donde la lógica será más sofisticada.

¿Cuáles son las diferencias clave entre put y patch para actualizar datos?

Al actualizar, existen dos opciones principales: put y patch.

  • Put suele exigir enviar todos los campos de la entidad; si tienes veinte propiedades, debes enviarlas todas.
  • Patch permite actualizar solo los campos que cambian, enviando solo esos datos.
  • En la práctica habitual de APIs, put ya permite flexibilidad para actualizar solo los campos enviados.

¿Cómo se implementa update user utilizando JavaScript y qué validaciones son fundamentales?

El endpoint para actualizar usuarios utiliza dos argumentos:

  • Un parámetro (por ejemplo, /user/:id) para identificar el usuario.
  • Un body con los nuevos datos.

Ejemplo básico en JavaScript:

const updateUser = (id, changes) => {
  const userIndex = users.findIndex(user => user.id === id);
  if (userIndex === -1) {
    return 'User not found';
  }
  const currentData = users[userIndex];
  users[userIndex] = {
    ...currentData,
    ...changes,
  };
  return users[userIndex];
};
  • Al actualizar, solo se sobrescriben los campos enviados.
  • Si el ID no existe, la función retorna un mensaje informativo.
  • La respuesta habitual es el usuario actualizado completo y un status 200.

¿Cómo debes validar los datos al crear o actualizar usuarios?

La validación evita inconsistencias como usuarios duplicados o emails incorrectos:

  • Es esencial comprobar que el email tiene el formato correcto (incluye @ y dominio).
  • Puedes usar expresiones regulares para esta validación.
  • Aún no se implementaron reglas estrictas, pero es la base para robustecer la API.

¿Tienes ideas para validar correos o sugerencias propias para mejorar el sistema de IDs? Comparte tus propuestas y sigamos aprendiendo nuevos retos del desarrollo de APIs.