From e3649726ea8214bf2201736ac8e15d08a62de270 Mon Sep 17 00:00:00 2001 From: roc Date: Tue, 28 May 2024 14:33:05 +0800 Subject: [PATCH] add SetContextData and GetContextData(#358) --- request.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/request.go b/request.go index 4bbb98a..7696d88 100644 --- a/request.go +++ b/request.go @@ -954,6 +954,18 @@ func (r *Request) SetContext(ctx context.Context) *Request { return r } +// SetContextData sets the key-value pair data for current Request, so you +// can access some extra context info for current Request in hook or middleware. +func (r *Request) SetContextData(key, val any) *Request { + r.ctx = context.WithValue(r.Context(), key, val) + return r +} + +// GetContextData returns the context data of specified key, which set by SetContextData. +func (r *Request) GetContextData(key any) any { + return r.Context().Value(key) +} + // DisableAutoReadResponse disable read response body automatically (enabled by default). func (r *Request) DisableAutoReadResponse() *Request { r.disableAutoReadResponse = true