cache

package module
v1.0.4 Latest Latest
Warning

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

Go to latest
Published: Aug 12, 2020 License: BSD-3-Clause, MIT Imports: 11 Imported by: 0

README

Cache gin's middleware

Go Report Card GoDoc

Gin middleware/handler to enable Cache.

Please see CODE_OF_CONDUCT for contribution guidelines.

Usage

Start using it

Download and install it:

$ go get github.com/Bose/cache

Import it in your code:

import "github.com/Bose/cache"
Canonical example:

See the example

package main

import (
	"fmt"
	"time"

	"github.com/Bose/cache"
	"github.com/Bose/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 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

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 SiteCache

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

Types

This section is empty.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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