Documentation
¶
Index ¶
- func ContextForTest(ctx context.Context) context.Context
- type ClientMiddleware
- type ClientMiddlewareOption
- type Doer
- type Error
- type ResponseWriter
- type ServerMiddleware
- func (m *ServerMiddleware) Logging(next http.HandlerFunc) http.HandlerFunc
- func (m *ServerMiddleware) Metrics(next http.HandlerFunc) http.HandlerFunc
- func (m *ServerMiddleware) RequestID(next http.HandlerFunc) http.HandlerFunc
- func (m *ServerMiddleware) Tracing(next http.HandlerFunc) http.HandlerFunc
- type ServerMiddlewareOption
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ContextForTest ¶ added in v0.2.2
ContextForTest takes in a request context and inserts a RequestID as well as a new Void Logger. For use in tests only, to test functions which expect a logger and RequestID to have been added by the middleware.
Types ¶
type ClientMiddleware ¶
type ClientMiddleware struct {
// contains filtered or unexported fields
}
ClientMiddleware is an http client middleware for logging, metrics, tracing, etc.
func NewClientMiddleware ¶
func NewClientMiddleware(opts ...ClientMiddlewareOption) *ClientMiddleware
NewClientMiddleware creates a new instance of http client middleware.
func (*ClientMiddleware) Logging ¶
func (m *ClientMiddleware) Logging(next Doer) Doer
Logging takes care of logging for outgoing http requests. Request id will be read from reqeust context if present.
func (*ClientMiddleware) Metrics ¶
func (m *ClientMiddleware) Metrics(next Doer) Doer
Metrics takes care of metrics for outgoing http requests.
func (*ClientMiddleware) RequestID ¶
func (m *ClientMiddleware) RequestID(next Doer) Doer
RequestID ensures outgoing requests have unique ids. This middleware ensures the request headers and context have a unique id. A new request id will be generated if needed.
func (*ClientMiddleware) Tracing ¶
func (m *ClientMiddleware) Tracing(next Doer) Doer
Tracing takes care of tracing for outgoing http requests. Trace information will be read from reqeust context if present.
type ClientMiddlewareOption ¶ added in v0.2.2
type ClientMiddlewareOption func(*ClientMiddleware)
ClientMiddlewareOption sets optional parameters for client middleware.
func ClientLogging ¶ added in v0.2.2
func ClientLogging(logger *log.Logger) ClientMiddlewareOption
ClientLogging is the option for client middleware to enable logging for every request.
func ClientMetrics ¶ added in v0.2.2
func ClientMetrics(mf *metrics.Factory) ClientMiddlewareOption
ClientMetrics is the option for client middleware to enable metrics for every request.
func ClientTracing ¶ added in v0.2.2
func ClientTracing(tracer opentracing.Tracer) ClientMiddlewareOption
ClientTracing is the option for client middleware to enable tracing for every request.
type ResponseWriter ¶
type ResponseWriter struct { http.ResponseWriter StatusCode int StatusClass string }
ResponseWriter extends the functionality of standard http.ResponseWriter.
func NewResponseWriter ¶
func NewResponseWriter(rw http.ResponseWriter) *ResponseWriter
NewResponseWriter creates a new response writer.
func (*ResponseWriter) WriteHeader ¶
func (r *ResponseWriter) WriteHeader(statusCode int)
WriteHeader overrides the default implementation of http.WriteHeader.
type ServerMiddleware ¶
type ServerMiddleware struct {
// contains filtered or unexported fields
}
ServerMiddleware is an http server middleware for logging, metrics, tracing, etc.
func NewServerMiddleware ¶
func NewServerMiddleware(opts ...ServerMiddlewareOption) *ServerMiddleware
NewServerMiddleware creates a new instance of http server middleware.
func (*ServerMiddleware) Logging ¶
func (m *ServerMiddleware) Logging(next http.HandlerFunc) http.HandlerFunc
Logging takes care of logging for incoming http requests. Request id will be read from reqeust headers if present.
func (*ServerMiddleware) Metrics ¶
func (m *ServerMiddleware) Metrics(next http.HandlerFunc) http.HandlerFunc
Metrics takes care of metrics for incoming http requests.
func (*ServerMiddleware) RequestID ¶
func (m *ServerMiddleware) RequestID(next http.HandlerFunc) http.HandlerFunc
RequestID ensures incoming requests have unique ids. This middleware ensures the request headers and context have a unique id. A new request id will be generated if needed.
func (*ServerMiddleware) Tracing ¶
func (m *ServerMiddleware) Tracing(next http.HandlerFunc) http.HandlerFunc
Tracing takes care of tracing for incoming http requests. Trace information will be read from reqeust headers if present.
type ServerMiddlewareOption ¶ added in v0.2.2
type ServerMiddlewareOption func(*ServerMiddleware)
ServerMiddlewareOption sets optional parameters for server middleware.
func ServerLogging ¶ added in v0.2.2
func ServerLogging(logger *log.Logger) ServerMiddlewareOption
ServerLogging is the option for server middleware to enable logging for every request.
func ServerMetrics ¶ added in v0.2.2
func ServerMetrics(mf *metrics.Factory) ServerMiddlewareOption
ServerMetrics is the option for server middleware to enable metrics for every request.
func ServerTracing ¶ added in v0.2.2
func ServerTracing(tracer opentracing.Tracer) ServerMiddlewareOption
ServerTracing is the option for server middleware to enable tracing for every request.