Skip to content

🧪 ValidateStructured

执行 composer validate 并将输出解析为结构化的 *ValidateResult,区分错误与警告列表。

何时使用

需要在程序中分别处理错误和警告(如上报到监控系统、按严重性过滤)时使用。相比 ValidateStrict 返回的原始字符串,结构化结果更易于自动化决策。

签名

go
func (c *Composer) ValidateStructured() (*ValidateResult, error)

参数

该方法无参数。

返回值

返回值类型说明
第一返回值*ValidateResult解析后的验证结果(执行出错时 Valid 置为 false
第二返回值error始终为 nil——验证失败信息已封装在结果中

ValidateResult 字段:

字段类型说明
Validbool是否通过验证
Errors[]string错误信息列表
Warnings[]string警告信息列表

注意

该方法不会因验证失败而返回 error,必须通过检查 result.Valid 判断是否通过。

示例

go
package main

import (
	"fmt"
	"log"

	"github.com/scagogogo/composer-skills/pkg/composer"
)

func main() {
	comp, err := composer.New(composer.DefaultOptions())
	if err != nil {
		log.Fatalf("初始化失败: %v", err)
	}

	result, _ := comp.ValidateStructured()
	if !result.Valid {
		for _, e := range result.Errors {
			fmt.Println("错误:", e)
		}
		for _, w := range result.Warnings {
			fmt.Println("警告:", w)
		}
		return
	}
	fmt.Println("composer.json 验证通过")
}

进阶

  • 底层解析函数 ParseValidateOutput(output string) *ValidateResult 可独立解析任意 composer validate 文本。
  • 需要严格模式输出请先用 ValidateStrict
  • 仅校验架构使用 ValidateSchema

基于 MIT 许可证发布