diff --git a/tools/goctl/api/gogen/genmiddleware.go b/tools/goctl/api/gogen/genmiddleware.go index 1200cce7..f6bc06d4 100644 --- a/tools/goctl/api/gogen/genmiddleware.go +++ b/tools/goctl/api/gogen/genmiddleware.go @@ -45,6 +45,8 @@ func genMiddleware(dir string, cfg *config.Config, api *spec.ApiSpec) error { subdir: middlewareDir, filename: filename + ".go", templateName: "contextTemplate", + category: category, + templateFile: middlewareImplementCodeFile, builtinTemplate: middlewareImplementCode, data: map[string]string{ "name": strings.Title(name), diff --git a/tools/goctl/api/gogen/genroutes.go b/tools/goctl/api/gogen/genroutes.go index ed486422..65c34b78 100644 --- a/tools/goctl/api/gogen/genroutes.go +++ b/tools/goctl/api/gogen/genroutes.go @@ -73,7 +73,12 @@ func genRoutes(dir, rootPkg string, cfg *config.Config, api *spec.ApiSpec) error return err } - gt := template.Must(template.New("groupTemplate").Parse(routesAdditionTemplate)) + templateText, err := pathx.LoadTemplate(category, routesAdditionTemplateFile, routesAdditionTemplate) + if err != nil { + return err + } + + gt := template.Must(template.New("groupTemplate").Parse(templateText)) for _, g := range groups { var gbuilder strings.Builder gbuilder.WriteString("[]rest.Route{") @@ -139,8 +144,8 @@ rest.WithPrefix("%s"),`, g.prefix) subdir: handlerDir, filename: routeFilename, templateName: "routesTemplate", - category: "", - templateFile: "", + category: category, + templateFile: routesTemplateFile, builtinTemplate: routesTemplate, data: map[string]string{ "importPackages": genRouteImports(rootPkg, api), diff --git a/tools/goctl/api/gogen/gentypes.go b/tools/goctl/api/gogen/gentypes.go index ae4dc4d1..5bea40dd 100644 --- a/tools/goctl/api/gogen/gentypes.go +++ b/tools/goctl/api/gogen/gentypes.go @@ -63,8 +63,8 @@ func genTypes(dir string, cfg *config.Config, api *spec.ApiSpec) error { subdir: typesDir, filename: typeFilename, templateName: "typesTemplate", - category: "", - templateFile: "", + category: category, + templateFile: typesTemplateFile, builtinTemplate: typesTemplate, data: map[string]interface{}{ "types": val, diff --git a/tools/goctl/api/gogen/template.go b/tools/goctl/api/gogen/template.go index 96f514f5..7f80c15d 100644 --- a/tools/goctl/api/gogen/template.go +++ b/tools/goctl/api/gogen/template.go @@ -8,22 +8,30 @@ import ( ) const ( - category = "api" - configTemplateFile = "config.tpl" - contextTemplateFile = "context.tpl" - etcTemplateFile = "etc.tpl" - handlerTemplateFile = "handler.tpl" - logicTemplateFile = "logic.tpl" - mainTemplateFile = "main.tpl" + category = "api" + configTemplateFile = "config.tpl" + contextTemplateFile = "context.tpl" + etcTemplateFile = "etc.tpl" + handlerTemplateFile = "handler.tpl" + logicTemplateFile = "logic.tpl" + mainTemplateFile = "main.tpl" + middlewareImplementCodeFile = "middleware.tpl" + routesTemplateFile = "routes.tpl" + routesAdditionTemplateFile = "route-addition.tpl" + typesTemplateFile = "types.tpl" ) var templates = map[string]string{ - configTemplateFile: configTemplate, - contextTemplateFile: contextTemplate, - etcTemplateFile: etcTemplate, - handlerTemplateFile: handlerTemplate, - logicTemplateFile: logicTemplate, - mainTemplateFile: mainTemplate, + configTemplateFile: configTemplate, + contextTemplateFile: contextTemplate, + etcTemplateFile: etcTemplate, + handlerTemplateFile: handlerTemplate, + logicTemplateFile: logicTemplate, + mainTemplateFile: mainTemplate, + middlewareImplementCodeFile: middlewareImplementCode, + routesTemplateFile: routesTemplate, + routesAdditionTemplateFile: routesAdditionTemplate, + typesTemplateFile: typesTemplate, } // Category returns the category of the api files.