gin-contrib / cache

Gin middleware/handler to enable Cache
https://gin-gonic.github.io/gin
MIT License
365 stars 95 forks source link

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/gin-contrib/cache

Import it in your code:

import "github.com/gin-contrib/cache"

Canonical example:

See the example

package main

import (
    "fmt"
    "time"

    "github.com/gin-contrib/cache"
    "github.com/gin-contrib/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")
}