feat: gzip middleware.
This commit is contained in:
22
middleware/gzip.go
Normal file
22
middleware/gzip.go
Normal file
@ -0,0 +1,22 @@
|
||||
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()
|
||||
}
|
||||
}
|
||||
@ -3,10 +3,12 @@ package routes
|
||||
import (
|
||||
"github.com/gin-gonic/gin"
|
||||
"hr_receiver/controllers"
|
||||
"hr_receiver/middleware"
|
||||
)
|
||||
|
||||
func SetupRouter() *gin.Engine {
|
||||
r := gin.Default()
|
||||
r.Use(middleware.GzipMiddleware())
|
||||
trainingController := controllers.NewTrainingController()
|
||||
|
||||
v1 := r.Group("/api/v1")
|
||||
|
||||
Reference in New Issue
Block a user