Documentation
¶
Overview ¶
Package config carga y gestiona la configuración de la aplicación. Proporciona un singleton de configuración que carga variables de entorno al inicio de la aplicación y las valida. Incluye configuración de caché (Valkey) y logging (Zerolog) con valores por defecto si no están definidas las variables de entorno.
Package config contiene funciones auxiliares para cargar y gestionar variables de entorno. Proporciona métodos para obtener variables de entorno con valores por defecto, localizar el archivo .env en la estructura del proyecto y cargar las configuraciones.
Package config proporciona funciones para inicializar y obtener loggers configurados según los parámetros de la aplicación. Integra el sistema de logging con Zerolog permitiendo loggers globales que respeten la configuración del entorno (development, staging, production) y el nombre de la aplicación definidos en la Config.
Package config contiene funciones de validación para la estructura de configuración.
Index ¶
- func GetLogger() zerolog.Logger
- func InitConfig(cfg *Config) error
- func ResetConfig()
- type CacheConfig
- type Config
- func (c *Config) Logging() zerolog.Logger
- func (c *Config) WithCache(enabled bool) *Config
- func (c *Config) WithCacheDB(db int) *Config
- func (c *Config) WithCacheHost(host string) *Config
- func (c *Config) WithCachePassword(password string) *Config
- func (c *Config) WithCachePort(port int) *Config
- func (c *Config) WithCacheTTL(ttl int) *Config
- func (c *Config) WithCacheUsername(username string) *Config
- type LogConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetLogger ¶ added in v1.1.0
GetLogger retorna el logger global de la aplicación basado en la configuración. Si hay error al obtener la configuración, retorna un logger con valores por defecto (development, Anime-API).
func InitConfig ¶ added in v1.1.0
InitConfig inicializa el singleton de configuración. Solo se puede ejecutar una vez. Las siguientes llamadas son ignoradas si la instancia ya fue inicializada. Retorna error si la configuración no valida o si el singleton ya fue inicializado con diferente Config.
func ResetConfig ¶ added in v1.1.0
func ResetConfig()
ResetConfig reinicia el singleton de configuración. Únicamente para uso en pruebas (testing). NO usar en producción.
Types ¶
type CacheConfig ¶
type CacheConfig struct {
CacheHost string // Host del servidor Valkey
CachePort int // Puerto del servidor Valkey
CacheUsername string // Usuario para autenticación en Valkey
CachePassword string // Contraseña para autenticación en Valkey
CacheDB int // Número de base de datos Valkey
CacheTTL int // Tiempo de vida de los valores en caché (en minutos)
EnableCache bool
}
CacheConfig contiene la configuración para la conexión a Valkey (caché distribuido).
type Config ¶
type Config struct {
AppName string
CacheConfig
LogConfig
}
Config contiene la configuración principal de la aplicación.
func GetConfig ¶
GetConfig retorna la instancia singleton de Config, inicializándola desde variables de entorno si no existe. Usa inicialización lazy con patrón once para garantizar que solo se carga una vez. Retorna error si no puede cargar la configuración desde el entorno.
func MustGetConfig ¶ added in v1.1.0
func MustGetConfig() *Config
MustGetConfig retorna la instancia singleton de Config. Panica si hay error al cargar. Útil cuando se espera que la configuración siempre esté disponible.
func NewConfigFromEnv ¶ added in v1.1.0
NewConfigFromEnv carga la configuración desde variables de entorno. Intenta cargar un archivo .env si existe, pero continúa si no se encuentra. Retorna un error si la validación de configuración falla.
func NewConfigFromEnvPath ¶ added in v1.1.0
NewConfigFromEnvPath carga la configuración desde un archivo .env específico o variables de entorno. Si envPath está vacío, intenta cargar desde la ruta por defecto. Retorna error si el archivo existe pero no puede ser leído, o si la configuración no es válida.
func NewConfigWithDefaults ¶ added in v1.1.0
func NewConfigWithDefaults() *Config
NewConfigWithDefaults crea una nueva instancia de Config con valores por defecto. Retorna una Config preconfigurada sin necesidad de variables de entorno, útil para testing o ejecución local sin configuración externa.
func (*Config) Logging ¶
Logging inicializa y retorna un logger de Zerolog configurado según los parámetros de Config. El logger se configura con el entorno y nombre de aplicación especificados.
func (*Config) WithCache ¶ added in v1.1.0
WithCache establece si el caché está habilitado (deprecated, usa WithEnableCache). Retorna la Config para encadenamiento de métodos según el patrón Builder.
func (*Config) WithCacheDB ¶ added in v1.1.0
WithCacheDB establece el número de base de datos Valkey (0-15, por defecto 0). Retorna la Config para encadenamiento de métodos según el patrón Builder.
func (*Config) WithCacheHost ¶ added in v1.1.0
WithCacheHost establece el host del servidor Valkey (caché distribuido). Retorna la Config para encadenamiento de métodos según el patrón Builder.
func (*Config) WithCachePassword ¶ added in v1.1.0
WithCachePassword establece la contraseña para autenticación en Valkey. Retorna la Config para encadenamiento de métodos según el patrón Builder.
func (*Config) WithCachePort ¶ added in v1.1.0
WithCachePort establece el puerto del servidor Valkey (por defecto 6379). Retorna la Config para encadenamiento de métodos según el patrón Builder.
func (*Config) WithCacheTTL ¶ added in v1.1.0
WithCacheTTL establece el tiempo de vida de los valores en caché en minutos (por defecto 3600). Retorna la Config para encadenamiento de métodos según el patrón Builder.
func (*Config) WithCacheUsername ¶ added in v1.1.0
WithCacheUsername establece el usuario para autenticación en Valkey. Retorna la Config para encadenamiento de métodos según el patrón Builder.