github.com/unionj-cloud/go-doudou@v1.3.8-0.20221011095552-0088008e5b31/cmd/http.go (about) 1 package cmd 2 3 import ( 4 "github.com/unionj-cloud/go-doudou/cmd/internal/svc" 5 6 "github.com/spf13/cobra" 7 ) 8 9 var handler bool 10 var client bool 11 var doc bool 12 var jsonattrcase string 13 var routePatternStrategy int 14 15 // httpCmd generates scaffold code of restful service 16 var httpCmd = &cobra.Command{ 17 Use: "http", 18 Short: "generate http routes and handlers", 19 Long: ``, 20 Run: func(cmd *cobra.Command, args []string) { 21 s := svc.Svc{ 22 Handler: handler, 23 Client: client, 24 Omitempty: omitempty, 25 Doc: doc, 26 Jsonattrcase: jsonattrcase, 27 Env: baseURLEnv, 28 RoutePatternStrategy: routePatternStrategy, 29 } 30 s.Http() 31 }, 32 } 33 34 func init() { 35 svcCmd.AddCommand(httpCmd) 36 37 httpCmd.Flags().BoolVarP(&handler, "handler", "", false, "Whether generate default handler implementation or not") 38 httpCmd.Flags().BoolVarP(&client, "client", "c", false, `Whether generate default golang http client code or not`) 39 httpCmd.Flags().BoolVarP(&omitempty, "omitempty", "o", false, `if true, ",omitempty" will be appended to json tag of fields in every generated anonymous struct in handlers`) 40 httpCmd.Flags().StringVarP(&jsonattrcase, "case", "", "lowerCamel", `apply to json tag of fields in every generated anonymous struct in handlers. optional values: lowerCamel, snake`) 41 httpCmd.Flags().BoolVarP(&doc, "doc", "", false, `whether generate openapi 3.0 json document or not`) 42 httpCmd.Flags().StringVarP(&baseURLEnv, "env", "e", "", `base url environment variable name`) 43 httpCmd.Flags().IntVarP(&routePatternStrategy, "routePattern", "r", 0, "route pattern generate strategy. 0 means splitting each methods of service interface by slash / after converting to snake case. 1 means no splitting, only lowercase. recommend default value.") 44 }