Эх сурвалжийг харах

fix: goctl genhandler duplicate rest/httpx & goctl genhandler template support custom import httpx package (#2152)

杨圆建 2 жил өмнө
parent
commit
bc85eaa9b1

+ 20 - 19
tools/goctl/api/gogen/genhandlers.go

@@ -21,15 +21,16 @@ const defaultLogicPackage = "logic"
 var handlerTemplate string
 
 type handlerInfo struct {
-	PkgName        string
-	ImportPackages string
-	HandlerName    string
-	RequestType    string
-	LogicName      string
-	LogicType      string
-	Call           string
-	HasResp        bool
-	HasRequest     bool
+	PkgName            string
+	ImportPackages     string
+	ImportHttpxPackage string
+	HandlerName        string
+	RequestType        string
+	LogicName          string
+	LogicType          string
+	Call               string
+	HasResp            bool
+	HasRequest         bool
 }
 
 func genHandler(dir, rootPkg string, cfg *config.Config, group spec.Group, route spec.Route) error {
@@ -47,15 +48,16 @@ func genHandler(dir, rootPkg string, cfg *config.Config, group spec.Group, route
 	}
 
 	return doGenToFile(dir, handler, cfg, group, route, handlerInfo{
-		PkgName:        pkgName,
-		ImportPackages: genHandlerImports(group, route, parentPkg),
-		HandlerName:    handler,
-		RequestType:    util.Title(route.RequestTypeName()),
-		LogicName:      logicName,
-		LogicType:      strings.Title(getLogicName(route)),
-		Call:           strings.Title(strings.TrimSuffix(handler, "Handler")),
-		HasResp:        len(route.ResponseTypeName()) > 0,
-		HasRequest:     len(route.RequestTypeName()) > 0,
+		PkgName:            pkgName,
+		ImportPackages:     genHandlerImports(group, route, parentPkg),
+		ImportHttpxPackage: fmt.Sprintf("\"%s/rest/httpx\"", vars.ProjectOpenSourceURL),
+		HandlerName:        handler,
+		RequestType:        util.Title(route.RequestTypeName()),
+		LogicName:          logicName,
+		LogicType:          strings.Title(getLogicName(route)),
+		Call:               strings.Title(strings.TrimSuffix(handler, "Handler")),
+		HasResp:            len(route.ResponseTypeName()) > 0,
+		HasRequest:         len(route.RequestTypeName()) > 0,
 	})
 }
 
@@ -99,7 +101,6 @@ func genHandlerImports(group spec.Group, route spec.Route, parentPkg string) str
 	if len(route.RequestTypeName()) > 0 {
 		imports = append(imports, fmt.Sprintf("\"%s\"\n", pathx.JoinPackages(parentPkg, typesDir)))
 	}
-	imports = append(imports, fmt.Sprintf("\"%s/rest/httpx\"", vars.ProjectOpenSourceURL))
 
 	return strings.Join(imports, "\n\t")
 }

+ 1 - 1
tools/goctl/api/gogen/handler.tpl

@@ -3,8 +3,8 @@ package {{.PkgName}}
 import (
 	"net/http"
 
-	"github.com/zeromicro/go-zero/rest/httpx"
 	{{.ImportPackages}}
+	{{.ImportHttpxPackage}}
 )
 
 func {{.HandlerName}}(svcCtx *svc.ServiceContext) http.HandlerFunc {