46 lines
1.2 KiB
Go
46 lines
1.2 KiB
Go
package contracts
|
|
|
|
import (
|
|
"encoding/json"
|
|
"io"
|
|
|
|
"github.com/golang/protobuf/jsonpb"
|
|
"github.com/jhump/protoreflect/desc"
|
|
"google.golang.org/grpc"
|
|
"google.golang.org/grpc/metadata"
|
|
)
|
|
|
|
type GRpcall interface {
|
|
// 接口请求
|
|
Invoke(service, method, data string, headers []string) (GRpcResponse, error)
|
|
// 获取客户端连接
|
|
GetClientConn() *grpc.ClientConn
|
|
// 获取服务端, 服务列表
|
|
GetServices() ([]string, error)
|
|
// 获取服务端, 服务下的方法列表
|
|
GetServiceMethods(name string) ([]string, error)
|
|
// 获取服务所有类型
|
|
GetAnyResolver() (jsonpb.AnyResolver, error)
|
|
// 获取 proto 文件描述
|
|
GetAllFilesDescriptor() ([]*desc.FileDescriptor, error)
|
|
// 获取服务描述
|
|
GetServiceDescriptor(service string) (*desc.ServiceDescriptor, error)
|
|
// 获取服务方法描述
|
|
GetServiceMethodDescriptor(service, method string) (*desc.MethodDescriptor, error)
|
|
// 关闭客户端连接
|
|
Close() error
|
|
}
|
|
|
|
type GRpcResponse interface {
|
|
// 获取响应头
|
|
Header() metadata.MD
|
|
// 发送 stream 数据
|
|
Send(data string) error
|
|
// 接收 unary / stream 数据
|
|
Recv() io.Reader
|
|
// 接收 unary / stream 数据, 并转 json 对象
|
|
RecvDecoder() *json.Decoder
|
|
// 关闭 stream 数据
|
|
Close() error
|
|
}
|