5 validation schema yaml go dockerfile
我们有工具需要读取具有特定结构的YAML文件。当我们获得YAML文件时,我们需要知道
- 根据一些准则检查YAML文件是否有效-语义检查
- 语法错误在哪里(如果有)
例如,这是我们需要解决的验证示例
_version: {required: true}
id: {required: true, pattern: '/^[A-Za_\-\.]+$/'}
release-version: {required: true}
type:
builds:
type:seq
sequence:
-type:map
mapping:
name:{required: true, unique: true, pattern: '/^[A-Za-z0-3_\-\.]+$/'}
params:
type: map
mapping: { =: {type: any} }
映射是键值对象
seq可以具有多个构建
类型,包括is和键值
我们使用此开放源代码解析yaml https://github.com/go-yaml/yaml
一个想法(很好)是像下面这样转换为json:将文件转换为json并验证它具有支持它的库,在我的上下文中的任何示例都将非常有用https://github.com/ xeipuuv / gojsonschema
但不确定我该如何处理
Type map
Type seq