| 123456789101112131415161718192021222324252627 |
- package middleware
- import (
- "compress/gzip"
- "github.com/gin-gonic/gin"
- "io"
- "net/http"
- )
- func GzipDecodeMiddleware() gin.HandlerFunc {
- return func(c *gin.Context) {
- if c.GetHeader("Content-Encoding") == "gzip" {
- gzipReader, err := gzip.NewReader(c.Request.Body)
- if err != nil {
- c.AbortWithStatus(http.StatusBadRequest)
- return
- }
- defer gzipReader.Close()
- // Replace the request body with the decompressed data
- c.Request.Body = io.NopCloser(gzipReader)
- }
- // Continue processing the request
- c.Next()
- }
- }
|