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  }