← Volver a Back.API

ClientesController

Controlador para la gestión completa de clientes del restaurante

📊 Resumen del Controlador

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

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

🎯 Funcionalidades Principales

  • Gestión CRUD completa de clientes (5 endpoints)
  • Consulta de todos los clientes registrados en el sistema
  • Búsqueda de cliente específico por ID único
  • Registro de nuevos clientes con validación de datos
  • Actualización de información de clientes existentes
  • Eliminación de clientes del sistema
  • Manejo de errores centralizado con logging

🔧 Servicios Utilizados

Servicios Inyectados por Constructor:

  • IClienteService - Servicio principal de gestión de clientes
  • ILogger<ClientesController> - 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

📋 Endpoints Disponibles

👥 Gestión de Clientes

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

Endpoints: 5 métodos

  • GET /GetClientes
  • GET /GetCliente/{id}
  • POST /AddCliente
  • PUT /UpdateCliente/{id}
  • DELETE /DeleteCliente/{id}
Ver detalles →

🔗 Estructura de Rutas

Ruta Base: /Master/Clientes

Todos los endpoints del controlador están bajo la ruta /Master/Clientes, 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

Cliente creado exitosamente

Usado en: POST exitosos

❌ 404 - Not Found

Cliente no encontrado

Usado en: GET, PUT, DELETE cuando el cliente 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

  • Async/Await: Todos los métodos son asíncronos para mejor rendimiento
  • 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

📝 Patrones de Diseño Utilizados

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

📈 Estadísticas Detalladas

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

Distribución de Métodos HTTP:

📋 Modelo de Datos - Cliente

Propiedades del modelo Cliente:
  • Cliente1 (double): Identificador único del cliente
  • Nombre (string): Nombre completo del cliente
  • Direccion (string): Dirección del cliente
  • Telefono (string): Número de teléfono
  • Email (string): Dirección de correo electrónico
  • FechaAlta (DateTime): Fecha de registro del cliente
  • Activo (bool): Estado de actividad del cliente