Skip to content

Commit ecb8212

Browse files
FEATURE (gin): Add griz compression for static files and API responses
1 parent 0e17834 commit ecb8212

File tree

3 files changed

+13
-0
lines changed

3 files changed

+13
-0
lines changed

backend/cmd/main.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
_ "postgresus-backend/swagger" // swagger docs
3232

3333
"github.com/gin-contrib/cors"
34+
"github.com/gin-contrib/gzip"
3435
"github.com/gin-gonic/gin"
3536
swaggerFiles "github.com/swaggo/files"
3637
ginSwagger "github.com/swaggo/gin-swagger"
@@ -61,6 +62,15 @@ func main() {
6162
gin.SetMode(gin.ReleaseMode)
6263
ginApp := gin.Default()
6364

65+
// Add GZIP compression middleware
66+
ginApp.Use(gzip.Gzip(
67+
gzip.DefaultCompression,
68+
// Don't compress already compressed files
69+
gzip.WithExcludedExtensions(
70+
[]string{".png", ".gif", ".jpeg", ".jpg", ".ico", ".svg", ".pdf", ".mp4"},
71+
),
72+
))
73+
6474
enableCors(ginApp)
6575
setUpRoutes(ginApp)
6676
setUpDependencies()

backend/go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ require (
2828
cloud.google.com/go/auth v0.16.2 // indirect
2929
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
3030
cloud.google.com/go/compute/metadata v0.7.0 // indirect
31+
github.com/gin-contrib/gzip v1.2.3 // indirect
3132
github.com/google/s2a-go v0.1.9 // indirect
3233
github.com/googleapis/enterprise-certificate-proxy v0.3.6 // indirect
3334
github.com/googleapis/gax-go/v2 v2.14.2 // indirect

backend/go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ github.com/gin-contrib/cors v1.7.5 h1:cXC9SmofOrRg0w9PigwGlHG3ztswH6bqq4vJVXnvYM
3939
github.com/gin-contrib/cors v1.7.5/go.mod h1:4q3yi7xBEDDWKapjT2o1V7mScKDDr8k+jZ0fSquGoy0=
4040
github.com/gin-contrib/gzip v0.0.6 h1:NjcunTcGAj5CO1gn4N8jHOSIeRFHIbn51z6K+xaN4d4=
4141
github.com/gin-contrib/gzip v0.0.6/go.mod h1:QOJlmV2xmayAjkNS2Y8NQsMneuRShOU/kjovCXNuzzk=
42+
github.com/gin-contrib/gzip v1.2.3 h1:dAhT722RuEG330ce2agAs75z7yB+NKvX/ZM1r8w0u2U=
43+
github.com/gin-contrib/gzip v1.2.3/go.mod h1:ad72i4Bzmaypk8M762gNXa2wkxxjbz0icRNnuLJ9a/c=
4244
github.com/gin-contrib/sse v1.1.0 h1:n0w2GMuUpWDVp7qSpvze6fAu9iRxJY4Hmj6AmBOU05w=
4345
github.com/gin-contrib/sse v1.1.0/go.mod h1:hxRZ5gVpWMT7Z0B0gSNYqqsSCNIJMjzvm6fqCz9vjwM=
4446
github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU=

0 commit comments

Comments
 (0)