YAML文件的接口/默认定义



我有一个配置文件,想要标准化密钥。因此,当其他开发人员创建自己的配置时,他们将得到验证。

当使用编程语言时,您使用接口。

我还知道,一些基于YAML的工具,比如Ansible,也有默认值/定义,以确保您正确地编写内容。但据我所知,他们也使用插件之类的。。。

那么,有没有一种方法可以在YAML文件中实现这种效果呢?

我的意思是,我可以以某种方式通过程序验证它,但也许还有更好的东西。

您有两个选项:

  • 使用JSON架构。一些编辑器和验证器提供直接的YAML支持,而另一些则需要首先将YAML转换为JSON进行验证(这可以自动完成(。请参阅实现。这将限制您只能使用JSON中可用的功能(例如,没有复杂的键、锚点和正在解析的别名等(
  • 使用目标类型作为架构。YAML是一种序列化语言,这意味着您选择的编程语言中的本机类型充当模式。这在Python或JavaScript等具有动态类型的语言中显然不能很好地工作。它可以在Java(通过SnakeYAML(、C#(通过YamlDotNet(和其他语言中工作。您没有自动编辑器支持,但您可以编写一个小型验证工具,甚至为您喜欢的编辑器编写验证工具在今天的LSP中也很简单

Ansible(以及许多其他基于YAML的框架(并不是一个很好的例子,因为它在YAML之上使用了Jinja,因此验证起来要复杂得多。

最新更新