问题标签 [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.
go - 使用 Golang viper 读取地图切片
我正在尝试使用以下代码读取带有 golang viper 的地图片段(建议:Read a slice of maps with Golang Viper)
输出是 2 个空结构的切片,例如
尝试了几种不同的方法,但仍然没有找到一种有效的方法。谁能给我一个提示?谢谢。
PS:这是一张带有一些 kv 对的地图,而不仅仅是 1 个 kv 对。为了简洁起见,我把它剪掉了。
go - 如何在 golang 中设置 cobra 和 viper 以进行测试配置
我们有一个我们正在启动的二进制文件,它有几个子命令,全部设置为cobra
. 我们想viper
用于配置。所以这个的初始化是根据文档设置的:
我的问题是initConfig
:
它在里面运行init
,它在我的子命令包中——所以我的子命令测试也将运行它init
。
麻烦的是它会寻找home
文件夹,当然可能会弄乱现有的配置。换句话说,我不想要这个进行测试,我想要一个干净的测试目录。
我怎样才能做到这一点?由于标志和配置的早期初始化,它必须在内部运行init
,我无法找到替代方案。
go - 在 Viper 中使用 ENV 变量覆盖配置的问题
我们正在使用 Viper 读取和解析我们的配置文件,所有这些都可以正常工作。
但是,我们无法使用 env 变量覆盖我们的一些配置值。这些是配置绑定到结构或结构数组的特定用例。
这是我们的 config.yaml 中的一个示例:
绑定到以下结构(golang):
我们无法使用环境变量覆盖验证器的值。
以下是我们使用的 Viper 选项:
有没有人遇到过类似的问题,或者可以确认 Viper 不支持这样的用例?
任何指针将不胜感激。
谢谢
go - 将带有用破折号分隔的单词的标志映射到 camel_case 配置?
我有一个如下所示的配置格式:
我的基于 Cobra 的 CLI 有带有破折号的标志(例如--foo-bar=value1 --baz-bot=value2
)。
Viper 不知道如何将它们正确映射到配置中,当它们在 CLI 中设置以覆盖配置文件值时。这里有什么解决办法吗?Viper 配置设置如下所示:
如果 viper 无法做到,也愿意为支持此功能的库提供建议。
go - 如何获取 openapi 服务器值
我的服务器有以下yaml
openapi 3
配置:
如果没有那个讨厌的破折号,通过这些值获得这些值viper
是微不足道的,但我正在努力解决它(这是使yaml
openapi 3
合规所必需的。
这样做:
告诉我这个:
但是我的 n00biegolang
能力缺乏 ninja Skillz 来检索该:10000
值port
。
非常感谢任何帮助!
go - 使用 Go (golang)、cobra 和 viper 时,StringVar 与 StringVarP 或 String 与 StringP 有什么区别?
我正在维护一些使用 Go (golang)、Viper和Cobra编写的代码。
在一条线上,它具有:
然后在下一行它有
String
在这种情况下和有什么区别StringP
?
查看各种教程中的示例用法,似乎有各种方法的版本P
和非P
版本,例如StringVarP
和StringVar
。
这些版本有什么区别?的意义P
何在?
有没有办法可以判断给定方法是否有P
对应P
物?
搜索引擎倾向于将我带到 cobra 或 viper 教程页面,它们使用这些方法而不解释P
或不P
对应。
我发现一些材料pflags
表明它可能与参数是否具有短(一个字母)形式有关。会是这样吗?
编辑后说明:收到此问题的答案后,spf13/pflag
上述golang框架似乎确实在后台使用了它。但是,在使用 cobra 或 viper 时是否应该查看 pflags 文档并不清楚。
由于这是一个问答网站,我已经恢复了一个编辑,该编辑删除了我在寻找这个答案时输入的许多关键字,因为我觉得其他寻找相同信息的人会以这种方式得到更好的服务。
go - 使用 viper 从 envfile 读取配置
我真的不明白毒蛇是如何工作的。这是我的代码:
配置.go
.env
SERVER_PORT=:4747
问题是 Unmarshal 不起作用当我使用例如 configuration.Server.Port 它是空的
go - golang viper & hcl 配置文件问题
我使用 viper 编写了一个简单的 go 程序来读取配置文件。
带有 ./example.hcl 的
程序的输出是
如果我将配置文件的名称切换为 .yaml (并相应地调整代码)并使用
代码有效。有人对我做错了什么有建议吗?还是 viper 不适用于嵌入式 hcl 字段?
go - 如何在 Viper 中设置必需的配置字段?
我使用 Viper https://github.com/spf13/viper在我的 GO 应用程序中管理项目配置,以及将配置值解组到结构。
当我错过 .yml 配置文件中的一些配置时,它在 Unmarshaling 期间不会抛出任何错误(正如我所猜测的)。
那么我怎样才能强制实现所有配置呢?如果 struct 中的任何字段在 yaml 中没有值,我想查看错误。