diff --git a/backend/cmd/main.go b/backend/cmd/main.go index 85c9ec2..54eaf10 100644 --- a/backend/cmd/main.go +++ b/backend/cmd/main.go @@ -31,6 +31,7 @@ import ( _ "postgresus-backend/swagger" // swagger docs "github.com/gin-contrib/cors" + "github.com/gin-contrib/gzip" "github.com/gin-gonic/gin" swaggerFiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger" @@ -61,6 +62,15 @@ func main() { gin.SetMode(gin.ReleaseMode) ginApp := gin.Default() + // Add GZIP compression middleware + ginApp.Use(gzip.Gzip( + gzip.DefaultCompression, + // Don't compress already compressed files + gzip.WithExcludedExtensions( + []string{".png", ".gif", ".jpeg", ".jpg", ".ico", ".svg", ".pdf", ".mp4"}, + ), + )) + enableCors(ginApp) setUpRoutes(ginApp) setUpDependencies() diff --git a/backend/go.mod b/backend/go.mod index deb6c34..009f2c8 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -28,6 +28,7 @@ require ( cloud.google.com/go/auth v0.16.2 // indirect cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect cloud.google.com/go/compute/metadata v0.7.0 // indirect + github.com/gin-contrib/gzip v1.2.3 // indirect github.com/google/s2a-go v0.1.9 // indirect github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect github.com/googleapis/gax-go/v2 v2.14.2 // indirect diff --git a/backend/go.sum b/backend/go.sum index e78c9bb..5edd574 100644 --- a/backend/go.sum +++ b/backend/go.sum @@ -39,6 +39,8 @@ github.com/gin-contrib/cors v1.7.5 h1:cXC9SmofOrRg0w9PigwGlHG3ztswH6bqq4vJVXnvYM github.com/gin-contrib/cors v1.7.5/go.mod h1:4q3yi7xBEDDWKapjT2o1V7mScKDDr8k+jZ0fSquGoy0= github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4= github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk= +github.com/gin-contrib/gzip v1.2.3 h1:dAhT722RuEG330ce2agAs75z7yB+NKvX/ZM1r8w0u2U= +github.com/gin-contrib/gzip v1.2.3/go.mod h1:ad72i4Bzmaypk8M762gNXa2wkxxjbz0icRNnuLJ9a/c= github.com/gin-contrib/sse v1.1.0 h1:n0w2GMuUpWDVp7qSpvze6fAu9iRxJY4Hmj6AmBOU05w= github.com/gin-contrib/sse v1.1.0/go.mod h1:hxRZ5gVpWMT7Z0B0gSNYqqsSCNIJMjzvm6fqCz9vjwM= github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU=