1
0
mirror of https://github.com/kataras/iris.git synced 2025-12-18 18:37:05 +00:00

add Cache304 as an alternative to the server-side kataras/iris/cache middleware - it can perform better with less server overheat but it comes with a cost of 304 instead of 200 so custom clients must make that check

Former-commit-id: b0ba68c528c870fe060e2825c35689771a1d3680
This commit is contained in:
Gerasimos (Makis) Maropoulos
2018-01-25 16:19:45 +02:00
parent befb1f0c08
commit 969c2e87d4
8 changed files with 140 additions and 30 deletions

View File

@@ -6,22 +6,34 @@
package main
import (
"fmt"
"time"
"github.com/kataras/iris"
)
var modtime = time.Now()
func greet(ctx iris.Context) {
ctx.Header("X-Custom", "my custom header")
response := fmt.Sprintf("Hello World! %s", time.Now())
ctx.WriteWithExpiration([]byte(response), modtime)
}
const refreshEvery = 10 * time.Second
func main() {
app := iris.New()
app.Use(iris.Cache304(refreshEvery))
// same as:
// app.Use(func(ctx iris.Context) {
// now := time.Now()
// if modified, err := ctx.CheckIfModifiedSince(now.Add(-refresh)); !modified && err == nil {
// ctx.WriteNotModified()
// return
// }
// ctx.SetLastModified(now)
// ctx.Next()
// })
app.Get("/", greet)
app.Run(iris.Addr(":8080"))
}
func greet(ctx iris.Context) {
ctx.Header("X-Custom", "my custom header")
ctx.Writef("Hello World! %s", time.Now())
}