Carregue a configuração do serviço a partir de variáveis de ambiente e flags para implantações 12-factor, com Viper opcional para padrões de arquivo e hot-reload quando a complexidade for justificada.
Configuração é tudo o que muda entre os ambientes de implantação: portas, DSNs, flags de recursos, níveis de log.
O pacote flag analisa argumentos de CLI; os.Getenv lê variáveis de ambiente de contêiner injetadas pelo Kubernetes ou CI.
spf13/viper mescla arquivos, env e flags com regras de precedência e recarregamento opcional fsnotify.
A observabilidade melhora quando os logs de inicialização imprimem instantâneos de configuração seguros e a prontidão falha em valores obrigatórios ausentes.
// Pequenos serviços: pule o Viperfunc envOr(key, fallback string) string { if v := os.Getenv(key); v != "" { return v } return fallback}// Valide uma vez, passe a struct - não leia env profundamente nos manipuladorestype Config struct { Port string }func NewServer(cfg Config) *http.Server { /* ... */ }
Versões da Stack: Esta página foi escrita para Go 1.26.x (GC padrão Green Tea, go fix modernizers - verifique o patch na compilação), chi (mais recente - verifique na compilação), gin (mais recente - verifique na compilação), echo (mais recente - verifique na compilação), google.golang.org/grpc (mais recente - verifique na compilação), sigs.k8s.io/controller-runtime (mais recente - verifique na compilação), kubebuilder (mais recente - verifique na compilação), tinygo (mais recente - verifique os alvos de placa na compilação), wazero (mais recente - verifique na compilação) e golangci-lint (mais recente - verifique o conjunto de linters na compilação).
Revisado por Chris St. John·Última atualização: 18 de jul. de 2026