问题标签 [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.

0 投票
0 回答
341 浏览

go - 使用 Golang viper 读取地图切片

我正在尝试使用以下代码读取带有 golang viper 的地图片段(建议:Read a slice of maps with Golang Viper

输出是 2 个空结构的切片,例如

尝试了几种不同的方法,但仍然没有找到一种有效的方法。谁能给我一个提示?谢谢。

PS:这是一张带有一些 kv 对的地图,而不仅仅是 1 个 kv 对。为了简洁起见,我把它剪掉了。

0 投票
0 回答
2234 浏览

go - 如何在 golang 中设置 cobra 和 viper 以进行测试配置

我们有一个我们正在启动的二进制文件,它有几个子命令,全部设置为cobra. 我们想viper用于配置。所以这个的初始化是根据文档设置的:

我的问题是initConfig

它在里面运行init,它在我的子命令包中——所以我的子命令测试也将运行它init

麻烦的是它会寻找home文件夹,当然可能会弄乱现有的配置。换句话说,我不想要这个进行测试,我想要一个干净的测试目录。

我怎样才能做到这一点?由于标志和配置的早期初始化,它必须在内部运行init,我无法找到替代方案。

0 投票
1 回答
2664 浏览

go - 在 Viper 中使用 ENV 变量覆盖配置的问题

我们正在使用 Viper 读取和解析我们的配置文件,所有这些都可以正常工作。

但是,我们无法使用 env 变量覆盖我们的一些配置值。这些是配置绑定到结构或结构数组的特定用例。

这是我们的 config.yaml 中的一个示例:

绑定到以下结构(golang):

我们无法使用环境变量覆盖验证器的值。

以下是我们使用的 Viper 选项:

有没有人遇到过类似的问题,或者可以确认 Viper 不支持这样的用例?

任何指针将不胜感激。

谢谢

0 投票
1 回答
309 浏览

go - 将带有用破折号分隔的单词的标志映射到 camel_case 配置?

我有一个如下所示的配置格式:

我的基于 Cobra 的 CLI 有带有破折号的标志(例如--foo-bar=value1 --baz-bot=value2)。

Viper 不知道如何将它们正确映射到配置中,当它们在 CLI 中设置以覆盖配置文件值时。这里有什么解决办法吗?Viper 配置设置如下所示:

如果 viper 无法做到,也愿意为支持此功能的库提供建议。

0 投票
1 回答
699 浏览

go - 在 go 中解组配置文件

我正在尝试使用viper库读取 json 文件中的配置

和 config.go 像这样

输出打印为空配置

0 投票
1 回答
59 浏览

go - 如何获取 openapi 服务器值

我的服务器有以下yaml openapi 3配置:

如果没有那个讨厌的破折号,通过这些值获得这些值viper是微不足道的,但我正在努力解决它(这是使yaml openapi 3合规所必需的。

这样做:

告诉我这个:

但是我的 n00biegolang能力缺乏 ninja Skillz 来检索该:10000port

非常感谢任何帮助!

0 投票
1 回答
2196 浏览

go - 使用 Go (golang)、cobra 和 viper 时,StringVar 与 StringVarP 或 String 与 StringP 有什么区别?

我正在维护一些使用 Go (golang)、ViperCobra编写的代码。

在一条线上,它具有:

然后在下一行它有

String在这种情况下和有什么区别StringP

查看各种教程中的示例用法,似乎有各种方法的版本P和非P版本,例如StringVarPStringVar

这些版本有什么区别?的意义P何在?

有没有办法可以判断给定方法是否有P对应P物?

搜索引擎倾向于将我带到 cobra 或 viper 教程页面,它们使用这些方法而不解释P或不P对应。

我发现一些材料pflags表明它可能与参数是否具有短(一个字母)形式有关。会是这样吗?

编辑后说明:收到此问题的答案后,spf13/pflag上述golang框架似乎确实在后台使用了它。但是,在使用 cobra 或 viper 时是否应该查看 pflags 文档并不清楚。
由于这是一个问答网站,我已经恢复了一个编辑,该编辑删除了我在寻找这个答案时输入的许多关键字,因为我觉得其他寻找相同信息的人会以这种方式得到更好的服务。

0 投票
1 回答
1828 浏览

go - 使用 viper 从 envfile 读取配置

我真的不明白毒蛇是如何工作的。这是我的代码:

配置.go

.env SERVER_PORT=:4747

问题是 Unmarshal 不起作用当我使用例如 configuration.Server.Port 它是空的

0 投票
1 回答
249 浏览

go - golang viper & hcl 配置文件问题

我使用 viper 编写了一个简单的 go 程序来读取配置文件。

带有 ./example.hcl 的

程序的输出是

如果我将配置文件的名称切换为 .yaml (并相应地调整代码)并使用

代码有效。有人对我做错了什么有建议吗?还是 viper 不适用于嵌入式 hcl 字段?

0 投票
1 回答
809 浏览

go - 如何在 Viper 中设置必需的配置字段?

我使用 Viper https://github.com/spf13/viper在我的 GO 应用程序中管理项目配置,以及将配置值解组到结构。

当我错过 .yml 配置文件中的一些配置时,它在 Unmarshaling 期间不会抛出任何错误(正如我所猜测的)。

那么我怎样才能强制实现所有配置呢?如果 struct 中的任何字段在 yaml 中没有值,我想查看错误。