You've already forked golang-base-project
Adds a cache max age parameter and fixes cache parameter for main.js (#12)
Fixed throttling
This commit is contained in:
@ -1,10 +1,13 @@
|
||||
package middleware
|
||||
|
||||
import "github.com/gin-gonic/gin"
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
func Cache() gin.HandlerFunc {
|
||||
func Cache(maxAge int) gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
c.Header("Cache-Control", "public, max-age=60")
|
||||
c.Header("Cache-Control", fmt.Sprintf("public, max-age=%d", maxAge))
|
||||
c.Next()
|
||||
}
|
||||
}
|
||||
|
@ -5,21 +5,15 @@ import (
|
||||
"github.com/ulule/limiter/v3"
|
||||
middlewareGin "github.com/ulule/limiter/v3/drivers/middleware/gin"
|
||||
"github.com/ulule/limiter/v3/drivers/store/memory"
|
||||
"log"
|
||||
"time"
|
||||
)
|
||||
|
||||
func Throttle(limit int) gin.HandlerFunc {
|
||||
// Define a limit rate to 3 requests per minute.
|
||||
rate, err := limiter.NewRateFromFormatted("5-M")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
store := memory.NewStore()
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
// Create a new middleware with the limiter instance.
|
||||
return middlewareGin.NewMiddleware(limiter.New(store, rate))
|
||||
return middlewareGin.NewMiddleware(limiter.New(store, limiter.Rate{
|
||||
Period: time.Minute,
|
||||
Limit: int64(limit),
|
||||
}))
|
||||
}
|
||||
|
Reference in New Issue
Block a user