Documentation
¶
Index ¶
- func ErrorResponseEncoder(encoder kitgrpc.EncodeResponseFunc, errorEncoder EncodeErrorResponseFunc) kitgrpc.EncodeResponseFunc
- func IsGRPCError(err error) bool
- func ServerOptions(options []grpc.ServerOption) grpc.ServerOption
- type EncodeErrorResponseFunc
- type ErrorMatcher
- type ErrorMatcherFunc
- type ServerFactory
- type StatusCodeConverter
- type StatusCodeMatcher
- type StatusConverter
- type StatusConverterConfig
- type StatusMatcher
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ErrorResponseEncoder ¶ added in v0.6.0
func ErrorResponseEncoder( encoder kitgrpc.EncodeResponseFunc, errorEncoder EncodeErrorResponseFunc, ) kitgrpc.EncodeResponseFunc
ErrorResponseEncoder encodes the passed response object to a gRPC response or error.
func IsGRPCError ¶ added in v0.7.1
IsGRPCError checks if an error is already encoded as a gRPC status.
func ServerOptions ¶ added in v0.2.0
func ServerOptions(options []grpc.ServerOption) grpc.ServerOption
ServerOptions collects a list of ServerOptions into a single option. Useful to avoid variadic hells when passing lists of options around.
Types ¶
type EncodeErrorResponseFunc ¶ added in v0.6.0
EncodeErrorResponseFunc transforms the passed error to a gRPC code error. It's designed to be used in gRPC servers, for server-side endpoints.
func NewDefaultStatusErrorResponseEncoder ¶ added in v0.7.0
func NewDefaultStatusErrorResponseEncoder() EncodeErrorResponseFunc
NewDefaultStatusErrorResponseEncoder returns an error response encoder that encodes errors as gRPC Status errors.
The returned encoder encodes every error as Internal error.
func NewStatusErrorResponseEncoder ¶ added in v0.7.0
func NewStatusErrorResponseEncoder(statusConverter StatusConverter) EncodeErrorResponseFunc
NewStatusErrorResponseEncoder returns an error response encoder that encodes errors as gRPC Status errors.
type ErrorMatcher ¶ added in v0.7.0
type ErrorMatcher interface { // MatchError evaluates the predefined set of conditions for err. MatchError(err error) bool }
ErrorMatcher checks if an error matches a predefined set of conditions.
type ErrorMatcherFunc ¶ added in v0.7.0
ErrorMatcherFunc turns a plain function into an ErrorMatcher if it's definition matches the interface.
func (ErrorMatcherFunc) MatchError ¶ added in v0.7.0
func (fn ErrorMatcherFunc) MatchError(err error) bool
MatchError calls the underlying function to check if err matches a certain condition.
type ServerFactory ¶
type ServerFactory interface { // NewServer constructs a new server, which wraps the provided endpoint and implements the grpc.Handler interface. NewServer( e endpoint.Endpoint, dec grpc.DecodeRequestFunc, enc grpc.EncodeResponseFunc, options ...grpc.ServerOption, ) *grpc.Server }
ServerFactory constructs a new server, which wraps the provided endpoint and implements the grpc.Handler interface.
func NewServerFactory ¶
func NewServerFactory(options ...grpc.ServerOption) ServerFactory
NewServerFactory returns a new ServerFactory.
type StatusCodeConverter ¶ added in v0.7.0
type StatusCodeConverter interface { // NewStatusWithCode creates a new gRPC code with a code from an error. NewStatusWithCode(ctx context.Context, code codes.Code, err error) *status.Status }
StatusCodeConverter creates a new gRPC code with a code from an error.
type StatusCodeMatcher ¶ added in v0.7.0
type StatusCodeMatcher interface { ErrorMatcher // Code returns the gRPC code code. Code() codes.Code }
StatusCodeMatcher matches an error and returns the appropriate code code for it.
func NewStatusCodeMatcher ¶ added in v0.7.0
func NewStatusCodeMatcher(code codes.Code, matcher ErrorMatcher) StatusCodeMatcher
NewStatusCodeMatcher returns a new StatusCodeMatcher.
type StatusConverter ¶ added in v0.7.0
type StatusConverter interface { // NewStatus creates a new gRPC Status from an error. NewStatus(ctx context.Context, err error) *status.Status }
StatusConverter creates a new gRPC Status from an error.
func NewDefaultStatusConverter ¶ added in v0.7.0
func NewDefaultStatusConverter() StatusConverter
NewDefaultStatusConverter returns a new StatusConverter implementation with default configuration.
func NewStatusConverter ¶ added in v0.7.0
func NewStatusConverter(config StatusConverterConfig) StatusConverter
NewStatusConverter returns a new StatusConverter implementation.
Example ¶
statusConverter := NewStatusConverter(StatusConverterConfig{ Matchers: []StatusMatcher{ NewStatusCodeMatcher(codes.NotFound, ErrorMatcherFunc(func(err error) bool { return err.Error() == "not found" })), }, }) err := errors.New("not found") s := statusConverter.NewStatus(context.Background(), err) fmt.Println(s.Code(), s.Message())
Output: NotFound not found
type StatusConverterConfig ¶ added in v0.7.0
type StatusConverterConfig struct { // Matchers are used to match errors and create gRPC statuses. // If no matchers match the error (or no matchers are configured) a fallback code is created/returned. // // If a matcher also implements StatusConverter it is used instead of the builtin StatusConverter // for creating the code. // // If a matchers also implements StatusCodeMatcher // the builtin StatusCodeConverter is used for creating the code. Matchers []StatusMatcher // Status converters used for converting errors to gRPC statuses. StatusConverter StatusConverter StatusCodeConverter StatusCodeConverter }
StatusConverterConfig configures the StatusConverter implementation.
type StatusMatcher ¶ added in v0.7.0
type StatusMatcher interface { ErrorMatcher }
StatusMatcher matches an error. It is an alias to the ErrorMatcher interface.