package middleware import ( "compress/gzip" "github.com/gin-gonic/gin" "net/http" ) func GzipMiddleware() gin.HandlerFunc { return func(c *gin.Context) { if c.Request.Header.Get("Content-Encoding") == "gzip" { gzReader, err := gzip.NewReader(c.Request.Body) if err != nil { c.AbortWithStatusJSON(http.StatusBadRequest, gin.H{"error": "Invalid gzip format"}) return } defer gzReader.Close() c.Request.Body = gzReader } c.Next() } }