在项目中使用redis 作为数据缓存:首先引入该包
“github.com/go-redis/redis/v8”
client := redis.NewClient(&redis.Options{
Addr: config.QueueConfig.Redis.Addr, // Redis 服务器地址
Password: config.QueueConfig.Redis.Password, // Redis 密码(如果有的话)
DB: config.QueueConfig.Redis.DB, // Redis 数据库编号
})
err = client.Set(c, "user:123", "John Doe", 0).Err()
if err != nil {
panic(err)
}
// 从 Redis 缓存中获取用户信息
val, err := client.Get(c, "user:123").Result()
if err != nil {
panic(err)
}
e.OK(object, "查询成功1"+val)
请求对应API接口:
当复用自动生成代码中的获取分页逻辑:
index, erri := strconv.Atoi(c.Query("pageIndex"))
size, errs := strconv.Atoi(c.Query("pageSize"))
if erri != nil || errs != nil {
fmt.Println("get page params fail!", erri, errs)
return
}
req := dto.PublicCalendarGetPageReq{
Pagination: cdto.Pagination{
PageIndex: index,
PageSize: size,
},
}
特别注意因为引入了两个dto 包,所以第二个要使用别名加以区分
第一个dto包:
type PublicCalendarGetPageReq struct {
dto.Pagination `search:"-"`
PublicCalendarOrder
}
第二个dto包:
type Pagination struct {
PageIndex int `form:"pageIndex"`
PageSize int `form:"pageSize"`
}
swagger 的使用
编写好api注释 直接 go generate
// @Tags 数据埋点
// @Summary 数据上报
// @param click_id body string false "(点击ID)- 一个独特的标识符,用于区分每次点击。"
// @param user_id body string false "(用户ID)- 记录进行点击操作的用户的标识符。"
// @param page_url body string false "(页面URL)- 记录被点击的页面的URL。"
// @param referrer_url body string false "(引荐URL)- 记录用户点击行为的来源URL(如果有的话)。"
// @param device body string false "(设备)- 记录被点击时使用的设备类型,如电脑、手机或平板电脑。"
// @param browser body string false "(浏览器)- 记录用户使用的浏览器类型,如Chrome、Firefox或Safari。"
// @param geolocation body string false "(地理位置)- 记录用户的地理位置信息,例如经度和纬度坐标。"
// @param duration body string false "(持续时间)- 记录用户在页面上停留的持续时间。"
// @param event_type body string false "(持续时间)- (事件类型)- 可以用于记录不同类型的点击事件,如单击、双击或长按。。"
// @param button_id body string false "(按钮ID)- 可以用于记录用户点击的具体按钮或元素的标识符。"
// @param conversion body string false "(转化)- 可以用于记录该点击是否导致了某种转化行为,如购买或注册。"
// @param data body string false "上报的详细数据"
// @param type body string false "上报方 1-觅知 2-魔力设"
// @Success 200 {string} json"{"code": 200, "data": [...]}"
// @Success 200 {object} response.Response{data=models.DataReport} "{"code": 200, "data": [...]}"
// @Router /api/v1/dataReport/ [POST]