问题标签 [viper-go]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
http - 使用 viper 配置动态创建的 net/http 执行例程
我有 viper 在 config.yml 中提供以下值并在此处附加其余配置:
配置.go 包含
服务器.go
Main.go
但是当我运行服务器时,我只看到一个在 1030 和 1029 的服务似乎该过程已经结束。
这是输出:
我在这里做错了什么,将不胜感激任何见解以更好地理解它,也将不胜感激任何想法或建议。
提前致谢!
go - 使用 Viper Go 读取环境变量
我试图让 Viper 读取我的环境变量,但它不起作用。这是我的配置:
还有我的config.go
文件:
这一行fmt.Println("Sign Key: ", v.GetString("jwt_signing_key"))
只给了我在 yaml 文件中传递的密钥RESTFUL_JWT_SIGNING_KEY
。我不知道我做错了什么。
根据文档:
AutomaticEnv 是一个强大的助手,尤其是与 SetEnvPrefix 结合使用时。调用时,Viper 将在任何时候发出 viper.Get 请求时检查环境变量。它将应用以下规则。它将检查名称与大写键匹配的环境变量,如果设置了 EnvPrefix 前缀。
那么,为什么不读取环境变量呢?
使用JSON
我的解析器看起来像这样:
在Validate
函数中,我决定检查Config
结构,这就是我得到的:
Config: {config/errors.yaml 1530 RESTFUL_APP_DSN HS256 RESTFUL_APP_JWT_SIGNING_KEY RESTFUL_APP_JWT_VERIFICATION_KEY}
go - 从单独的命令/进程共享属性
我提供带有几个命令和子命令的命令行工具,我使用cobra命令行,我有两个单独的命令 ,首先是其他命令的先决条件
例如,第一个命令是通过创建临时文件夹并验证某些文件来首选环境
第二个命令应该从第一个命令中获取一些属性
用户应该像这样执行它
btr 准备
btr 运行
执行时,run command
它应该从prepare
命令结果中获取一些数据
更新
好吧,下面的答案确实没有帮助。我需要在本地和云环境中的两个命令之间共享状态),如果我从调用 1 个命令的 shell 脚本运行命令行命令,然后调用需要从第一个命令,我需要 E2E解决方案和我的上下文中的代码实例
更新 2
假设我知道我需要配置文件(json),
我应该在哪里创建它(路径)?
什么时候清洗呢?
如果我使用 1file 我应该如何验证以存储与特定流程相关的数据并在需要时获取其他流程数据(guid)?
可以说我的配置如下
go - 我如何将动态 Viper 或 JSON 键解组为 go 中结构字段的一部分
当 JSON 不是“所需”格式时,我发现 GOLANG 中的编组和解组非常令人困惑。例如,在一个 JSON 配置文件(我试图与 Viper 一起使用)中,我有一个如下所示的配置文件:
其中“事物”可能是另一个对象 n 级下的对象,我有一个 struct :
我如何去编组 JSON,更具体地说是 viper 配置(使用 viper.Get("things") 来获取Things
类似的数组:
我特别不确定如何将密钥作为结构字段
go - 如何将 viper 配置解组为带有破折号字符的结构
我将以下配置文件定义为 toml 文件:
然后,我有这个结构
请注意,我的 ConfigureOpts 字段名格式与配置文件中定义的格式不同。
我试过这段代码,但失败了
这是输出
go - 如何将 Viper 配置值正确解组为包含字符串数组的结构?
我注意到,当 viper 尝试解组为结构时,这可能是一个错误。为了更好地解释它,请考虑一下:
我有一个如下的cli命令
dd-cli submit-bug --name "Bug 1" --tag reason1 --tag reason2
这是我的命令行源代码
我运行这个命令:
输出如下
我希望viper.Unmarshall()
将正确地省略[
for submitBugOpts.ReasonTags [0]
并省略]
for submitBugOpts.ReasonTags[1]
。所以 submitBugOpts.ReasonTags 的期望值不包含任何[
and ]
。
任何指针如何解决这个问题?我已经在 viper repo 上提交了这个问题:https ://github.com/spf13/viper/issues/527 。但是,我要问的是,以防万一你们也知道如何处理这个问题。
parsing - 使用 viper 解析 YAML 时如何使用动态密钥?
我有以下 yml 文件:
我想用 viper 来解析它,但name-of-item
可以是任何东西,所以我不知道如何解决这个问题。我知道我可以使用以下内容:
在这种情况下,我可以解组,因为我在声明NameOfItem
,但是如果我不知道字段的名称(或者换句话说,如果它是动态的)我该怎么办?
go - 从 viper 配置文件中删除键值对
有没有办法从加载的配置文件中删除键/值对?
不工作
go - 如何使用 Viper 从嵌套的 YAML 结构中获取值?
如何编写下面的代码以从嵌套的 yaml 结构中获取字符串?
这是我的yaml:
这是示例代码
我的问题:
当我打印这个时,我得到一个空白字符串。根据文档,这就是获取嵌套元素的方式。我怀疑它不起作用,因为元素是列表。我需要做一个结构吗?我不知道如何制作一个,特别是如果它需要嵌套。
go - Go viper .yaml 值环境变量覆盖
我试图application.yaml
在 go 应用程序中包含${RMQ_HOST}
我想用环境变量覆盖的值的文件。
在application.yaml
我有:
在我的装载机中,我有:
我遇到的问题${RMQ_HOST}
不会被我在环境变量中设置的值替换,并尝试使用此字符串连接到 RabbitMQ
amqp://test:test@${RMQ_HOST}:${RMQ_PORT}/test
代替
amqp://test:test@test:test/test