package grpc import ( "context" "fmt" "strings" ooas "git.loafle.net/overflow/overflow_api_server/golang" ) func Exec(ctx context.Context, method string, params []string) (string, error) { if nil == grpcPool { return "", fmt.Errorf("App: GRPC Pool is not initialized") } var client interface{} var err error if client, err = grpcPool.Get(); nil != err { return "", err } defer grpcPool.Put(client) sm := strings.Split(method, ".") si := &ooas.ServerInput{ Target: sm[0], Method: sm[1], Params: params, } var so *ooas.ServerOutput if so, err = client.(ooas.OverflowApiServerClient).Exec(ctx, si); nil != err { return "", err } return so.Result, nil }