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}} 是根据条件判断是否添加的代码

浙公网安备 33010602011771号