когда я использую метод Unmarshal
viper для заполнения структур конфигурации значениями в моем файле yaml, некоторые поля struct стали пустыми!
Я делаю это так:
viper.SetConfigType("yaml")
viper.SetConfigName("config")
viper.AddConfigPath("/etc/myapp/")
viper.AddConfigPath(".")
err := viper.ReadInConfig()
// error checking ...
conf := &ConfYaml{}
err = viper.Unmarshal(conf)
// error checking ...
И мои структуры таковы:
type ConfYaml struct {
Endpoints SectionStorageEndpoint `yaml:"endpoints"`
}
type SectionStorageEndpoint struct {
URL string `yaml:"url"`
AccessKey string `yaml:"access_key"`
SecretKey string `yaml:"secret_key"`
UseSSL bool `yaml:"use_ssl"`
Location string `yaml:"location"`
}
Здесь поля url
и location
заполнены правильными значениями в файле yaml, но остальные поля пусты!
Интересно, что когда я пытаюсь напечатать поле наподобие:
viper.Get("endpoints.access_key")
печатает правильное значение в файле yaml, а не является пустым !!