Documentation
¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
Server ServerConfig `mapstructure:"server"`
Database DatabaseConfig `mapstructure:"database"`
Logging LoggingConfig `mapstructure:"logging"`
}
Config represents the application configuration
func Load ¶
Load loads configuration from files and environment variables
Example ¶
package main
import (
"fmt"
"log"
"github.com/captain-corgi/go-graphql-example/internal/infrastructure/config"
)
func main() {
// Load configuration from files and environment variables
cfg, err := config.Load()
if err != nil {
log.Fatalf("Failed to load configuration: %v", err)
}
fmt.Printf("Server will run on port: %s\n", cfg.Server.Port)
fmt.Printf("Database URL: %s\n", cfg.Database.URL)
fmt.Printf("Log level: %s\n", cfg.Logging.Level)
}
Output: Server will run on port: 8080 Database URL: postgres://user:password@localhost:5432/graphql_service?sslmode=disable Log level: info
func MustLoad ¶
func MustLoad() *Config
MustLoad loads configuration and panics if it fails
Example ¶
package main
import (
"fmt"
"github.com/captain-corgi/go-graphql-example/internal/infrastructure/config"
)
func main() {
// Load configuration and panic if it fails
cfg := config.MustLoad()
fmt.Printf("Server will run on port: %s\n", cfg.Server.Port)
}
Output: Server will run on port: 8080
type DatabaseConfig ¶
type DatabaseConfig struct {
URL string `mapstructure:"url"`
MaxOpenConns int `mapstructure:"max_open_conns"`
MaxIdleConns int `mapstructure:"max_idle_conns"`
ConnMaxLifetime time.Duration `mapstructure:"conn_max_lifetime"`
ConnMaxIdleTime time.Duration `mapstructure:"conn_max_idle_time"`
}
DatabaseConfig holds database connection configuration
func (*DatabaseConfig) Validate ¶
func (d *DatabaseConfig) Validate() error
Validate validates database configuration
type LoggingConfig ¶
type LoggingConfig struct {
Level string `mapstructure:"level"`
Format string `mapstructure:"format"`
}
LoggingConfig holds logging configuration
func (*LoggingConfig) Validate ¶
func (l *LoggingConfig) Validate() error
Validate validates logging configuration
type ServerConfig ¶
type ServerConfig struct {
Port string `mapstructure:"port"`
ReadTimeout time.Duration `mapstructure:"read_timeout"`
WriteTimeout time.Duration `mapstructure:"write_timeout"`
IdleTimeout time.Duration `mapstructure:"idle_timeout"`
}
ServerConfig holds HTTP server configuration
func (*ServerConfig) Validate ¶
func (s *ServerConfig) Validate() error
Validate validates server configuration
Click to show internal directories.
Click to hide internal directories.