Help us shape the future of Go! Take the 2026 Go Developer Survey

cache

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 24, 2024 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Special thanks to @codemicro for moving this to fiber core Original middleware: github.com/codemicro/fiber-cache

Index

Constants

This section is empty.

Variables

View Source
var ConfigDefault = Config{
	Next:             nil,
	Expiration:       1 * time.Minute,
	CacheHeader:      "X-Cache",
	CacheControl:     false,
	CacheInvalidator: nil,
	KeyGenerator: func(c fiber.Ctx) string {
		return utils.CopyString(c.Path())
	},
	ExpirationGenerator:  nil,
	StoreResponseHeaders: false,
	Storage:              nil,
	MaxBytes:             0,
	Methods:              []string{fiber.MethodGet, fiber.MethodHead},
}

ConfigDefault is the default config

Functions

func New

func New(config ...Config) fiber.Handler

New creates a new middleware handler

Types

type Config

type Config struct {
	// Store is used to store the state of the middleware
	//
	// Default: an in memory store for this process only
	Storage fiber.Storage

	// Next defines a function to skip this middleware when returned true.
	//
	// Optional. Default: nil
	Next func(c fiber.Ctx) bool

	// CacheInvalidator defines a function to invalidate the cache when returned true
	//
	// Optional. Default: nil
	CacheInvalidator func(fiber.Ctx) bool

	// Key allows you to generate custom keys, by default c.Path() is used
	//
	// Default: func(c fiber.Ctx) string {
	//   return utils.CopyString(c.Path())
	// }
	KeyGenerator func(fiber.Ctx) string

	// allows you to generate custom Expiration Key By Key, default is Expiration (Optional)
	//
	// Default: nil
	ExpirationGenerator func(fiber.Ctx, *Config) time.Duration

	// CacheHeader header on response header, indicate cache status, with the following possible return value
	//
	// hit, miss, unreachable
	//
	// Optional. Default: X-Cache
	CacheHeader string

	// You can specify HTTP methods to cache.
	// The middleware just caches the routes of its methods in this slice.
	//
	// Default: []string{fiber.MethodGet, fiber.MethodHead}
	Methods []string

	// Expiration is the time that an cached response will live
	//
	// Optional. Default: 1 * time.Minute
	Expiration time.Duration

	// Max number of bytes of response bodies simultaneously stored in cache. When limit is reached,
	// entries with the nearest expiration are deleted to make room for new.
	// 0 means no limit
	//
	// Default: 0
	MaxBytes uint

	// CacheControl enables client side caching if set to true
	//
	// Optional. Default: false
	CacheControl bool

	// allows you to store additional headers generated by next middlewares & handler
	//
	// Default: false
	StoreResponseHeaders bool
}

Config defines the config for middleware.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL