Documentation
¶
Overview ¶
Package sudoclient 封装sudo-api生成的gRPC client。
SudoClient 自动处理token的刷新,支持连接池配置,简化gRPC接口使用。
Client 使用 ¶
下面是创建SudoClient并使用sudo-api生成的gRPC client接口的example。
func ExampleNewSudoClient() { client, err := NewSudoClient(context.TODO(), WithGrpcEndpoint("localhost:8071"), WithHTTPEndpoint("http://localhost:7857"), WithAccount("admin", "sudosudo")) if err != nil { // TODO: Handle error. } defer client.Close() // 使用 client _, err = client.ListVtables(context.TODO(), &vtable.ListVtablesRequest{}) if err != nil { // TODO: Handle error. } }
Context 使用 ¶
传入NewSudoClient的context会用于请求token和创建底层连接。 client的每个方法调用可能会触发token刷新。刷新token也是gRPC接口调用,用于token刷新的grpc接口调用会使用方法传入的context。
Index ¶
- Variables
- func RandPath(n int) string
- func UnmarshalJSONToProto(data []byte, dest proto.Message) error
- type BasicSudoClient
- type ConnPool
- type DialOption
- func WithAccount(account, password string) DialOption
- func WithConnPool(grpcConnPool ConnPool) DialOption
- func WithGrpcClientInterceptor(interceptor grpc.UnaryClientInterceptor) DialOption
- func WithGrpcDialOption(grpcOpt grpc.DialOption) DialOption
- func WithGrpcEndpoint(endPoint string) DialOption
- func WithHTTPEndpoint(endpoint string) DialOption
- func WithHTTPTransport(transport http.RoundTripper) DialOption
- func WithTokenSource(tokenSource TokenSource) DialOption
- type SudoClient
- type SudoHTTPClient
- type TokenSource
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var UploadURL = "/upload"
文件上传URL
Functions ¶
Types ¶
type BasicSudoClient ¶
type BasicSudoClient struct { basiccommon.CommonClient basicfurnace.FurnaceClient // contains filtered or unexported fields }
BasicSudoClient 封装基础版sudo-api生成的 gRPC client。
func NewBasicSudoClient ¶
func NewBasicSudoClient(ctx context.Context, opts ...DialOption) (*BasicSudoClient, error)
NewBasicSudoClient 创建基础版SudoClient,其中仅包含基础版sudo-api提供的gRPC client。 client使用后需要关闭,从而释放其中的连接资源。
func (*BasicSudoClient) CreateVtableFromDB ¶
func (client *BasicSudoClient) CreateVtableFromDB( ctx context.Context, dataSrcName, dbName, tableName string, ) (uint64, error)
CreateVtableFromDB 指定数据表创建vtable,返回vtableID。 dataSource需要在数牍隐私计算平台提前配置,dataSource名称会被校验是否存在。 重复创建相同的数据表会直接返回之前的vtableID。
func (*BasicSudoClient) CreateVtableFromLocalFile ¶
func (client *BasicSudoClient) CreateVtableFromLocalFile(ctx context.Context, tableFilePath string) (uint64, error)
CreateVtableFromLocalFile 从本地文件创建vtable,返回vtableID。 重复上传相同的文件会直接返回之前的vtableID。
type ConnPool ¶
type ConnPool interface { // Conn returns a ClientConn from the pool. // // Conns aren't returned to the pool. Conn() *grpc.ClientConn // Num returns the number of connections in the pool. // // It will always return the same value. Num() int // Close closes every ClientConn in the pool. // // The error returned by Close may be a single error or multiple errors. Close() error // ConnPool implements grpc.ClientConnInterface to enable it to be used directly with generated proto stubs. grpc.ClientConnInterface }
ConnPool is a pool of grpc.ClientConns.
type DialOption ¶
type DialOption interface {
Apply(*dialOptions)
}
DialOption 设置连接相关配置,比如 endpoint、账号、密码。
func WithGrpcClientInterceptor ¶
func WithGrpcClientInterceptor(interceptor grpc.UnaryClientInterceptor) DialOption
WithGrpcClientInterceptor 增加gRPC拦截器。
func WithGrpcDialOption ¶
func WithGrpcDialOption(grpcOpt grpc.DialOption) DialOption
WithGrpcDialOption 增加grpc.DialOption 设置
func WithGrpcEndpoint ¶
func WithGrpcEndpoint(endPoint string) DialOption
WithGrpcEndpoint 设置gRPC服务endpoint。
func WithHTTPEndpoint ¶
func WithHTTPEndpoint(endpoint string) DialOption
WithGrpcEndpoint 设置HTTP endpoint。
func WithHTTPTransport ¶
func WithHTTPTransport(transport http.RoundTripper) DialOption
WithHTTPTransport 修改http Client Transport 设置
func WithTokenSource ¶
func WithTokenSource(tokenSource TokenSource) DialOption
WithTokenSource 设置tokenSource。
type SudoClient ¶
type SudoClient struct { BasicSudoClient common.CommonClient furnace.FurnaceClient // contains filtered or unexported fields }
SudoClient 封装标准版sudo-api生成的 gRPC client。
func NewSudoClient ¶
func NewSudoClient(ctx context.Context, opts ...DialOption) (*SudoClient, error)
NewSudoClient 创建标准版sudo-api gRPC client。SudoClient继承了BasicSudoClient的全部功能。 client使用后需要关闭,从而释放其中的连接资源。
type SudoHTTPClient ¶
SudoHTTPClient 封装HTTP Client和tokenSource,通过http接口提供上传文件功能。
func NewHTTPClient ¶
func NewHTTPClient(ctx context.Context, opts ...DialOption) (*SudoHTTPClient, error)
NewHTTPClient 返回封装后的HTTPClient。 endpoint和token通过opts配置。
func (*SudoHTTPClient) UploadVtableFile ¶
func (client *SudoHTTPClient) UploadVtableFile(ctx context.Context, filePath, identityName string) (string, error)
UploadVtableFile 上传文件。
type TokenSource ¶
type TokenSource interface { credentials.PerRPCCredentials Close() error }
TokenSource 是对 credentials.PerRPCCredentials 的简单封装,每次访问可能触发token刷新。
func NewUserAccountToken ¶
func NewUserAccountToken(ctx context.Context, opts ...DialOption) (TokenSource, error)
NewUserAccountToken 根据用户名、密码创建tokenSource,endpoint、账号等需要通过opts配置。