5.2 KiB
Diseño de API RESTful
1. Autenticación y Gestión de Sesiones
1.1. Inicio de sesión
Endpoint:
POST /api/auth/login
Solicitud:
{
"email": "usuario@empresa.com",
"password": "contraseña_segura"
}
Respuesta:
{
"token": "eyJhbGciOi...",
"user": {
"id": 123,
"username": "usuario",
"email": "usuario@empresa.com"
},
"companies": [
{ "id": 1, "name": "Empresa A" },
{ "id": 2, "name": "Empresa B" }
]
}
1.2. Cierre de sesión
Endpoint:
POST /api/auth/logout
Encabezados:
Authorization: Bearer <token>
Respuesta:
{
"message": "Sesión cerrada exitosamente"
}
1.3. Selección de empresa activa
Endpoint:
POST /api/auth/select-company
Solicitud:
{
"company_id": 1
}
Respuesta:
{
"message": "Empresa seleccionada exitosamente"
}
2. Gestión de Empresas
2.1. Listar empresas disponibles
Endpoint:
GET /api/companies
Encabezados:
Authorization: Bearer <token>
Respuesta:
[
{
"id": 1,
"name": "Empresa A",
"country_code": "ES",
"currency_code": "EUR"
},
{ "id": 2, "name": "Empresa B", "country_code": "US", "currency_code": "USD" }
]
2.2. Crear una nueva empresa
Endpoint:
POST /api/companies
Solicitud:
{
"name": "Nueva Empresa",
"country_code": "ES",
"currency_code": "EUR"
}
Respuesta:
{
"id": 3,
"message": "Empresa creada exitosamente"
}
2.3. Actualizar datos de una empresa
Endpoint:
PUT /api/companies/{company_id}
Solicitud:
{
"name": "Empresa Actualizada",
"currency_code": "USD"
}
Respuesta:
{
"message": "Empresa actualizada correctamente"
}
2.4. Eliminar una empresa
Endpoint:
DELETE /api/companies/{company_id}
Respuesta:
{
"message": "Empresa eliminada exitosamente"
}
3. Gestión de Sucursales
3.1. Listar sucursales de una empresa
Endpoint:
GET /api/companies/{company_id}/branches
Respuesta:
[
{ "id": 10, "name": "Sucursal Madrid" },
{ "id": 20, "name": "Sucursal Barcelona" }
]
3.2. Crear una sucursal
Endpoint:
POST /api/companies/{company_id}/branches
Solicitud:
{
"name": "Sucursal Sevilla",
"location": "Avenida Principal 123"
}
Respuesta:
{
"id": 30,
"message": "Sucursal creada exitosamente"
}
3.3. Actualizar datos de una sucursal
Endpoint:
PUT /api/branches/{branch_id}
Solicitud:
{
"name": "Sucursal Actualizada",
"location": "Calle Nueva 456"
}
Respuesta:
{
"message": "Sucursal actualizada correctamente"
}
3.4. Eliminar una sucursal
Endpoint:
DELETE /api/branches/{branch_id}
Respuesta:
{
"message": "Sucursal eliminada exitosamente"
}
4. Gestión de Usuarios
4.1. Listar usuarios de una empresa
Endpoint:
GET /api/companies/{company_id}/users
Respuesta:
[
{
"id": 1,
"username": "admin",
"email": "admin@empresa.com",
"roles": ["Administrador"]
},
{
"id": 2,
"username": "usuario",
"email": "usuario@empresa.com",
"roles": ["Ventas"]
}
]
4.2. Crear un usuario
Endpoint:
POST /api/users
Solicitud:
{
"username": "nuevo_usuario",
"email": "nuevo@empresa.com",
"password": "clave_segura",
"company_id": 1,
"roles": ["Ventas"]
}
Respuesta:
{
"id": 3,
"message": "Usuario creado exitosamente"
}
4.3. Actualizar usuario
Endpoint:
PUT /api/users/{user_id}
Solicitud:
{
"email": "nuevo_correo@empresa.com",
"roles": ["Compras"]
}
Respuesta:
{
"message": "Usuario actualizado correctamente"
}
4.4. Eliminar usuario
Endpoint:
DELETE /api/users/{user_id}
Respuesta:
{
"message": "Usuario eliminado exitosamente"
}
5. Gestión de Permisos
5.1. Obtener permisos de un usuario en una empresa
Endpoint:
GET /api/companies/{company_id}/users/{user_id}/permissions
Respuesta:
{
"modules": {
"Presupuestos": ["read", "write"],
"Facturas": ["read"],
"Clientes": ["read", "write", "delete"]
}
}
5.2. Actualizar permisos de un usuario
Endpoint:
PUT /api/users/{user_id}/permissions
Solicitud:
{
"modules": {
"Presupuestos": ["read", "write"],
"Inventario": ["read"]
}
}
Respuesta:
{
"message": "Permisos actualizados correctamente"
}
6. Auditoría
6.1. Obtener historial de cambios en documentos
Endpoint:
GET /api/audit/documents/{document_id}
Respuesta:
[
{
"timestamp": "2025-01-22T14:00:00Z",
"user": "admin",
"change": "Se modificó el precio de 100 a 120"
},
{
"timestamp": "2025-01-20T10:30:00Z",
"user": "usuario",
"change": "Se creó el documento"
}
]