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 |
| 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 |
| 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."
}