es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Crear o actualizar el punto final en DDD

Tengo una API REST para una aplicación que estoy desarrollando. Uno de los puntos finales recibe los campos nombre, correo electrónico y teléfono para crear un nuevo usuario (sin contraseña). Obviamente, el punto final sería /usuarios [POST].
¿Sería correcto aprovechar este punto final para, si el usuario ya existe, actualizarlo con los nuevos datos? ¿O es mejor crear un punto final diferente (PUT) para actualizar al usuario? Si es así, tendría que poner la lógica de negocio fuera de esta API y no me gusta esa idea.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en tecnología de la información especializado en API y diseño basado en dominios, mi recomendación sería crear un punto de acceso separado utilizando el método PUT para actualizar un usuario. Este punto de acceso puede denominarse /users/{userId}, donde {userId} es el identificador único de un usuario.

    La razón para crear un punto de acceso separado radica en el principio de Responsabilidad Única. La solicitud POST en el punto de acceso /users es responsable de crear nuevos usuarios, y realizar cambios en el mismo punto de acceso para actualizar al usuario no se alinearía con el principio de Responsabilidad Única.

    Además, una solicitud PUT proporciona un método HTTP más adecuado para actualizar recursos. Esto se debe a que las solicitudes PUT son idempotentes, lo que implica que múltiples solicitudes idénticas se comportarían de la misma manera que una sola solicitud. Esto no es el caso de las solicitudes POST. En otras palabras, una solicitud PUT se puede utilizar para actualizaciones idempotentes de un usuario existente.

    Además, separar la lógica empresarial puede ser beneficioso para la aplicación, ya que puede promover el desacoplamiento de las preocupaciones, aumentando así la flexibilidad y modularidad de la API.

    Por lo tanto, sería mejor crear un punto de acceso de solicitud PUT separado para actualizar usuarios, con la lógica empresarial fuera de la API.

Comments are closed.