← Volver a Back.API

SalonPhotosController

Controlador para la gestión de fotografías de salones del sistema

📊 Resumen del Controlador

2
Servicios Inyectados
5
Endpoints Totales
2
Categorías Principales
CRUD
Operaciones Completas

El SalonPhotosController es el controlador encargado de gestionar las fotografías de los salones del sistema RestMaster. Proporciona una API RESTful completa para administrar las imágenes de identificación visual de los diferentes salones y áreas del restaurante.

🎯 Funcionalidades Principales

  • Gestión CRUD completa de fotos de salones (4 endpoints)
  • Almacenamiento de imágenes en formato binario
  • Relación 1:1 con salones del sistema
  • Identificación visual de áreas del restaurante
  • Método OPTIONS para información de métodos HTTP permitidos (1 endpoint)

🔧 Servicios Utilizados

Servicios Inyectados por Constructor:

  • ISalonPhotosService - Servicio principal de gestión de fotos de salones
  • ILogger<SalonPhotosController> - 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 Fotos de Salones

Gestión CRUD completa de fotos de salones del sistema
CRUD
Media

Endpoints: 4 métodos

  • GET /GetSalonPhoto/{salon}
  • POST /AddSalonPhoto
  • PUT /UpdateSalonPhoto/{salon}
  • DELETE /DeleteSalonPhoto/{salon}
Ver detalles →

ℹ️ Información del Sistema

Información sobre métodos HTTP permitidos
System
Info

Endpoints: 1 método

  • OPTIONS /
Ver detalles →

🔗 Estructura de Rutas

Ruta Base: /Master/SalonPhotos

Todos los endpoints del controlador están bajo la ruta /Master/SalonPhotos, lo que indica que maneja datos maestros del sistema relacionados con fotografías de salones.

Patrones de URL por Categoría:

📊 Códigos de Respuesta

✅ 200 - OK

Operación exitosa, datos devueltos correctamente

Usado en: GET, PUT, DELETE exitosos

✅ 201 - Created

Foto de salón creada exitosamente

Usado en: POST exitosos

❌ 404 - Not Found

Foto de salón no encontrada

Usado en: GET, PUT, DELETE cuando el recurso 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: Todos los métodos son síncronos para operaciones de archivo
  • 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
  • File Handling: Gestión de archivos de imagen binarios

⚠️ 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
  • Validación de tipos de archivo para imágenes
  • Control de acceso a fotos de salones

📝 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
  • File Service Pattern: Gestión de archivos multimedia

📈 Estadísticas Detalladas

158
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 - SalonesFoto

Propiedades del modelo SalonesFoto:
  • Salon (double): ID del salón (clave primaria)
  • Imagen (byte[]): Datos de la imagen en formato binario

🔑 Características del Modelo

  • Clave primaria: El campo Salon es la clave primaria única
  • Relación 1:1: Cada salón puede tener una única foto
  • Almacenamiento binario: Imágenes guardadas como array de bytes
  • Integración: Se relaciona directamente con el modelo Salones
  • Tabla: SALONES_FOTO en la base de datos

⚠️ Consideraciones de Almacenamiento

  • Las imágenes se almacenan como datos binarios en la base de datos
  • Se recomienda optimizar el tamaño de las imágenes antes del almacenamiento
  • Considerar el impacto en el rendimiento de la base de datos
  • Implementar compresión de imágenes para ahorrar espacio