add goa examples
This commit is contained in:
172
go/goa_example/gen/grpc/cli/host/cli.go
Normal file
172
go/goa_example/gen/grpc/cli/host/cli.go
Normal file
@@ -0,0 +1,172 @@
|
||||
// Code generated by goa v3.6.0, DO NOT EDIT.
|
||||
//
|
||||
// host gRPC client CLI support package
|
||||
//
|
||||
// Command:
|
||||
// $ goa gen goa_example/design
|
||||
|
||||
package cli
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
service1c "goa_example/gen/grpc/service1/client"
|
||||
"os"
|
||||
|
||||
goa "goa.design/goa/v3/pkg"
|
||||
grpc "google.golang.org/grpc"
|
||||
)
|
||||
|
||||
// UsageCommands returns the set of commands and sub-commands using the format
|
||||
//
|
||||
// command (subcommand1|subcommand2|...)
|
||||
//
|
||||
func UsageCommands() string {
|
||||
return `service1 (signin|secure)
|
||||
`
|
||||
}
|
||||
|
||||
// UsageExamples produces an example of a valid invocation of the CLI tool.
|
||||
func UsageExamples() string {
|
||||
return os.Args[0] + ` service1 signin --username "user" --password "password"` + "\n" +
|
||||
""
|
||||
}
|
||||
|
||||
// ParseEndpoint returns the endpoint and payload as specified on the command
|
||||
// line.
|
||||
func ParseEndpoint(cc *grpc.ClientConn, opts ...grpc.CallOption) (goa.Endpoint, interface{}, error) {
|
||||
var (
|
||||
service1Flags = flag.NewFlagSet("service1", flag.ContinueOnError)
|
||||
|
||||
service1SigninFlags = flag.NewFlagSet("signin", flag.ExitOnError)
|
||||
service1SigninUsernameFlag = service1SigninFlags.String("username", "REQUIRED", "")
|
||||
service1SigninPasswordFlag = service1SigninFlags.String("password", "REQUIRED", "")
|
||||
|
||||
service1SecureFlags = flag.NewFlagSet("secure", flag.ExitOnError)
|
||||
service1SecureMessageFlag = service1SecureFlags.String("message", "", "")
|
||||
service1SecureTokenFlag = service1SecureFlags.String("token", "REQUIRED", "")
|
||||
)
|
||||
service1Flags.Usage = service1Usage
|
||||
service1SigninFlags.Usage = service1SigninUsage
|
||||
service1SecureFlags.Usage = service1SecureUsage
|
||||
|
||||
if err := flag.CommandLine.Parse(os.Args[1:]); err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
if flag.NArg() < 2 { // two non flag args are required: SERVICE and ENDPOINT (aka COMMAND)
|
||||
return nil, nil, fmt.Errorf("not enough arguments")
|
||||
}
|
||||
|
||||
var (
|
||||
svcn string
|
||||
svcf *flag.FlagSet
|
||||
)
|
||||
{
|
||||
svcn = flag.Arg(0)
|
||||
switch svcn {
|
||||
case "service1":
|
||||
svcf = service1Flags
|
||||
default:
|
||||
return nil, nil, fmt.Errorf("unknown service %q", svcn)
|
||||
}
|
||||
}
|
||||
if err := svcf.Parse(flag.Args()[1:]); err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
var (
|
||||
epn string
|
||||
epf *flag.FlagSet
|
||||
)
|
||||
{
|
||||
epn = svcf.Arg(0)
|
||||
switch svcn {
|
||||
case "service1":
|
||||
switch epn {
|
||||
case "signin":
|
||||
epf = service1SigninFlags
|
||||
|
||||
case "secure":
|
||||
epf = service1SecureFlags
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
if epf == nil {
|
||||
return nil, nil, fmt.Errorf("unknown %q endpoint %q", svcn, epn)
|
||||
}
|
||||
|
||||
// Parse endpoint flags if any
|
||||
if svcf.NArg() > 1 {
|
||||
if err := epf.Parse(svcf.Args()[1:]); err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
}
|
||||
|
||||
var (
|
||||
data interface{}
|
||||
endpoint goa.Endpoint
|
||||
err error
|
||||
)
|
||||
{
|
||||
switch svcn {
|
||||
case "service1":
|
||||
c := service1c.NewClient(cc, opts...)
|
||||
switch epn {
|
||||
case "signin":
|
||||
endpoint = c.Signin()
|
||||
data, err = service1c.BuildSigninPayload(*service1SigninUsernameFlag, *service1SigninPasswordFlag)
|
||||
case "secure":
|
||||
endpoint = c.Secure()
|
||||
data, err = service1c.BuildSecurePayload(*service1SecureMessageFlag, *service1SecureTokenFlag)
|
||||
}
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
return endpoint, data, nil
|
||||
}
|
||||
|
||||
// service1Usage displays the usage of the service1 command and its subcommands.
|
||||
func service1Usage() {
|
||||
fmt.Fprintf(os.Stderr, `The secured service exposes endpoints that require valid authorization credentials.
|
||||
Usage:
|
||||
%[1]s [globalflags] service1 COMMAND [flags]
|
||||
|
||||
COMMAND:
|
||||
signin: Signin implements signin.
|
||||
secure: 这是一个需要JWT认证的接口
|
||||
|
||||
Additional help:
|
||||
%[1]s service1 COMMAND --help
|
||||
`, os.Args[0])
|
||||
}
|
||||
func service1SigninUsage() {
|
||||
fmt.Fprintf(os.Stderr, `%[1]s [flags] service1 signin -username STRING -password STRING
|
||||
|
||||
Signin implements signin.
|
||||
-username STRING:
|
||||
-password STRING:
|
||||
|
||||
Example:
|
||||
%[1]s service1 signin --username "user" --password "password"
|
||||
`, os.Args[0])
|
||||
}
|
||||
|
||||
func service1SecureUsage() {
|
||||
fmt.Fprintf(os.Stderr, `%[1]s [flags] service1 secure -message JSON -token STRING
|
||||
|
||||
这是一个需要JWT认证的接口
|
||||
-message JSON:
|
||||
-token STRING:
|
||||
|
||||
Example:
|
||||
%[1]s service1 secure --message '{
|
||||
"fail": true
|
||||
}' --token "Quia omnis amet et rerum quis."
|
||||
`, os.Args[0])
|
||||
}
|
||||
Reference in New Issue
Block a user