为了账号安全,请及时绑定邮箱和手机立即绑定

如何在cuelang中使用yaml.Validate进行yaml验证?

如何在cuelang中使用yaml.Validate进行yaml验证?

Go
湖上湖 2023-01-03 11:18:10
/cuelang.org/go/yaml.gofunc Validate(b []byte, v cue.Value) error {   _, err := pkgyaml.Validate(b, v)   return err}没有任何示例代码告诉我如何使用此 API,我需要一些示例来了解如何使用它。
查看完整描述

1 回答

?
哈士奇WWW

TA贡献1799条经验 获得超6个赞

我想到了。首先我们需要一个提示文件:


// demo.cue

min: number

max: number & >min

接着:


// valid_test.go

package demo


import (

    "cuelang.org/go/cue/cuecontext"

    "cuelang.org/go/encoding/yaml"

    "fmt"

    "io/ioutil"

    "strings"

    "testing"

)


const Yaml = `

min: 10

max: 5

`


func TestValidate(t *testing.T) {

    r := strings.NewReader(Yaml)

    b, _ := ioutil.ReadAll(r)

    cue, _ := ioutil.ReadFile("demo.cue")


    // Cue API for Go

    c := cuecontext.New()

    v := c.CompileBytes(cue)

    err := yaml.Validate(b, v)


    fmt.Println(err) // max: invalid value 5 (out of bound >10)

}


查看完整回答
反对 回复 2023-01-03
  • 1 回答
  • 0 关注
  • 123 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号