Documentación API

Usuarios

Gestión de usuarios del cliente actual. Requiere rol de administrador para crear, editar y eliminar usuarios.


GET /api/users/

Lista todos los usuarios del cliente actual.

GET /api/users/

Headers

Authorization: Bearer JWT_TOKEN

Ejemplos

curl -X GET https://api-docmind.devol.es/api/users/ \
  -H "Authorization: Bearer JWT_TOKEN"

Respuesta

{
  "users": [
    {"id": "user-uuid", "nombre": "Juan Pérez", "email": "juan@ejemplo.com", "role_name": "admin", "activo": true}
  ]
}

Lista de usuarios con sus roles y estado.

Errores

401Unauthorized

Token inválido.

{"msg": "Token inválido"}

GET /api/users/{user_id}

Obtiene los datos de un usuario específico.

GET /api/users/{user_id}

Headers

Authorization: Bearer JWT_TOKEN

Ejemplos

curl -X GET https://api-docmind.devol.es/api/users/USER_ID \
  -H "Authorization: Bearer JWT_TOKEN"

Respuesta

{"user": {"id": "user-uuid", "nombre": "Juan Pérez", "email": "juan@ejemplo.com", "role_name": "admin"}}

Datos completos del usuario.

Errores

404Not Found

Usuario no encontrado.

{"error": "Usuario no encontrado"}

POST /api/users/

Crea un nuevo usuario para el cliente actual.

POST /api/users/

Headers

Content-Type: application/json
Authorization: Bearer JWT_TOKEN

Body (JSON)

{
  "nombre": "María García",
  "email": "maria@ejemplo.com",
  "password": "password_seguro",
  "role_id": "role-uuid"
}
  • nombre: (obligatorio) Nombre completo del usuario.
  • email: (obligatorio) Email único del usuario.
  • password: (obligatorio) Contraseña (mínimo 8 caracteres).
  • role_id: (obligatorio) ID del rol a asignar.

Ejemplos

curl -X POST https://api-docmind.devol.es/api/users/ \
  -H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN" \
  -d '{"nombre": "María", "email": "maria@ejemplo.com", "password": "pass123", "role_id": "role-uuid"}'

Respuesta

{"message": "Usuario creado exitosamente", "user": {"id": "new-user-uuid", "nombre": "María García"}}

Usuario creado y listo para acceder al sistema.

Errores

400Bad Request

Datos inválidos o faltantes.

{"error": "El email es obligatorio"}
409Conflict

Email ya registrado.

{"error": "Ya existe un usuario con ese email"}

PUT /api/users/{user_id}

Actualiza los datos de un usuario.

PUT /api/users/{user_id}

Headers

Content-Type: application/json
Authorization: Bearer JWT_TOKEN

Body (JSON)

{"nombre": "Juan Pérez García", "role_id": "new-role-uuid"}
  • nombre: (opcional) Nuevo nombre.
  • email: (opcional) Nuevo email.
  • role_id: (opcional) Nuevo rol.

Ejemplos

curl -X PUT https://api-docmind.devol.es/api/users/USER_ID \
  -H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN" \
  -d '{"nombre": "Juan Pérez García"}'

Respuesta

{"message": "Usuario actualizado exitosamente"}

Confirmación de la actualización.

Errores

404Not Found

Usuario no encontrado.

{"error": "Usuario no encontrado"}

DELETE /api/users/{user_id}

Elimina un usuario del sistema.

DELETE /api/users/{user_id}

Headers

Authorization: Bearer JWT_TOKEN

Ejemplos

curl -X DELETE https://api-docmind.devol.es/api/users/USER_ID \
  -H "Authorization: Bearer JWT_TOKEN"

Respuesta

{"message": "Usuario eliminado exitosamente"}

El usuario se elimina permanentemente.

Errores

404Not Found

Usuario no encontrado.

{"error": "Usuario no encontrado"}

PUT /api/users/password

Cambia la contraseña del usuario autenticado.

PUT /api/users/password

Headers

Content-Type: application/json
Authorization: Bearer JWT_TOKEN

Body (JSON)

{"current_password": "password_actual", "new_password": "nueva_password_segura"}
  • current_password: (obligatorio) Contraseña actual.
  • new_password: (obligatorio) Nueva contraseña (mínimo 8 caracteres).

Ejemplos

curl -X PUT https://api-docmind.devol.es/api/users/password \
  -H "Content-Type: application/json" -H "Authorization: Bearer JWT_TOKEN" \
  -d '{"current_password": "actual", "new_password": "nueva_segura"}'

Respuesta

{"message": "Contraseña actualizada exitosamente"}

La contraseña se actualiza y las sesiones existentes siguen válidas.

Errores

400Bad Request

Contraseña actual incorrecta o nueva muy corta.

{"error": "La contraseña actual es incorrecta"}

© 2025 Devol. Todos los derechos reservados.