← Volver a Back.API

EmployeesController

Controlador para la gestión completa de empleados del restaurante

📊 Resumen del Controlador

2
Servicios Inyectados
6
Endpoints Totales
1
Entidad Principal
CRUD
Operaciones Completas

El EmployeesController es el controlador encargado de gestionar todos los aspectos relacionados con los empleados del restaurante. Proporciona una API RESTful completa con operaciones CRUD para la entidad Empleado, permitiendo el registro, consulta, actualización y eliminación de información de personal.

🎯 Funcionalidades Principales

  • Gestión CRUD completa de empleados (5 endpoints)
  • Consulta de todos los empleados registrados en el sistema
  • Búsqueda de empleado específico por ID único
  • Registro de nuevos empleados con validación de datos
  • Actualización de información de empleados existentes
  • Eliminación de empleados del sistema
  • Manejo de errores centralizado con logging
  • Método OPTIONS para información de métodos HTTP permitidos (1 endpoint)

🔧 Servicios Utilizados

Servicios Inyectados por Constructor:

  • IEmployeesService - Servicio principal de gestión de empleados
  • ILogger<EmployeesController> - Logging de errores y eventos

⚠️ Parámetros de Conexión

Todos los endpoints requieren los siguientes parámetros de conexión a la base de datos:

  • initialCatalog (string): Nombre de la base de datos
  • userID (string, opcional): ID de usuario de la base de datos
  • password (string, opcional): Contraseña de la base de datos

📋 Categorías de Endpoints

👥 Gestión de Empleados

Operaciones CRUD completas para la gestión de empleados del restaurante
CRUD
Core

Endpoints: 5 métodos

  • GET /GetEmployees
  • GET /GetEmployee/{id}
  • POST /AddEmployee
  • PUT /UpdateEmployee/{id}
  • DELETE /DeleteEmployee/{id}
Ver detalles →

🔗 Estructura de Rutas

Ruta Base: /Master/Employees

Todos los endpoints del controlador están bajo la ruta /Master/Employees, lo que indica que maneja datos maestros del sistema.

Patrones de URL:

📊 Códigos de Respuesta

✅ 200 - OK

Operación exitosa, datos devueltos correctamente

Usado en: GET, PUT, DELETE exitosos

✅ 201 - Created

Empleado creado exitosamente

Usado en: POST exitosos

❌ 404 - Not Found

Empleado no encontrado

Usado en: GET, PUT, DELETE cuando el empleado no existe

❌ 500 - Internal Server Error

Error interno del servidor

Usado en: Errores de excepción no controlados

🔍 Características Técnicas

🎯 Características del Controlador

  • Synchronous Operations: Los métodos son síncronos para operaciones de empleados
  • Swagger Documentation: Documentación completa con Swagger/OpenAPI
  • Error Handling: Manejo centralizado de excepciones con logging
  • Dependency Injection: Inyección de servicios + logger
  • RESTful Design: Diseño REST completo con verbos HTTP apropiados
  • Type Safety: Uso de tipos fuertemente tipados para respuestas
  • Constructor Injection: Inyección de dependencias por constructor
  • Logging: Logging estructurado de errores y eventos

⚠️ Consideraciones de Seguridad

  • Todos los endpoints requieren parámetros de conexión a la base de datos
  • Los errores internos se loguean pero no exponen información sensible
  • Se recomienda implementar autenticación y autorización adicional
  • Validación de entrada en todos los endpoints POST/PUT
  • Información de empleados puede ser sensible, requiere protección adicional

📝 Patrones de Diseño Utilizados

  • Repository Pattern: Acceso a datos a través de servicios
  • Dependency Injection: Inversión de control para servicios
  • Error Handling Pattern: Manejo centralizado de errores
  • RESTful API Design: Diseño de API REST estándar

📈 Estadísticas Detalladas

191
Líneas de Código
1
Región de Código
6
Métodos Públicos
5
Verbos HTTP

Distribución de Métodos HTTP:

📋 Modelo de Datos - Empleado

Propiedades del modelo Empleado:
  • Empleado1 (double): Identificador único del empleado
  • Nombre (string): Nombre completo del empleado
  • Apellidos (string): Apellidos del empleado
  • DNI (string): Número de identificación fiscal
  • Telefono (string): Número de teléfono de contacto
  • Email (string): Dirección de correo electrónico
  • Direccion (string): Dirección física del empleado
  • FechaAlta (DateTime): Fecha de contratación
  • FechaBaja (DateTime): Fecha de finalización de contrato
  • Salario (decimal): Salario del empleado
  • Cargo (string): Puesto o cargo del empleado
  • Activo (bool): Estado de actividad del empleado

📝 Notas sobre el Modelo

  • Empleado1: Es el campo de identificación principal, aunque el nombre puede ser confuso
  • FechaAlta: Se establece automáticamente al crear un nuevo empleado
  • FechaBaja: Permite registrar la fecha de finalización del contrato
  • Activo: Permite desactivar empleados sin eliminarlos físicamente
  • DNI: Identificación fiscal única del empleado