Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func EncodeKeyValue ¶
EncodeKeyValue sanitizes a key-value pair for use in gRPC metadata headers.
Types ¶
type BadRequestError ¶
type BadRequestError struct {
Err error
}
BadRequestError is an error in decoding the request.
func (BadRequestError) Error ¶
func (err BadRequestError) Error() string
Error implements the error interface.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client wraps a gRPC connection and provides a method that implements endpoint.Endpoint.
func NewClient ¶
func NewClient( cc *grpc.ClientConn, serviceName string, method string, enc EncodeRequestFunc, dec DecodeResponseFunc, grpcReply interface{}, options ...ClientOption, ) *Client
NewClient constructs a usable Client for a single remote endpoint. Pass an zero-value Protobuf message of the RPC response type as the grpcReply argument.
type ClientOption ¶
type ClientOption func(*Client)
ClientOption sets an optional parameter for clients.
func SetClientBefore ¶
func SetClientBefore(before ...RequestFunc) ClientOption
SetClientBefore sets the RequestFuncs that are applied to the outgoing gRPC request before it's invoked.
type DecodeRequestFunc ¶
DecodeRequestFunc extracts a user-domain request object from a gRPC request. It's designed to be used in gRPC servers, for server-side endpoints. One straightforward DecodeRequestFunc could be something that decodes from the gRPC request message to the concrete request type.
type DecodeResponseFunc ¶
DecodeResponseFunc extracts a user-domain response object from a gRPC response object. It's designed to be used in gRPC clients, for client-side endpoints. One straightforward DecodeResponseFunc could be something that decodes from the gRPC response message to the concrete response type.
type EncodeRequestFunc ¶
EncodeRequestFunc encodes the passed request object into the gRPC request object. It's designed to be used in gRPC clients, for client-side endpoints. One straightforward EncodeRequestFunc could something that encodes the object directly to the gRPC request message.
type EncodeResponseFunc ¶
EncodeResponseFunc encodes the passed response object to the gRPC response message. It's designed to be used in gRPC servers, for server-side endpoints. One straightforward EncodeResponseFunc could be something that encodes the object directly to the gRPC response message.
type Handler ¶
type Handler interface {
ServeGRPC(context.Context, interface{}) (context.Context, interface{}, error)
}
Handler which should be called from the grpc binding of the service implementation.
type RequestFunc ¶
RequestFunc may take information from an gRPC request and put it into a request context. In Servers, BeforeFuncs are executed prior to invoking the endpoint. In Clients, BeforeFuncs are executed after creating the request but prior to invoking the gRPC client.
func SetRequestHeader ¶
func SetRequestHeader(key, val string) RequestFunc
SetRequestHeader returns a RequestFunc that sets the specified metadata key-value pair.
type ResponseFunc ¶
ResponseFunc may take information from a request context and use it to manipulate the gRPC metadata header. ResponseFuncs are only executed in servers, after invoking the endpoint but prior to writing a response.
func SetResponseHeader ¶
func SetResponseHeader(key, val string) ResponseFunc
SetResponseHeader returns a ResponseFunc that sets the specified metadata key-value pair.
type Server ¶
type Server struct {
// contains filtered or unexported fields
}
Server wraps an endpoint and implements grpc.Handler.
func NewServer ¶
func NewServer( ctx context.Context, e endpoint.Endpoint, dec DecodeRequestFunc, enc EncodeResponseFunc, options ...ServerOption, ) *Server
NewServer constructs a new server, which implements grpc.Server and wraps the provided endpoint.
type ServerOption ¶
type ServerOption func(*Server)
ServerOption sets an optional parameter for servers.
func ServerAfter ¶
func ServerAfter(after ...ResponseFunc) ServerOption
ServerAfter functions are executed on the HTTP response writer after the endpoint is invoked, but before anything is written to the client.
func ServerBefore ¶
func ServerBefore(before ...RequestFunc) ServerOption
ServerBefore functions are executed on the HTTP request object before the request is decoded.
func ServerErrorLogger ¶
func ServerErrorLogger(logger log.Logger) ServerOption
ServerErrorLogger is used to log non-terminal errors. By default, no errors are logged.