func DefaultErrorEncoder(ctx context.Context, err error) ([]byte, error)
DefaultErrorEncoder defines the default behavior of encoding an error response, where it returns nil, and the error itself.
DecodeRequestFunc extracts a user-domain request object from an AWS Lambda payload.
type DecodeRequestFunc func(context.Context, []byte) (interface{}, error)
EncodeResponseFunc encodes the passed response object into []byte, ready to be sent as AWS Lambda response.
type EncodeResponseFunc func(context.Context, interface{}) ([]byte, error)
ErrorEncoder is responsible for encoding an error.
type ErrorEncoder func(ctx context.Context, err error) ([]byte, error)
Handler wraps an endpoint.
type Handler struct {
// contains filtered or unexported fields
}
func NewHandler( e endpoint.Endpoint, dec DecodeRequestFunc, enc EncodeResponseFunc, options ...HandlerOption, ) *Handler
NewHandler constructs a new handler, which implements the AWS lambda.Handler interface.
func (h *Handler) Invoke( ctx context.Context, payload []byte, ) (resp []byte, err error)
Invoke represents implementation of the AWS lambda.Handler interface.
HandlerFinalizerFunc is executed at the end of Invoke. This can be used for logging purposes.
type HandlerFinalizerFunc func(ctx context.Context, resp []byte, err error)
HandlerOption sets an optional parameter for handlers.
type HandlerOption func(*Handler)
func HandlerAfter(after ...HandlerResponseFunc) HandlerOption
HandlerAfter functions are only executed after invoking the endpoint but prior to returning a response.
func HandlerBefore(before ...HandlerRequestFunc) HandlerOption
HandlerBefore functions are executed on the payload byte, before the request is decoded.
func HandlerErrorEncoder(ee ErrorEncoder) HandlerOption
HandlerErrorEncoder is used to encode errors.
func HandlerErrorHandler(errorHandler transport.ErrorHandler) HandlerOption
HandlerErrorHandler is used to handle non-terminal errors. By default, non-terminal errors are ignored.
func HandlerErrorLogger(logger log.Logger) HandlerOption
HandlerErrorLogger is used to log non-terminal errors. By default, no errors are logged. Deprecated: Use HandlerErrorHandler instead.
func HandlerFinalizer(f ...HandlerFinalizerFunc) HandlerOption
HandlerFinalizer sets finalizer which are called at the end of request. By default no finalizer is registered.
HandlerRequestFunc may take information from the received payload and use it to place items in the request scoped context. HandlerRequestFuncs are executed prior to invoking the endpoint and decoding of the payload.
type HandlerRequestFunc func(ctx context.Context, payload []byte) context.Context
HandlerResponseFunc may take information from a request context and use it to manipulate the response before it's marshaled. HandlerResponseFunc are executed after invoking the endpoint but prior to returning a response.
type HandlerResponseFunc func(ctx context.Context, response interface{}) context.Context