Usuarios - bootcamp-uchile-2026/grupo-4-backend GitHub Wiki

Usuarios

Servicio encargado de gestionar los usuarios del ecommerce.

El servicio permite consultar, crear, actualizar y eliminar usuarios.

Endpoints

  • GET /usuarios - Obtener lista de usuarios
  • GET /usuarios/{id} - Obtener usuario por ID
  • POST /usuarios - Crear usuario
  • PATCH /usuarios/{id} - Actualizar usuario
  • DELETE /usuarios/{id} - Eliminar usuario

Modelo

Usuario

Representa un usuario registrado dentro del sistema.

Campo Tipo Descripción
id number Identificador único del usuario
nombre string Nombre del usuario
apellido string Apellido del usuario
email string Correo electrónico del usuario
telefono string Número de teléfono del usuario
password string Contraseña del usuario

DTOs

CreateUsuarioDto

DTO utilizado para crear un nuevo usuario.

Campos

Campo Tipo Requerido Descripción
nombre string Sí Nombre del usuario
apellido string Sí Apellido del usuario
email string Sí Correo electrónico del usuario
telefono string Sí Número de teléfono del usuario
password string Sí Contraseña del usuario. Debe tener entre 8 y 72 caracteres

Ejemplo de Request Body

{
  "nombre": "Camilo",
  "apellido": "Díaz",
  "email": "[email protected]",
  "telefono": "+56912345678",
  "password": "MiPassword123!"
}

UpdateUsuarioDto

DTO utilizado para actualizar parcialmente un usuario existente.

Hereda los campos de CreateUsuarioDto, pero todos son opcionales.

La contraseña no forma parte de este DTO. El cambio de contraseña se gestiona mediante el flujo de cuenta y autenticación.

Ejemplo de Request Body

{
  "nombre": "Camilo",
  "telefono": "+56998765432"
}

UsuarioResponseDto

DTO utilizado para representar un usuario en las respuestas de la API.

La contraseña no se incluye en las respuestas por motivos de seguridad.

{
  "id": 1,
  "nombre": "Camilo",
  "apellido": "Díaz",
  "email": "[email protected]",
  "telefono": "+56912345678"
}

Endpoints detallados

GET /usuarios

Obtiene una lista de todos los usuarios disponibles.

Response — 200 OK

[
  {
    "id": 1,
    "nombre": "Camilo",
    "apellido": "Díaz",
    "email": "[email protected]",
    "telefono": "+56912345678"
  },
  {
    "id": 2,
    "nombre": "María",
    "apellido": "González",
    "email": "[email protected]",
    "telefono": "+56987654321"
  }
]

GET /usuarios/{id}

Obtiene un usuario específico mediante su identificador.

Path Parameters

Parámetro Tipo Requerido Descripción
id number Sí Identificador único del usuario

Ejemplo de solicitud

GET /usuarios/1

Response — 200 OK

{
  "id": 1,
  "nombre": "Camilo",
  "apellido": "Díaz",
  "email": "[email protected]",
  "telefono": "+56912345678"
}

Response — 400 Bad Request

El ID proporcionado no es válido.

{
  "statusCode": 400,
  "message": "El ID del usuario no es válido."
}

Response — 404 Not Found

El usuario no existe.

{
  "statusCode": 404,
  "message": "Usuario no encontrado."
}

POST /usuarios

Crea un nuevo usuario.

Request Body

Utiliza CreateUsuarioDto.

{
  "nombre": "Camilo",
  "apellido": "Díaz",
  "email": "[email protected]",
  "telefono": "+56912345678",
  "password": "MiPassword123!"
}

Response — 201 Created

{
  "id": 1,
  "nombre": "Camilo",
  "apellido": "Díaz",
  "email": "[email protected]",
  "telefono": "+56912345678"
}

Response — 400 Bad Request

Los datos enviados no son válidos.

{
  "statusCode": 400,
  "message": "Los datos del usuario no son válidos."
}

Response — 409 Conflict

Ya existe un usuario con los datos proporcionados.

{
  "statusCode": 409,
  "message": "Ya existe un usuario con los datos proporcionados."
}

PATCH /usuarios/{id}

Actualiza parcialmente los datos de un usuario existente.

Path Parameters

Parámetro Tipo Requerido Descripción
id number Sí Identificador único del usuario

Request Body

Utiliza UpdateUsuarioDto. Todos los campos son opcionales.

{
  "nombre": "Camilo",
  "telefono": "+56998765432"
}

Response — 200 OK

{
  "id": 1,
  "nombre": "Camilo",
  "apellido": "Díaz",
  "email": "[email protected]",
  "telefono": "+56998765432"
}

Response — 400 Bad Request

El ID o los datos enviados no son válidos.

{
  "statusCode": 400,
  "message": "El ID o los datos del usuario no son válidos."
}

Response — 404 Not Found

El usuario no existe.

{
  "statusCode": 404,
  "message": "Usuario no encontrado."
}

Response — 409 Conflict

Ya existe un usuario con los datos proporcionados.

{
  "statusCode": 409,
  "message": "Ya existe un usuario con los datos proporcionados."
}

DELETE /usuarios/{id}

Elimina un usuario mediante su identificador.

Path Parameters

Parámetro Tipo Requerido Descripción
id number Sí Identificador único del usuario

Ejemplo de solicitud

DELETE /usuarios/1

Response — 204 No Content

El usuario fue eliminado correctamente.

No se retorna un cuerpo en la respuesta.

Response — 400 Bad Request

El ID proporcionado no es válido.

{
  "statusCode": 400,
  "message": "El ID del usuario no es válido."
}

Response — 404 Not Found

El usuario no existe.

{
  "statusCode": 404,
  "message": "Usuario no encontrado."
}