goctl template模板的使用

goctl template模板的使用

# 在指定目录下生成模板
goctl template init --home ./template

# 使用指定模板生成代码
goctl api go -api ./auth/auth_api/auth.api -dir ./auth/auth_api --home ./template

示例:修改handler.tpl

package {{.PkgName}}

import (
	"net/http"

    {{if .HasRequest}}
	"github.com/zeromicro/go-zero/rest/httpx"
	{{end}}
	{{.ImportPackages}}
	"im_server/common/response"
)

{{if .HasDoc}}{{.Doc}}{{end}}
func {{.HandlerName}}(svcCtx *svc.ServiceContext) http.HandlerFunc {
	return func(w http.ResponseWriter, r *http.Request) {
		{{if .HasRequest}}var req types.{{.RequestType}}
		if err := httpx.Parse(r, &req); err != nil {
			response.Response(w, r, nil, err)
			return
		}

		{{end}}l := {{.LogicName}}.New{{.LogicType}}(r.Context(), svcCtx)
		{{if .HasResp}}resp, {{end}}err := l.{{.Call}}({{if .HasRequest}}&req{{end}})
		{{if .HasResp}}response.Response(w, r, resp, err){{else}}response.Response(w, r, nil, err){{end}}
	}
}

条件判断是否编写

{{if .HasRequest}}xxxxxxxxxxx{{end}}

{{else}}xxxxxxxxxxx{{end}}

修改内容

"im_server/common/response" 是我需要添加的包

response.Response(w, r, nil, err) 是我添加的代码

{{if .HasResp}}response.Response(w, r, resp, err){{else}}response.Response(w, r, nil, err){{end}} 是根据条件判断是否添加的代码

posted @ 2025-04-09 10:36  小依昂阳  阅读(39)  评论(0)    收藏  举报