← Volver a Back.API

DrawingsController

Controlador para la gestión completa de dibujos y planos del restaurante

📊 Resumen del Controlador

2
Servicios Inyectados
7
Endpoints Totales
2
Categorías de Funcionalidad
CRUD
Operaciones Completas

El DrawingsController es el controlador encargado de gestionar todos los aspectos relacionados con los dibujos y planos del restaurante. Proporciona una API RESTful completa con operaciones CRUD para la entidad Dibujo, incluyendo la gestión de imágenes asociadas a los dibujos.

🎯 Funcionalidades Principales

  • Gestión CRUD completa de dibujos (5 endpoints)
  • Consulta de todos los dibujos registrados en el sistema
  • Búsqueda de dibujo específico por ID y estado
  • Registro de nuevos dibujos con validación de datos
  • Actualización de información de dibujos existentes
  • Eliminación de dibujos del sistema
  • Gestión de imágenes asociadas a los dibujos (1 endpoint)
  • Método OPTIONS para información de métodos HTTP permitidos (1 endpoint)

🔧 Servicios Utilizados

Servicios Inyectados por Constructor:

  • IDrawingsService - Servicio principal de gestión de dibujos
  • ILogger<DrawingsController> - 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 Dibujos

Operaciones CRUD completas para la gestión de dibujos y planos
CRUD
Core

Endpoints: 5 métodos

  • GET /GetDrawings
  • GET /GetDrawing/{dibujos}/{estado}
  • POST /AddDrawing
  • PUT /UpdateDrawing/{dibujos}/{estado}
  • DELETE /DeleteDrawing/{dibujos}/{estado}
Ver detalles →

🖼️ Gestión de Imágenes

Gestión de imágenes asociadas a los dibujos
Media
Images

Endpoints: 1 método

  • GET /GetPicture/{dibujos}/{estado}
Ver detalles →

🔗 Estructura de Rutas

Ruta Base: /Master/Drawings

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

Patrones de URL por Categoría:

⚠️ Identificación de Dibujos

Los dibujos se identifican mediante dos parámetros:

  • dibujos (double): ID único del dibujo
  • estado (string): Estado o versión del dibujo

📊 Códigos de Respuesta

✅ 200 - OK

Operación exitosa, datos devueltos correctamente

Usado en: GET, PUT, DELETE exitosos

✅ 201 - Created

Dibujo creado exitosamente

Usado en: POST exitosos

❌ 404 - Not Found

Dibujo o imagen no encontrado

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: Los métodos son síncronos para operaciones de dibujos
  • 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 JPEG

⚠️ 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
  • Las imágenes se sirven como archivos JPEG con validación de contenido

📝 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 a través de servicios

📈 Estadísticas Detalladas

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

Distribución de Métodos HTTP:

📋 Modelo de Datos - Dibujo

Propiedades del modelo Dibujo:
  • Dibujos (double): Identificador único del dibujo
  • Estado (string): Estado o versión del dibujo
  • Descripcion (string): Descripción del dibujo o plano
  • FechaCreacion (DateTime): Fecha de creación del dibujo
  • FechaModificacion (DateTime): Fecha de última modificación
  • Activo (bool): Estado de actividad del dibujo
  • Imagen (byte[]): Datos de la imagen asociada al dibujo

📝 Notas sobre el Modelo

  • Identificación compuesta: Los dibujos se identifican por ID + Estado
  • Versiones: El campo Estado permite manejar diferentes versiones del mismo dibujo
  • Imágenes: Los dibujos pueden tener imágenes asociadas almacenadas como byte arrays
  • Auditoría: Se mantienen fechas de creación y modificación