Endpoints usuarios - E7-I/conectados GitHub Wiki
CRUD Usuarios
POST /api/users/register
Descripción
Registra un nuevo usuario en el sistema. El tipo de cuenta se determina mediante el campo role
. Si el rol es professional
, se pueden incluir datos adicionales opcionales relacionados con su perfil profesional.
Parámetros de entrada
Tipo: application/json
Nombre | Tipo | Descripción | Opcional |
---|---|---|---|
id |
number | Identificador único del usuario (RUT) | No |
username |
string | Nombre de usuario único | No |
name |
string | Nombre completo del usuario | No |
email |
string | Correo electrónico único | No |
password |
string | Contraseña del usuario (será hasheada antes de guardar) | No |
username
debe tener entre 3 y 30 caracteresname
debe tener entre 1 y 50 caracteresemail
debe ser un correo electrónico válidopassword
debe tener entre 6 y 20 caracteres, elusername
no debe estar contenido de contraseña
Ejemplo de solicitud
{
"id": 12345678,
"username": "juanperez",
"name": "Juan Pérez",
"email": "[email protected]",
"password": "secreta123"
}
Respuesta
Código: 201 Created
Tipo: application/json
{
"message": "User registered successfully",
"user": {
"id": 12345678,
"username": "juanperez",
"name": "Juan Pérez",
"email": "[email protected]",
"role": "client",
"profile": {
"bio": "",
"photoUrl": "",
"contactInfo": []
},
"location": {
"lat": 0,
"lng": 0
}
}
}
Errores comunes
400 Bad Request
: Faltan campos requeridos o datos inválidos.409 Conflict
: El nombre de usuario o correo ya están registrados.
POST /api/users/login
Descripción
Login de un usuario existente en el sistema. Se requiere el nombre de usuario (o correo electrónico) y la contraseña. Devuelve un JSON con parte de la información del usuario y un token JWT para autenticación en futuras solicitudes.
Parámetros de entrada
Tipo: application/json
Nombre | Tipo | Descripción | Opcional |
---|---|---|---|
username |
string | Nombre de usuario único | *Sí |
email |
string | Correo electrónico único | *Sí |
password |
string | Contraseña del usuario (será hasheada antes de guardar) | No |
* al menos uno de los campos username
o email
debe ser proporcionado.
Ejemplo de solicitud
{
"username": "juanperez",
"password": "secreta123",
}
Respuesta
Código: 201 Created
Tipo: application/json
{
"message": "Login successful",
"user": {
"id": 14298637,
"username": "juanperez",
"name": "Juan Pérez",
"email": "[email protected]",
"role": "client",
"profile": {
"bio": "",
"photoUrl": "",
"contactInfo": []
},
"location": {
"lat": 0,
"lng": 0
},
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}
}
Errores comunes
400 Bad Request
: Faltan campos requeridos o datos inválidos.401 Unauthorized
: Credenciales incorrectas.