根据Breeze Schema生成各种语言的Breeze Message对象类。目前支持Java、PHP、Golang、C++。
生成代码的样例如下:
func testGenerateCode() {
path := "./main" // path can be a dir or a file
config := &generator.Config{WritePath: "./autoGenerate", CodeTemplates: "php, go, java", Options: make(map[string]string)}
result, err := generator.GeneratePath(path, config) // parse schema and generate code
fmt.Printf("%v, %v\n", result, err)
}
其中Config用来配置Schema解析和代码生成时的配置:
-
WritePath
用来指定生成代码的输出目录。 -
CodeTemplates
用来指定生成代码的语言,多种语言直接使用逗号分隔。如果需要对所有语言都生成,则可以使用all
作为参数值。 -
Options
用来指定额外参数,例如针对不同语言生成模板的参数,比如templates.GoPackagePrefix
用来指定go语言生成时统一的包前缀等。
具体代码可以参考main/test.go