package {{.PkgName}} import ( "net/http" "context" "github.com/zeromicro/go-zero/rest/httpx" {{.ImportPackages}} ) {{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 { httpx.ErrorCtx(r.Context(), w, err) return } {{end}} // 获取请求头里的token token := r.Header.Get("Authorization") // 如果有token, 使用context传值到logic中 if token != "" { ctx := context.WithValue(r.Context(), "token", token) r = r.WithContext(ctx) } l := {{.LogicName}}.New{{.LogicType}}(r.Context(), svcCtx) {{if .HasResp}}resp, {{end}}err := l.{{.Call}}({{if .HasRequest}}&req{{end}}) if err != nil { httpx.ErrorCtx(r.Context(), w, err) } else { {{if .HasResp}}httpx.OkJsonCtx(r.Context(), w, resp){{else}}httpx.Ok(w){{end}} } } }