使用 viper 验证配置文件

Validating configurations files with viper

我一直在寻找 go 的配置解析器,https://github.com/spf13/viper 似乎是强烈推荐的。

我很惊讶地发现默认情况下不验证配置文件。 Viper 解析文件并从中提取请求的值,但我找不到检测错误配置的方法。

例如,我创建了一个(Java 样式).properties 文件,其中只包含“???”没有别的。这被接受没有任何错误。

我能理解你应该忽略无关配置项的理念,但我希望更严谨。我还想拒绝任何与属性文件中的 X=Y 格式不匹配的内容。

对我来说,这是一个致命的缺陷,建议我应该使用不同的包(或者像往常一样使用我自己的包)。

我是不是漏掉了什么? viper 实际上支持检测和拒绝错误的配置密钥吗?

我认为答案是否定的。 viper 不验证 java .properties 文件。 我发布了错误报告(或功能请求,具体取决于您的观点)https://github.com/spf13/viper/issues/790

你可以试试https://github.com/num30/config library which is based on Viper. It has built-in validation.