cache

package module
v1.1.4 Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2020 License: MIT Imports: 15 Imported by: 0

README

Cache gin's middleware

Build Status codecov Go Report Card GoDoc

Gin middleware/handler to enable Cache.

Usage

Start using it

Download and install it:

$ go get github.com/kirinse/gin-cache

Import it in your code:

import "github.com/kirinse/gin-cache"
Canonical example:

See the example

package main

import (
	"fmt"
	"time"

	"github.com/kirinse/gin-cache"
	"github.com/kirinse/gin-cache/persistence"
	"github.com/gin-gonic/gin"
)

func main() {
	r := gin.Default()

	store := persistence.NewInMemoryStore(time.Second)
	
	r.GET("/ping", func(c *gin.Context) {
		c.String(200, "pong "+fmt.Sprint(time.Now().Unix()))
	})
	// Cached Page
	r.GET("/cache_ping", cache.CachePage(store, time.Minute, func(c *gin.Context) {
		c.String(200, "pong "+fmt.Sprint(time.Now().Unix()))
	}))

	// Listen and Server in 0.0.0.0:8080
	r.Run(":8080")
}

Documentation

Index

Constants

View Source
const (
	CACHE_MIDDLEWARE_KEY = "gincontrib.cache"
)

Variables

View Source
var (
	PageCachePrefix = "gincontrib.page.cache"
)

Functions

func Cache

func Cache(store *persistence.CacheStore) gin.HandlerFunc

Cache Middleware

func CacheCustom

func CacheCustom(
	store persistence.CacheStore,
	expire time.Duration,
	handle gin.HandlerFunc,
	keyGenerator KeyGenerator,
	writerHook WriterHook,
) gin.HandlerFunc

func CachePage

func CachePage(store persistence.CacheStore, expire time.Duration, handle gin.HandlerFunc) gin.HandlerFunc

CachePage Decorator

func CachePageAtomic

func CachePageAtomic(store persistence.CacheStore, expire time.Duration, handle gin.HandlerFunc) gin.HandlerFunc

func CachePageAtomicDecorator

func CachePageAtomicDecorator(
	middleware Middleware,
	store persistence.CacheStore,
	expire time.Duration,
	handle gin.HandlerFunc,
) gin.HandlerFunc

CachePageAtomic Decorator

func CachePageWithoutHeader

func CachePageWithoutHeader(store persistence.CacheStore, expire time.Duration, handle gin.HandlerFunc) gin.HandlerFunc

func CachePageWithoutQuery

func CachePageWithoutQuery(store persistence.CacheStore, expire time.Duration, handle gin.HandlerFunc) gin.HandlerFunc

CachePageWithoutQuery add ability to ignore GET query parameters.

func CreateKey

func CreateKey(u string) string

CreateKey creates a package specific key for a given string

func RegisterResponseCacheGob

func RegisterResponseCacheGob()

RegisterResponseCacheGob registers the responseCache type with the encoding/gob package

func RequestURIKey

func RequestURIKey(c *gin.Context) string

func SiteCache

func SiteCache(store persistence.CacheStore, expire time.Duration) gin.HandlerFunc

func WithoutParamKey

func WithoutParamKey(c *gin.Context) string

func WriteWithHeaders

func WriteWithHeaders(c *gin.Context, cache responseCache)

func WriteWithoutHeaders

func WriteWithoutHeaders(c *gin.Context, cache responseCache)

Types

type KeyGenerator

type KeyGenerator func(c *gin.Context) string

type Middleware

type Middleware func(store persistence.CacheStore, expire time.Duration, handle gin.HandlerFunc) gin.HandlerFunc

type WriterHook

type WriterHook func(c *gin.Context, cache responseCache)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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