Documentation
¶
Overview ¶
Package middleware //
Package middleware //
Package middleware //
Package middleware //
Package middleware //
Index ¶
- Constants
- func GetLogger(r *http.Request) *zerolog.Logger
- func GetOptlyClient(r *http.Request) (*optimizely.OptlyClient, error)
- func GetOptlyContext(r *http.Request) (*optimizely.OptlyContext, error)
- func Metricize(key string) func(http.Handler) http.Handler
- func RenderError(err error, status int, w http.ResponseWriter, r *http.Request)
- func SetRequestID(next http.Handler) http.Handler
- func SetTime(next http.Handler) http.Handler
- type CachedOptlyMiddleware
- type ErrorResponse
- type Metrics
- type OptlyMiddleware
Constants ¶
const OptlyClientKey = contextKey("optlyClient")
OptlyClientKey is the context key for the OptlyClient
const OptlyContextKey = contextKey("optlyContext")
OptlyContextKey is the context key for the OptlyContext
const OptlyRequestHeader = "X-Request-Id"
OptlyRequestHeader is the header key for the request ID
const OptlySDKHeader = "X-Optimizely-SDK-Key"
OptlySDKHeader is the header key for an ad-hoc SDK key
Variables ¶
This section is empty.
Functions ¶
func GetOptlyClient ¶
func GetOptlyClient(r *http.Request) (*optimizely.OptlyClient, error)
GetOptlyClient is a utility to extract the OptlyClient from the http request context.
func GetOptlyContext ¶
func GetOptlyContext(r *http.Request) (*optimizely.OptlyContext, error)
GetOptlyContext is a utility to extract the OptlyContext from the http request context.
func Metricize ¶
Metricize updates counts, total response time, and response time histogram for each URL hit, key being a combination of a method and route pattern
func RenderError ¶
RenderError sets the request status and renders the error message.
func SetRequestID ¶
SetRequestID sets request ID obtained from the request header itself or from newly generated id
Types ¶
type CachedOptlyMiddleware ¶
type CachedOptlyMiddleware struct {
Cache optimizely.Cache
}
CachedOptlyMiddleware implements OptlyMiddleware backed by a cache
func (*CachedOptlyMiddleware) ClientCtx ¶
func (ctx *CachedOptlyMiddleware) ClientCtx(next http.Handler) http.Handler
ClientCtx adds a pointer to an OptlyClient to the request context. Precedence is given for any SDK key provided within the request header else the default OptlyClient will be used.
func (*CachedOptlyMiddleware) UserCtx ¶
func (ctx *CachedOptlyMiddleware) UserCtx(next http.Handler) http.Handler
UserCtx extracts the userId and any associated attributes from the request to create an optimizely.UserContext which will be used by downstream handlers. Future iterations of this middleware would capture pulling additional detail from a UPS or attribute store.