给高频调用的路由加上 cache-control

This commit is contained in:
eafonyang
2026-06-16 17:21:31 +08:00
parent b5560ca702
commit 1e7dc01b22
3 changed files with 24 additions and 6 deletions
+1 -1
View File
@@ -14,7 +14,7 @@ services:
- DATABASE_PASSWORD=${DATABASE_PASSWORD} - DATABASE_PASSWORD=${DATABASE_PASSWORD}
- REDIS_PASSWORD=${REDIS_PASSWORD:-eafon123!} - REDIS_PASSWORD=${REDIS_PASSWORD:-eafon123!}
- MEILISEARCH_API_KEY=${MEILISEARCH_API_KEY:-young9#!UJsD219921031} - MEILISEARCH_API_KEY=${MEILISEARCH_API_KEY:-young9#!UJsD219921031}
- ENABLE_PERSIST_TASK=true - ENABLE_PERSIST_TASK=false
- AWS_REGION=eu-central-1 - AWS_REGION=eu-central-1
- S3_BUCKET=luxsin-app-bucket - S3_BUCKET=luxsin-app-bucket
- SHARE_CODE_MAX_PER_MAC=${SHARE_CODE_MAX_PER_MAC:-1} - SHARE_CODE_MAX_PER_MAC=${SHARE_CODE_MAX_PER_MAC:-1}
+18
View File
@@ -0,0 +1,18 @@
package middleware
import "github.com/gin-gonic/gin"
const (
CacheControlList = "public, max-age=300, s-maxage=1800, stale-while-revalidate=60"
CacheControlCurve = "public, max-age=300, s-maxage=3600, stale-while-revalidate=120"
CacheControlModelList = "public, max-age=30, s-maxage=300, stale-while-revalidate=30"
)
func CacheControl(value string) gin.HandlerFunc {
return func(c *gin.Context) {
c.Header("Cache-Control", value)
c.Header("Vary", "Accept-Encoding")
c.Next()
}
}
+5 -5
View File
@@ -62,13 +62,13 @@ func New(log *zap.Logger, db *sql.DB, searchClient *search.Client, rdb *redis.Cl
audio := r.Group("/audio") audio := r.Group("/audio")
{ {
audio.GET("/getBrand", brand.GetBrand) audio.GET("/getBrand", middleware.CacheControl(middleware.CacheControlList), brand.GetBrand)
audio.GET("/getModel", model.GetModel) audio.GET("/getModel", middleware.CacheControl(middleware.CacheControlList), model.GetModel)
audio.GET("/modelList", modelList.ModelList) audio.GET("/modelList", middleware.CacheControl(middleware.CacheControlModelList), modelList.ModelList)
audio.GET("/reportDevInfo", device.ReportDevInfo) audio.GET("/reportDevInfo", device.ReportDevInfo)
audio.GET("/ota", ota.GetOTA) audio.GET("/ota", ota.GetOTA)
audio.GET("/getCurve", curve.GetCurve) audio.GET("/getCurve", middleware.CacheControl(middleware.CacheControlCurve), curve.GetCurve)
audio.GET("/modelCurve", curve.ModelCurve) audio.GET("/modelCurve", middleware.CacheControl(middleware.CacheControlCurve), curve.ModelCurve)
audio.GET("/getModelCSV", modelCSV.GetModelCSV) audio.GET("/getModelCSV", modelCSV.GetModelCSV)
audio.POST("/shareCreate", shareCode.ExportShareCode) audio.POST("/shareCreate", shareCode.ExportShareCode)
audio.GET("/shareList", shareCode.ListShareCodesByMac) audio.GET("/shareList", shareCode.ListShareCodesByMac)