← Volver a Middleware
← Volver a Middleware

SpanishCultureMiddleware

Middleware para configuración automática de cultura española en todas las peticiones

📊 Resumen del Middleware

17
Líneas de Código
es-ES
Cultura
Simple
Implementación
Global
Alcance

El SpanishCultureMiddleware es un componente de configuración del sistema RestMaster que establece automáticamente la cultura española (es-ES) para todas las peticiones HTTP. Este middleware asegura que las fechas, números, monedas y otros elementos culturales se formateen correctamente según los estándares españoles.

🎯 Funcionalidades Principales

  • Configuración automática: Establece cultura es-ES para cada petición
  • Formato de fechas: dd/MM/yyyy y formatos españoles
  • Formato de números: Separador decimal con coma (,) y miles con punto (.)
  • Formato de moneda: Euro (€) con formato español
  • Configuración global: Aplica a toda la petición
  • Configuración de UI: Interfaz de usuario en español
  • Configuración de cultura: Cultura actual y UI
  • Alcance por petición: Configuración específica por request

🔧 Dependencias y Servicios

Dependencias Requeridas:

  • System.Globalization: CultureInfo y funcionalidades de cultura
  • Microsoft.AspNetCore.Http: HttpContext y RequestDelegate
  • System: Funcionalidades básicas de .NET

📊 Configuración de Cultura

  • CultureInfo: new CultureInfo("es-ES")
  • CurrentCulture: Cultura para formateo de datos
  • CurrentUICulture: Cultura para recursos de interfaz
  • Alcance: Thread-local para cada petición

📋 Flujo de Procesamiento

🎯 Pipeline de Configuración Cultural

  1. Inicio de petición: Middleware intercepta la petición
  2. Creación de cultura: Instancia CultureInfo("es-ES")
  3. Configuración de CurrentCulture: Establece cultura para datos
  4. Configuración de CurrentUICulture: Establece cultura para UI
  5. Continuación del pipeline: Pasa al siguiente middleware
  6. Procesamiento normal: Resto de middlewares y controladores
  7. Fin de petición: Configuración se mantiene durante toda la petición

⚠️ Características de Configuración

  • Thread-local: Configuración específica por hilo de petición
  • No persistente: No afecta otras peticiones concurrentes
  • Automática: No requiere configuración manual
  • Global por petición: Aplica a toda la petición HTTP
  • Sin dependencias externas: No requiere servicios adicionales

📊 Configuración de Cultura Española

📅 Formato de Fechas

Configuración de fechas en formato español
  • Formato corto: dd/MM/yyyy (15/01/2024)
  • Formato largo: lunes, 15 de enero de 2024
  • Separador: / (barra)
  • Orden: Día/Mes/Año

🔢 Formato de Números

Configuración de números en formato español
  • Separador decimal: , (coma)
  • Separador de miles: . (punto)
  • Ejemplo: 1.234,56
  • Precisión: 2 decimales por defecto

💰 Formato de Moneda

Configuración de moneda en formato español
  • Símbolo: € (Euro)
  • Posición: Después del número
  • Ejemplo: 1.234,56 €
  • Separador decimal: , (coma)

🌍 Configuración Regional

Configuración regional española
  • Código: es-ES
  • País: España
  • Idioma: Español
  • Zona horaria: Europe/Madrid

🔍 Características Técnicas

🎯 Características del Middleware

  • Async/Await: Operaciones asíncronas completas
  • Thread-local: Configuración específica por hilo
  • CultureInfo: Uso de System.Globalization.CultureInfo
  • Dual Culture: CurrentCulture y CurrentUICulture
  • Request Scope: Alcance específico por petición
  • Performance Optimized: Configuración eficiente
  • No Dependencies: Sin dependencias externas
  • Simple Implementation: Implementación minimalista

⚠️ Consideraciones de Implementación

  • La configuración es thread-local y no persistente
  • No afecta a otras peticiones concurrentes
  • Debe ejecutarse temprano en el pipeline
  • No requiere configuración adicional
  • Es compatible con todos los controladores
  • No interfiere con otros middlewares

📝 Patrones de Diseño Utilizados

  • Middleware Pattern: Procesamiento en pipeline
  • Chain of Responsibility: Delegación de responsabilidades
  • Configuration Pattern: Configuración centralizada
  • Thread-local Pattern: Estado específico por hilo
  • Simple Factory: Creación de CultureInfo
  • Template Method: Estructura común de middleware

📈 Estadísticas de Rendimiento

O(1)
Complejidad
Thread
Local Scope
17
Líneas
Simple
Implementation

Optimizaciones Implementadas:

  • Configuración eficiente: Una sola instancia de CultureInfo por petición
  • Thread-local: No afecta rendimiento de otras peticiones
  • Sin dependencias: No requiere inyección de servicios
  • Configuración directa: Asignación directa a propiedades estáticas
  • Early execution: Se ejecuta temprano en el pipeline
  • Minimal overhead: Overhead mínimo en el procesamiento

🔗 Integración con Otros Componentes

🎯 Middleware Relacionados

  • GrafanaLoggingMiddleware: Logging con formato español
  • ErrorHandlingMiddleware: Errores con formato español
  • JwtLoggingMiddleware: Logging de autenticación
  • DayOpenValidationMiddleware: Validaciones con formato español

📋 Orden de Ejecución Recomendado

  1. SpanishCultureMiddleware: Configuración de cultura (PRIMERO)
  2. GrafanaLoggingMiddleware: Logging de inicio
  3. JwtLoggingMiddleware: Logging de autenticación
  4. JwtAutoRefreshMiddleware: Renovación de tokens
  5. DayOpenValidationMiddleware: Validación de día abierto
  6. ErrorHandlingMiddleware: Manejo de errores

📋 Casos de Uso

🎯 Escenarios de Configuración Cultural

  • Formateo de fechas: Fechas en formato dd/MM/yyyy
  • Formateo de números: Números con separadores españoles
  • Formateo de moneda: Euros con formato español
  • Respuestas JSON: Datos formateados en español
  • Logs del sistema: Fechas y números en formato español
  • Validaciones: Mensajes de error en español
  • Reportes: Documentos con formato español
  • Interfaz de usuario: Elementos de UI en español

🔍 Ejemplos de Formateo

  • Fecha: "15/01/2024" en lugar de "01/15/2024"
  • Número: "1.234,56" en lugar de "1,234.56"
  • Moneda: "1.234,56 €" en lugar de "$1,234.56"
  • Porcentaje: "12,34%" en lugar de "12.34%"
  • Hora: "15:30" en formato 24 horas
  • Fecha larga: "lunes, 15 de enero de 2024"