Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Adapter ¶
type Adapter interface { // Get retrieves the cached response by a given key. It also // returns true or false, whether it exists or not. Get(context.Context, string) ([]byte, bool) // Set caches a response for a given key until an expiration date. Set(context.Context, string, []byte, time.Time) // Release frees cache for a given key. Release(context.Context, string) }
Adapter interface for HTTP cache middleware client.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client data structure for HTTP cache middleware.
func NewClient ¶
func NewClient(opts ...ClientOption) (*Client, error)
NewClient initializes the cache HTTP middleware client with the given options.
type ClientOption ¶
ClientOption is used to set Client settings.
func WithAdapter ¶
func WithAdapter(a Adapter) ClientOption
WithAdapter sets the adapter type for the HTTP cache middleware client.
func WithCacheable ¶
func WithCacheable(fn func(*http.Request) bool) ClientOption
WithCacheable overrides the default cachable function
func WithKey ¶
func WithKey(fn func(*http.Request) (string, error)) ClientOption
WithKey configues the key generation function
func WithRefreshKey ¶
func WithRefreshKey(refreshKey string) ClientOption
WithRefreshKey sets the parameter key used to free a request cached response. Optional setting.
func WithTTL ¶
func WithTTL(ttl time.Duration) ClientOption
WithTTL sets how long each response is going to be cached.
type Response ¶
type Response struct { // Value is the cached response value. Value []byte // Header is the cached response header. Header http.Header // Expiration is the cached response expiration date. Expiration time.Time // LastAccess is the last date a cached response was accessed. // Used by LRU and MRU algorithms. LastAccess time.Time // Frequency is the count of times a cached response is accessed. // Used for LFU and MFU algorithms. Frequency int }
Response is the cached response data structure.
func BytesToResponse ¶
BytesToResponse converts bytes array into Response data structure.